< >
Home » ROS史话36篇 » ROS史话36篇.20 ROS之KDL

ROS史话36篇.20 ROS之KDL

把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、贝叶斯滤波、实时控制等功能,当然还包括其它一些工具。

请输入图片描述

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的幸运者。

请输入图片描述

请输入图片描述

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

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

请输入图片描述

请输入图片描述

Pick-it 3D

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

请输入图片描述

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros史话