快捷搜索:  汽车  科技

工业机器人编程有几种方式:如何解决不同工业机器人品牌的编程差异问题

工业机器人编程有几种方式:如何解决不同工业机器人品牌的编程差异问题对此,ROS可以用统一的方式来封装机器人(URDF模型 机器人驱动),用户只需要在ROS中编写应用程序,并不用关心机器人的控制方式。如果所有机器人都采用了这种方式,那么机器人必将得到更广泛地应用(对系统集成商的要求会降低)。△左:不同机器人的示教器;右:UR固件版本不兼容▼ROS的在工业机器人中的应用首先,不同工业机器人的开发系统基本都不一样,示教、编程方法也不同,一个熟练使用Motoman的工程师很可能并不会使用Kuka机械臂。就算是同种机器人,由于固件版本的更新换代,也可能造成程序的不兼容。这就大大影响了机器人的推广普及。

ROS已经发布八周年了,在国外科研机构中非常受欢迎,更是吸引了以美国西南研究院为首的几位大佬的兴趣,他们不断尝试着将ROS应用在工业机器人中。

机哥对"ROS"的理解:不同品牌可以统一“ROS”来编写程序,解决不同品牌的编程差异化问题!虽然不同品牌的操作编程有差异,但逻辑和函数,结构类似,熟知KUKA去上手MOTOMAN会很快!

工业机器人编程有几种方式:如何解决不同工业机器人品牌的编程差异问题(1)

ROS是什么鬼?

先来个视频,大概了解一下ROS-Industrial。

ROS的在工业机器人中的应用

首先,不同工业机器人的开发系统基本都不一样,示教、编程方法也不同,一个熟练使用Motoman的工程师很可能并不会使用Kuka机械臂。就算是同种机器人,由于固件版本的更新换代,也可能造成程序的不兼容。这就大大影响了机器人的推广普及。

△左:不同机器人的示教器;右:UR固件版本不兼容

对此,ROS可以用统一的方式来封装机器人(URDF模型 机器人驱动),用户只需要在ROS中编写应用程序,并不用关心机器人的控制方式。如果所有机器人都采用了这种方式,那么机器人必将得到更广泛地应用(对系统集成商的要求会降低)。

其次,现在越来越多机器人厂商开始尝试使用ROS,包括占据最多工业市场份额的机器人四大家族和各种流行的研究型机器人;甚至有如Rethink的Baxter,只能使用ROS控制。研究机器人的如果不去学习ROS的话,以后可能就会面临不会使用机器人的问题。

工业机器人编程有几种方式:如何解决不同工业机器人品牌的编程差异问题(2)

△使用ROS的机器人

再者,机器人是一个复杂且涉及面极广的学科,从下往上包括机械设计、电机控制、传感器、轨迹规划、运动学与动力学、运动规划、机器视觉、定位导航、机器学习、高级智能等等。一个研究生基本不可能在几年时间。

这方面已经可以找到很多答案了,但是学习这种东西只能靠自己多练习了,我只简单从我个人角度给出几个建议吧。

首先,就是要先了解ROS的基本架构和开发方式。我个人是强烈推荐直接看ROS官网上的教程ROS/Tutorials的BeginnerLevel(多看几遍),同时充分使用ROS的问答社区ROSAnswers与各模块的MailLists,很多基础问题可能前人都遇到过。

其次,在了解ROS的基本架构与开发方式后,就可以有针对性地看自己所关心的部分了。如做移动机器人的同学就去看Navigation教程;做物体识别的就去看ORK教程;做运动规划的就去看MoveIt教程。这一步最好能跟有实际机器人练手(如果没有的话,就用gazebo仿真)。由于一些模块的教程不够清楚(如MoveIt),一定要多练习,甚至是去看部分源码,先保证自己会用ROS实现一些功能。

对于ROS与实际机器人的连接,建议仔细看看action(编写机器人驱动package)、URDF(机器人描述文件)的教程(或者ros_control)。如下图,我为SDA5F机器人编写了URDF文件,并修改了motoman_driver中的action,使得在ROS环境中用MoveIt规划控制双臂机器人运动。

工业机器人编程有几种方式:如何解决不同工业机器人品牌的编程差异问题(3)

△SDA5F双臂机器人与其URDF模型

最后,就是进阶阶段了。我要强调一句“ROS只是一个工具”,你会用ROS做SLAM并不能说明你会做SLAM。对于自己研究的内容,必须沉下心去看教材和论文,去理解每种算法背后的原理,知道如何调整算法参数、如何改进算法,最终能够自己编写某部分代码,并替换ROS的相应模块(如自己写运动学正逆解替代KDL等)。

以上观点来自:qRobotics

更多精彩内容请关注:指南车机器人学院

猜您喜欢: