再聊机器人设计:如何加速开发流程?
moboyou 2025-05-10 22:57 5 浏览
01. 一套机械臂系统引发的思考
想让机器人与人类配合无间,或许是机器人领域里最难做的事了。
近日,来自加拿大舍布鲁克大学的研究人员开发出了一种固定在腰间的机械臂系统,它可以帮助你完成多种任务。
包括:采摘果实、刷墙、擦玻璃、递送工具,甚至还有打羽毛球。
在探讨机械手对人们的用途时,无论是额外的手指还是一个或两个额外的机械臂,其功能都常限于缓慢移动的轻量级任务。这些任务往往是持有或携带物体,稳定物体或使用者等等。但人们想要的并不只是如此,而是能让我们变成像漫威漫画里的超级英雄一样的可穿戴机械臂。
这种类型的可穿戴机械臂被称为额外机械臂(supernumerary robotic arm)。本研究的系统有 3 个自由度,由磁流变离合器和静液压传动装置驱动。
其目标是在众多工业和家庭应用中实现如人类手臂一样的性能。液压系统会提供相对较大的动力,但是动力系统本身是通过线缆和使用者连接的,在最大程度上减少了使用者穿戴的质量(保证手臂的惯性较小),同时还略微限制了移动性。
02.与机器人相关的系统开发流程
如果我们想学,如何入手?
一般来说,在机器人系统开发中,开发流程可分为以下几个步骤:
从上述开发过程中,可以看到做机器人开发,不仅仅是算法,还牵扯到软硬件开发以及系统联调。
大家或多或少都应该有这种体验,牵扯到结构、硬件等实际设计时,哪怕电路足够简单,结构设计足够完美,一旦需要做成实际的东西,可能就会遇见一些 bug。
人非圣贤、孰能无过,引入 bug 不可怕,能否尽早发现 bug 对整个开发过程至关重要。
找出 bug 后,再修改设计方案,重新设计,可能就会有样机一代、二代、三代。。。多次迭代才能做出效果能过得去的机器人系统。
随即而来的,浪费时间成本、资金成本等。
同时,从开发过程中,可以看出整个设计流程比较线性化,即完成前一步,才能进行后一步。机器人设计一般牵扯到多人合作,设计流程线性化,也会影响开发时长。
比如:我们在设计机器人机械臂时,机械臂驱动电路已经设计并制作完成,但小伙伴的机械臂结构还未搭建好,我们必须得等小伙伴完成机械臂结构后才能测试。无形中,也浪费了开发时长。
那么,如何提升效率、减少时间和资金,从而加快开发流程呢?
加快反馈!
在早期进行整体设计时,如果可以仿真,在仿真过程中,不断调试装置和系统参数,多次反馈后得出我们想要的模型,同时进行结构与软硬件制作,并根据仿真模型的变动进行修改,多阶段同时进行,以此来减少开发时长以及资金成本。
03.MATLAB 如何加速机器人开发
在未设计出机械臂硬件系统之前,我们是无法验证算法,其抓取效果以及准确度,此时 MATLAB 即可上场,担当搭建相关模型,提前完成仿真测试的重任。
在开篇的腰间机械臂视频中,机械臂有给人递送工具的应用场景,我们以机械臂抓取物品为例,使用 MATLAB 模拟仿真该运动过程。
在 MATLAB 中,有较多的机械臂模型供大家选择,可供自己的设计需求选择相应的机械臂模型,接下来使用 MATLAB 对进行机械臂拾放工作流程仿真。
首先,使用 Stateflow 图表创建状态流程图,由以下三个步骤组成:
1、初始化机器人和环境
初始化机械臂模型,并创建其运行环境,初始化相关参数配置,建立机械臂模型。
该环境由机械手、用于分类的架子和蓝色障碍物组成。
2、识别零件并确定放置位置
在识别阶段的第一步中,必须检测零件。我们可以直接调用相关函数直接给出待拾放的物体检测算法,也可以通过我们特定的物体,来设计对应的物体检测算法。
接下来,调用相关函数将零件分为两种类型,以确定放置它们的位置。
3、执行取放工作流程
一旦识别出物品,并指定了它们的目的地,手爪将其拾取,然后移动到目标位置。
*详细流程如下图所示:
在完成状态流程图后,就可以运行可视化仿真。
通过确定选用 MATLAB 中提供的机器人模型,初始相关参数配置,完成机械手的初始配置,建立机械臂模型。
【案例来自 MATLAB 官网,该仿真使用带有手爪的 KINOVA GEN3 机械臂模型】
代码:
load('exampleHelperKINOVAGen3RobotiqGripper.mat');
coordinator.HomeRobotTaskConfig = trvec2tform([0.4, 0, 0.6])*axang2tform([0 1 0 pi]);
coordinator.PlacingPose{1} = trvec2tform([[-0.2 0.55 0.46]])*axang2tform([1 0 0 -pi/2]);
coordinator.PlacingPose{2} = trvec2tform([[-0.2 0.55 0.63]])*axang2tform([1 0 0 -pi/2]);
调用函数,即可将可视化模型连接到前文状态流程图,
coordinator.FlowChart = exampleHelperFlowChartPickPlace('coordinator',coordinator);
输入下方代码,可进行拾放物体过程仿真:
answer = questdlg('Do you want to start the pick-and-place job now?', ...
'Start job','Yes','No', 'No');
switch answer
case 'Yes'
% Trigger event to start Pick and Place in the Stateflow Chart
coordinator.FlowChart.startPickPlace;
case 'No'
% End Pick and Place
coordinator.FlowChart.endPickPlace;
delete(coordinator.FlowChart);
delete(coordinator);end
在完成此拾放可视化仿真后,我们可以结合机器人工具箱 Robotics System Toolbox,在此模型上添加相关的路径规划、电机控制等来提前验证我们的相关算法,从而加快机械臂系统设计开发的效率,由于篇幅有限,在此不再详细介绍相关。
04. 总结
本文只是浅谈了机器人系统开发中,通过 MATLAB/Simulink 的配合使用,我们可以提前验证机械臂控制算法,同样的,除开机器人的机械臂模型仿真,我们也可以利用 Simulink 对机器人的移动控制、视觉等组件进行仿真,提前验证我们的控制算法,无需等到相关硬件制作完成后再验证,可以加快整个机器人系统的开发过程,提升效率。
总的来说,在机器人开发上,MATLAB 给技术人员提供了足够多且友好的开发工具,并且也涵盖了多个 demo,供初学者快速入门。我们可以通过学习调用 demo,快速搭建出我们的机器人各个组件系统,进行仿真测试,无论是机器视觉,或者机械臂相关软硬件,亦或是移动路径规划等。都可以在 MATLAB 中找到相应的工具包对其进行仿真测试。
与此同时,在基于 MATLAB 模型设计下,我们可以将机器人系统如此庞大陌生的系统划分成各个模块进行组件设计,利用 Simulink 对其组件进行仿真测试,使用基于模型设计去开发软件,我们可以尽早对一个阶段的工作产品进行验证,同时链接到后一阶段的设计。不仅仅是节省开发时间成本和资金成本,并且对于基于模型的设计来讲,图形化设计是天然的、固有的。
能让人较为明朗了解设计原理以及过程,方便工程师们交流以及后期维护。
相关推荐
- 在医学图像分析中使用ICP算法进行点云配准
-
作者:天啦噜来源:公众号@3D视觉工坊论文标题:3DRegistrationofthePointCloudDataUsingICPAlgorithminMedicalImage...
- 基于集中式协作频谱感知的数据融合技术研究
-
摘要:针对单节点频谱感知中存在的隐蔽终端和多径衰落问题,协作频谱感知应运而生。协作频谱感知有集中式和分布式之分。主要研究了集中式频谱感知中的数据融合技术,通过MATLAB进行建模仿真。仿真结果表明...
- 基于FDC准则的认知无线电宽带频谱感知
-
摘要:提出了基于灵活检测准则(FDC)的认知无线电宽带频谱感知算法。传统的基于信息论准则的宽带频谱感知算法在估计主用户占用的子带个数时,往往出现低估的情况。针对此情况,利用FDC改进基于Gersc...
- 理工男用数学建模解锁“脱单攻略”,三天后就脱单了
-
马上到过年了,眼瞅着亲戚、父母的脱单追问杀又近在眼前了……不过,不用担心,有个好消息告诉你,这一次你离脱单,只有一个数学模型的距离啦!近日,重庆大学的研三学生刘群他用数学建模的方式得出了脱单攻略他通过...
- GH4169插铣参数对切削力的影响规律研究
-
摘要:为了优化高温合金GH4169插铣加工过程中的切削参数,采用正交试验法进行高温合金GH4169的铣削试验。基于试验法建立了切削力与切削参数之间的经验公式,分析了各切削参数对切削力的影响规律。运用方...
- 为什么工控界面开发大都选C#,还有替代方案吗
-
一、引言在工业控制领域,工控界面的开发至关重要。它不仅是操作人员与工业控制系统进行交互的窗口,更是实现高效生产和精确控制的关键环节。在众多的编程语言中,C#在工控界面开发中备受青睐。然而,随着技术的...
- Matlab自带的彩蛋命令
-
Matlab自带很多有意思的彩蛋命令,包括二维图像、三维图像、动画、声音等等。在命令行窗口直接输入以下命令即可看到彩蛋。1、logomatlab的logo。2、membranematlab的logo的...
- 一文读懂回声消除(AEC)
-
数字信号处理系列文章,理论+实践,持续更新,欢迎关注@平凡的兵一起共成长音频领域有3A问题,所谓3A,是指声学回声消除(AEC,AcousticEchoCancel)、背景噪声抑制(ANS,...
- 要安装Matlab,配什么电脑好?
-
大学里最常见的理科和工科,必学的软件就算Matlab了。Matlab自身来说,就像是一个超复杂的计算器,最常见数学公式和模型都有,而且还支持可视化(3d模型和2d模型等)。简单来说,就是数据的计算。1...
- Java、C语言、C++、Python等编程该选哪一个
-
互联网时代风生水起,IT技术人才层出不穷。但学习在精不在多,总要有一方面精通才是自己的资本。面对众多的编程语言,Java、C语言、C++、Python等编程,该选择哪一个作为自己的精通点呢? 我...
- 整车控制器VCU应用层算法开发流程
-
一、整车控制器(VCU)功能整车控制器新能源汽车整车控制器(VehicleControlUnit,简称VCU)是电动汽车中的关键部件,负责对整车进行控制和管理。新能源汽车整车控制功能具有驾驶员意图...
- 土木工程设计人员该如何高效使用Deepseek
-
Deepseek是一款强大的AI工具,可以帮助土木工程设计人员提高工作效率,主要体现在以下几个方面:1.结构设计与优化参数化建模:使用Deepseek自动生成参数化的结构方案,快速探索不同设计方案的...
- 生物医学EI论文投稿核心细节
-
【期刊推荐】《BiomedicalSignalProcessingandControl》刊号:ISSN1746-8094|CN(不适用)影响因子:5.1(最新版)分区:中科院2区...
- 自动化,EI会议初审必过策略(ei会议录用一定要参会吗)
-
【高录用率EI会议推荐】会议名称:InternationalConferenceonAutomationandIntelligentControl(ICAIC)会议编号:CFP678...
- 音乐EI会议·避雷干货(音乐学术会议)
-
推荐会议:ICASPP2024(会议号:CFP24M7N-ART)截稿时间:次年2月10日会议时间与地点:次年5月15日-17日·奥地利维也纳论文集上线:会后3个月内提交至SpringerLN...
- 一周热门
- 最近发表
- 标签列表
-
- curseforge官网网址 (16)
- 外键约束 oracle (36)
- oracle的row number (32)
- 唯一索引 oracle (34)
- oracle in 表变量 (28)
- oracle导出dmp导出 (28)
- oracle 数据导出导入 (16)
- oracle两个表 (20)
- oracle 数据库 使用 (12)
- 启动oracle的监听服务 (13)
- oracle 数据库 字符集 (20)
- powerdesigner oracle (13)
- oracle修改端口 (15)
- 左连接 oracle (15)
- oracle 标准版 (13)
- oracle 转义字符 (14)
- asp 连接 oracle (12)
- oracle安装补丁 (19)
- matlab三维图 (12)
- matlab归一化 (16)
- matlab求解方程 (13)
- matlab坐标轴刻度设置 (12)
- matlab脚本 (14)
- matlab求逆 (12)
- matlab多项式拟合 (13)