主管QQ:站内信联系

ROS 在工业机器人上有哪些应用?2023-11-05 18:44

  就工业机器人来讲,ROS有一个单独的分支,很多人都提到了,叫做ROS-Industrial(ROS-I)。ROS作为逐渐流行的软件框架,当然不会放过工业机器人这个庞大而成熟的市场,所以ROS-I出现的目的就是希望将ROS赋能于工业机器人,在解决兼容性问题的基础上,拓展更多垂直行业的典型应用。

  视频中的五款机器人组成一个柔性生产线,可以为客户提供定制化的饮料服务。个人认为,ROS赋能工业机器人就是要解决类似这样的“机器人+”型的问题,否则停留在传统施教阶段就没什么意义了。

  虽然ROS-I针对工业机器人定义了一套通用协议——simple_message,但是对各品牌机器人的支持并不是一件简单的事情,需要机器人厂家提供支持ROS-I的接口,但是更大的困难应该是技术之外的。

  关于ROS的可用性存在很多争议,个人认为:这是一个怎么用的问题,拿来主义肯定是行不通的,真正找到问题所在并结合需求解决问题才是可用性的关键。

  谢邀。昨天kuka的engineer恰好到实验室,晚上一起喝酒的时候也顺便讨论过这个问题。简单的答案,就是:不行!

  从技术的角度,底层的控制器是各个机器人公司的基本的核心技术,这个他们不会选择开源。很多东西,他们的程序里面已经做了,只是还没有开放。比如KUKA上有一个load identification,就是任意放一个工具上去,机器人应该能够自动的测量工具的动力学参数,从而进行补偿。这个程序已经写了,但是没有开放,类似的功能还有很多。这个你要各个机器人厂商都开源,是不大现实的,能够给你一两个API,已经是很不错了。另外,ROS在运动控制上的性能,好像还没有得到工业界的检验。工业的东西,稳定大于一切。

  从商业上,他们也担心中国人reverse engineering,这个是他的原话。机械机构你拆开了就可以看个明白,软件不开源,你是没有办法的。

  用ros去做一个通用的控制软件是不大现实的,但是用ros框架去做一个友好的通用的用户界面,特别是在制造业,是很有必要的, 可以参考

  。但是这个设计到不同的用户需求,需要比较了解制造工艺,了解机器人,了解人机协调,可能还需要提供机器人辅助设备。这个应该是未来制造业的一大趋势。

  本答案从来没有说ROS不能用,只是针对问题 :“。。。初步觉得可以基于ROS的开源库去写这个“万能”的控制软件。。。”,而言是不大现实的。底层控制器各家不一样,又不开源,目前还很难统一。

  ROS (以下说的均是ROS底层系统) 最大的特点是模块化、低耦合,也就是说非常适用于大型复杂的机器人系统,需要多个不同层次(控制、感知、认知)的模块同时运行的系统;它并不关心各个模块内部的实现,只需要定义好接口(message, service)。因此,硬件平台和控制算法的区别并不会导致他们无法运行在ROS上;相反,通过良好的封装,将机器人本体建模(自由度、各关节坐标系、运动学/动力学参数)后,控制和运动规划算法即使使用闭源的第三方库也完全没有问题,只需要将所需要的控制接口定义清楚,即可使用ROS提供的机制来使用。

  个人认为,KUKA 等公司的主要产品(面向工业界)之所以不使用ROS,是因为目前并没有这样的需要。据我了解工业界的机器人系统,是不具备太多感知和其他更“高层”的能力的(力反馈等闭环控制仍然是传统控制和自动化系统范畴,零件识别也只是简单背景下的图像处理);因此,他们的系统从传统上一直使用自己开发的平台和软件,自然没有移植到ROS上的动力。然而,按照目前的发展趋势,生产线上需要机器人与人合作、甚至独立完成一些需要动态反馈的任务会越来越多并且越来越复杂,到那个时候,机器人系统不再只是几个复杂控制模块组成,而是有更多视觉和其他传感器感知模块、甚至理解认知模块的时候,也许他们会开始考虑使用已经比较成熟的ROS底层来支持这样的机器人系统。

  ROS最初是为科研设计的,注重功能性,而不是性能和稳定性。以软件工程的角度讲,烂透了。

  其各种核心组件严重依赖了一大堆外部的库,其中不少的库在稳定性上是存疑的。ROS本身问题更严重,如果不是在ubuntu下拿apt-get安装,而是想尝试下debian啥的,或者源码安装,肯定折磨死你。debian下的包明显是后妈给编译打包的,依赖一大堆ubuntu的包。而源码编译则一大堆的error,更别说无处不在的warning了。

  性能方面,ROS的核心主要通过网络来组织其各个组件,提供通信支持。但有些玩意明显走网络就是找死。比如视觉,720p的RGB图片30fps,不压缩的带宽占用将近700Mbps。但ROS为了追求优雅的系统解耦,全部是封装成node的。当然,你自己写的除外。

  基于以上,推断ROS的稳定性也是个胡扯的事。再者ROS基于Linux,严重依赖一个不那么稳定的ubuntu,可以想见以系统的角度讲,稳定性也比较扯。

  ROS在工业机器人上面会有很好的应用。其实工业机器人的控制底层能保证实时性就可以了。例如在ubuntu系统上插上一张DSP或者FPGA的PCI卡,保证通讯和控制的实时性。而ROS与PCI卡之间通过建立命令缓冲区的形式(ubuntu上的规划算法运行时间小于500微妙,一般好点的电脑都能实现)就OK了。

  之前我们用PMAC和固高的GTS卡,在win7上做六轴工业机器人的控制系统,性能也很不错。和用ROS一样的道理。