ROS史话36篇 | 20. ROS之KDL

628
0
2020年4月23日 22时22分

把ROS底层的库进一步分离成单独的模块,如KDL、 nodelet、 filters、 xacro、pluginlib。这样就不需要由车库的开发人员进行集中维护,每个ROS贡献者可以自行维护各自写的模块。

 

比如,KDL分离出来后,就可以由KDL的原开发者维护。KDL为Kinematics-Dynamics Library的缩写,意为“运动学-动力学库”,是由比利时荷语天主教鲁汶大学(Katholieke Universiteit Leuven)的鲁本·斯密斯(RubenSmits)和艾文·艾尔特比列恩(Erwin Aertbelien)开发的,当然还有的其他开发人员参与了开发。

 

KDL是OROCOS开源机器人控制项目[1]的一部分,OROCOS是Open RObotCOntrol Software的缩写,即机器人开源控制软件;OROCOS另外一个名称为:Open Realtime Control Services(开源实时控制服务),这个名称可能更能表述该软件库的本意和目标。OROCOS主要侧重于机器人底层控制器的设计,包括用于计算串联机械臂运动学数值解的KDL、贝叶斯滤波、实时控制等功能,当然还包括其它一些工具。

 

ROS史话36篇 | 20. ROS之KDL插图

(左)OROCOS开源机器人控制项目的LOGO,由两个机器人夹爪构成的字母O,代表协同合作。(右)赫尔曼·布鲁宁克(HermanBruyninckx)教授

 

OROCOS是欧洲几个国家最早提议开发的,因此在欧洲用的比较普遍。是由比利时荷语天主教鲁汶大学的赫尔曼·布鲁宁克(Herman Bruyninckx)教授于2000年12月提议开发的。赫尔曼长期使用商业的机器人控制软件,对这些软件糟糕的性能非常失望,尤其是商业机器人对底层开放程度非常有限,因此如果想通过对底层传感器进行控制,基本不可能。

 

因此赫尔曼提起开发一个开放的机器人控制系统。这个想法一提出,就得到热烈的拥护。很快2001年9月,由欧盟出资,组织启动了OROCOS项目,由比利时荷语天主教鲁汶大学,法国图卢兹系统分析与架构实验室(LAAS Toulouse,France)和瑞典皇家理工学院(KTHStockholm,Sweden)三方合作进行开发。

 

正是在这样的背景下,赫尔曼招了一位博士生彼得·舒滕斯(Peter Soetens),来实验室做研究,全力投入该项目的开发。OROCOS最初的版本正是彼得·舒滕斯开发的。通过持续开发,OROCOS不断完善。彼得博士毕业论文正式对OROCOS整个系统的总结:题目:A Software Framework for Real-Time and Distributed Robot and MachineControl(面向实时分布式机器人/机器控制的软件框架)

 

OROCOS兼容 Xenomai,实时性能非常好;Orocos 组件与组件之间的通信设计的也非常好,避免使用全局变量,这样就可以减小各个功能模块之间的耦合,方便每个开发人员开发自己的模块,最后模块之间的融合时也很方便。

 

跟ROS一样, OROCOS有自己的社区,开发人员会将自己设计好的算法组件发布到社区上,这样就减小了开发难度,缩短了开发周期;运动学和动力学涉及了比较多的物理和数学概念,OROCOS设计了自己的运动学和动力学算法,方便大家对机器人进行开发。所以对多自由度机器人的运动学分析时,可以直接采用 OROCOS的运动学组件。

 

OROCOS的设计包括了以下主要模块:

·   RTT:Orocos 实时工具集,为软件开发人员构建机器人应用时提供了基础机能,在实时功能、在线交互以及基于组件式的应用中发挥极大作用。

·   OCL:Orocos 组件库,某一特定的功能就是一个组件,Orocos  软件框架为 OCL 提供了通信、调试,方便开发人员对其 OCL 进行开发。

·   KDL:机器人运动与动力学库,为运动学提供了实时的动力学约束计算。

·   BFL:贝叶斯过滤库,是由动态贝叶斯网络理论所推导出的。这个理论可以做递归信息处理及基于贝叶斯规则的算法评估,例如卡尔曼滤波,粒子滤波算法等。

 

2009年,在赫尔曼的博士生鲁本·斯密斯即将博士毕业的时候,从欧洲来到美国硅谷,在车库做了一段实习生。在“机器人毕业典礼”中提到,车库将11台PR2,赠送给了11所大学进行合作研究,这所比利时鲁汶大学就是其中获得PR2的幸运者。

ROS史话36篇 | 20. ROS之KDL插图(1)

ROS史话36篇 | 20. ROS之KDL插图(2)

鲁本·斯密斯(Ruben Smits)在车库实习,将OROCOS于ROS集成

 

ROS史话36篇 | 20. ROS之KDL插图(3)ROS史话36篇 | 20. ROS之KDL插图(4)

艾文·艾尔特比列恩(Erwin Aertbelien)与鲁本·斯密斯(Ruben Smits)

 

鲁本·斯密斯和赫尔曼的早期毕业的博士生艾文·艾尔特比列恩还改进了机械臂的操控模块。有了这个模块,就可以让机械臂自主地规避障碍物,完成运动规划任务。为了便于使用,还增加了可视化界面,用户可以看到机械臂的运动轨迹。

 

鲁本·斯密斯博士毕业后,与OROCOS的最早的开发者彼得·舒滕斯(Peter Soetens)一起创建了Intermodalics机器人软件公司,鲁本·斯密斯是担任首席技术官(CEO),著名的Pick-it 3D就是该公司的杰作。据说,国内有不少跟进的公司,做类似Pick-it 3D的方案。

 

ROS史话36篇 | 20. ROS之KDL插图(5)

彼得·舒滕斯(Peter Soetens)

 

ROS史话36篇 | 20. ROS之KDL插图(6)

Pick-it 3D

 

针对rviz,增加了用户交互界面,可以让用户通过鼠标拖动PR2手臂的末端,或拖动机械臂上某一个部位,让机械臂运动到一个指定的位置。

 

ROS史话36篇 | 20. ROS之KDL插图(7)

用户通过鼠标拖动PR2手臂的末端,让机械臂运动到一个指定的位置

 

[1] http://www.orocos.org/

发表评论

后才能评论