01

一套机械臂系统引发的思考 

想让机器人与人类配合无间,或许是机器人领域里最难做的事了。

近日,来自加拿大舍布鲁克大学的研究人员开发出了一种固定在腰间的机械臂系统,它可以帮助你完成多种任务。

包括:采摘果实、刷墙、擦玻璃、递送工具,甚至还有打羽毛球。

在探讨机械手对人们的用途时,无论是额外的手指还是一个或两个额外的机械臂,其功能都常限于缓慢移动的轻量级任务。这些任务往往是持有或携带物体,稳定物体或使用者等等。但人们想要的并不只是如此,而是能让我们变成像漫威漫画里的超级英雄一样的可穿戴机械臂。

这种类型的可穿戴机械臂被称为额外机械臂(supernumerary robotic arm)。本研究的系统有 3 个自由度,由磁流变离合器和静液压传动装置驱动。

其目标是在众多工业和家庭应用中实现如人类手臂一样的性能。液压系统会提供相对较大的动力,但是动力系统本身是通过线缆和使用者连接的,在最大程度上减少了使用者穿戴的质量(保证手臂的惯性较小),同时还略微限制了移动性。

机械臂的 Demo 视频具体参见:

看到这里,有些朋友就会比较关心:

此种复杂的机械臂控制系统到底如何开发,如何设计?

 02

与机器人相关的系统开发流程

如果我们想学,如何入手?

一般来说,在机器人系统开发中,开发流程可分为以下几个步骤:

从上述开发过程中,可以看到做机器人开发,不仅仅是算法,还牵扯到软硬件开发以及系统联调。

大家或多或少都应该有这种体验,牵扯到结构、硬件等实际设计时,哪怕电路足够简单,结构设计足够完美,一旦需要做成实际的东西,可能就会遇见一些bug。

人非圣贤、孰能无过,引入bug不可怕,能否尽早发现bug对整个开发过程至关重要。

找出bug后,再修改设计方案,重新设计,可能就会有样机一代、二代、三代。。。多次迭代才能做出效果能过得去的机器人系统。

随即而来的,浪费时间成本、资金成本等。

同时,从开发过程中,可以看出整个设计流程比较线性化,即完成前一步,才能进行后一步。机器人设计一般牵扯到多人合作,设计流程线性化,也会影响开发时长。

比如:我们在设计机器人机械臂时,机械臂驱动电路已经设计并制作完成,但小伙伴的机械臂结构还未搭建好,我们必须得等小伙伴完成机械臂结构后才能测试。无形中,也浪费了开发时长。

那么,如何提升效率、减少时间和资金,从而加快开发流程呢?

加快反馈!

在早期进行整体设计时,如果可以仿真,在仿真过程中,不断调试装置和系统参数,多次反馈后得出我们想要的模型,同时进行结构与软硬件制作,并根据仿真模型的变动进行修改,多阶段同时进行,以此来减少开发时长以及资金成本。

当然,既然要进行仿真,要选取哪款软件呢。

在这之前,我们曾经有写过一篇:

MATLAB R2020a新鲜出炉,我来替各位尝尝鲜!(超链接,点击即可阅读)

在这篇文章中,我们有聊过利用MATLAB/Simulink对机器人运动规划进行仿真。

那么在加速机器人开发流程上,MATLAB又会给我们带来什么惊喜呢?

 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对其组件进行仿真测试,使用基于模型设计去开发软件,我们可以尽早对一个阶段的工作产品进行验证,同时链接到后一阶段的设计。不仅仅是节省开发时间成本和资金成本,并且对于基于模型的设计来讲,图形化设计是天然的、固有的。

能让人较为明朗了解设计原理以及过程,方便工程师们交流以及后期维护。


了解更多机器人解决方案:(复制到浏览器打开)

https://ww2.mathworks.cn/solutions/robotics.html?s_eid=PEP_23450

你可以申请30天免费试用工具包:(复制到浏览器打开)

https://ww2.mathworks.cn/campaigns/products/trials.html?s_eid=PEP_23450

-------------------------------

原创不易,莫要白票,如果觉得有点用的话,请毫不留情地转发朋友圈吧,因为这将是我写更多优质文章的最强动力。

再聊机器人设计:如何加速开发流程?相关推荐

  1. 电子设计之硬件开发流程和前辈的指导

    硬件开发流程: 图1:硬件开发流程 图2:硬件开发流程简图 开发流程经验: 图2 硬件开发流程框图2 基本思想是使每一步流程具有严密的逻辑:每一步流程可操作:每一步流程的输入.操作及输出受控. 1.硬 ...

  2. 新唐MCU开发流程解析:从MCU原型设计到样机测试

    MCU(Microcontroller Unit)是一种集成电路芯片,具有微处理器.存储器.输入输出端口等多种功能,广泛应用于各种电子设备中.颖特新(颖特新单片机)代理品牌新唐科技是国内领先的MCU芯 ...

  3. python编程控制机器人_基于Python开发的微信图灵机器人

    在过去的几个月中,由于在新生群中回答问题费时费力,同时又有许多重复而又有固定答案的回答,我受到一些知乎文章的启发,维护了一个基于itchat的群聊机器人.从刚开始接入图灵机器人时只会尬聊的机器人,之后 ...

  4. 基于模型的设计 | Preceyes加速全球首款眼科手术机器人的开发

    玻璃体视网膜手术,整个手术需要在眼内进行,手术时需要较高的精准度和稳定度,对于人工手术来说难度极大.随着人口老龄化的加剧,玻璃体视网膜类疾病患者数量大幅攀升,亟待研发具备更高手术精度的新治疗方案.比如 ...

  5. arduino 机器视觉编程_万物皆可仿真的MATLAB/Simulink神奇在哪?解析如何将其应用于一整套机器人设计开发流程...

    MATLAB/Simulink:万物皆可仿真 MATLAB是由美国MathWorks公司出品的一款商业数学软件.它是一个多功能的科学计算平台,将算法开发.数据分析.矩阵计算等诸多强大功能集成在一个易于 ...

  6. 记一次钉钉群聊机器人的开发

    文章目录 一.需求描述 二.开发思路 三.开发步骤 (一)阅读开发文档 (二)创建机器人 (三)了解消息格式 (四)传参并调用 (五)其他 四.总结 一.需求描述 为实现更好的沟通,现需要实现以自定义 ...

  7. 从需求到设计,嵌入式产品开发流程

    嵌入式产品,与普通电子产品一样,开发过程都需要遵循一些基本的流程,都是一个从需求分析到总体设计,详细设计到最后产品完成的过程.但是,与普通电子产品相比,嵌入式产品的开发流程又有其特殊之处.它包含嵌入式 ...

  8. 国产智多晶FPGA基于Verilog的设计开发流程

    大家好,我是小梅哥,这里给大家介绍国产FPGA厂家"西安智多晶"微电子的FPGA基于Verilog进行逻辑设计的开发流程,步骤详细,可作为大家的评估参考.本博客将陆续发表更多国产F ...

  9. SOPC设计02——硬件系统开发流程

    硬件系统开发流程 一.NiosII工程建立步骤 打开quartus 18.1软件建立工程 在工程中建立图形文件后缀名是***".bdf"***文件 在tools->platf ...

最新文章

  1. 牛客网——华为机试(题17:坐标移动)(Java)
  2. 多层神经网络(BP算法)介绍
  3. python的可变长参数
  4. [云炬创业基础笔记]第二章创业者测试3
  5. java监听某端口和ip_Java 通过Socket监听指定服务器(IP)的指定端口,及向指定服务器的指定端口发送信息...
  6. 智能手机前景 光芒万丈
  7. 测试AtomicInteger与普通int值在多线程下的递增操作
  8. 自建lol服务器,终于干正事了?英雄联盟宣布:艾欧尼亚服务器将进行扩容
  9. 慢日志定位到备份锁表Waiting for global read lock原因
  10. 21.IO-multiplexing方式实现Netcat
  11. 协议栈处理中的conntrack HASH查找/Bloom过滤/CACHE查找/大包与小包/分层处理风格
  12. host地址切换工具-SwitchHosts
  13. MyDiskTest v2.98-U盘扩容检测工具
  14. Vue 使用 PinyinMatch实现拼音匹配搜索
  15. DNS原理及其解析过程【精彩剖析】
  16. This may be due to a lack of SYSV IPC support
  17. 大数据解决方案:Hadoop监控
  18. 苹果MacBook 装双系统win10蓝牙找不到的方法
  19. python模块总结_Python常用模块资料总结和归纳
  20. 高等数学:一元函数微分学

热门文章

  1. Hybris PriceRow的存储定义
  2. SAP Fiori application do filtering will real delete note in DB
  3. Error -Cannot add direct child without default aggregation defined for control
  4. How to download ABAP development Tool from Fiori Launchpad
  5. 为什么我的C4C Service Request没办法Release到ERP?
  6. Jerry的ABAP原创技术文章合集
  7. 解决mysql的乱码问题_完美解决mysql中文乱码的问题
  8. jvm虚拟机_一文入门jvm虚拟机
  9. 碧雪情天服务器地址源如何修改,今天维护吗,碧雪情天怎么进不去啊,知道的说一下...
  10. airpods耳机敲击没反应_华强北airpods2 华强北三代耳机 airpodspro可调通透 主动降噪 定位改名 苹果airpodspro...