基于ROS串联机器人虚拟运动控制及仿真研究*

2015-11-02 06:49陈盛龙平雪良曹正万
组合机床与自动化加工技术 2015年10期
关键词:架构关节节点

陈盛龙,平雪良,曹正万,蒋 毅

(江南大学机械工程学院江苏省食品先进制造装备技术重点实验室,江苏无锡 214122)

基于ROS串联机器人虚拟运动控制及仿真研究*

陈盛龙,平雪良,曹正万,蒋 毅

(江南大学机械工程学院江苏省食品先进制造装备技术重点实验室,江苏无锡 214122)

在众多的机器人开发软件中,ROS是机器人软件开发的主流平台,在对此平台系统架构、内部数据通信、分布式处理等方面研究基础上,具体分析了系统底层实时运算模块和系统高层规划模块构建机制,提出一种基于ROS利用三维模型来实现串联机器人虚拟运动控制与虚拟仿真的方法,并以6自由度多功能机器人为例进行虚拟控制及仿真实验,结果表明该方法有效,对ROS应用研究有着重要意义。

串联机器人;虚拟运动;控制

0 引言

机器人虚拟运动控制及仿真在机器人的研究与应用中有着重要的作用。国外很早就开始了这方面的研究,而国内尚处于起步阶段。机械行业常使用三维制图软件如Solidworks、Catia等带有的仿真功能进行虚拟装配和加工,但其目的大多是动画模拟其工作过程,缺乏算法,难以满足机器人虚拟控制及仿真的需要,且不具开放性[1];Matlab作为一个独立地数学计算平台,能够借助其强大算法支撑进行仿真实验,但在3D图形显示方面对机器人空间构型表现力差,也难以进行机器人连杆之间和与外部环境的干涉检查。

为了实现机器人的虚拟控制及仿真,可使用专门的机器人开发软件。比较著名的机器人软件平台有MRDS[2],URBI,Player/Stage[3],CARMEN[4]等,这些软件平台各有特点,涵盖了机器人多个方面的研究,如MRDS着重行为协作和图形化编程;URBI支持分布式事件驱动;Player/Stage偏重解决机器人集群冲突与协作;此外还有一些软件或方法对与机器人相关的成熟算法做了封装,像视觉领域的开源函数库OpenCV、机器人运动规划算法库OMPL,USARSim[5]、OpenRAVE[6]仿真环境、三维软件与Visual C++相结合等等[7]。以上这些软件平台功能单一,无法胜任机器人复杂环境对控制软件开发的要求,同时还有跨平台、多语言支持、分布式处理、代码复用、硬件抽象等一些共性问题[8]。针对这些问题,开源机器人操作系统(ROS,Robot Operating System)[9]在众多的开发平台中脱颖而出,成为当下最流行的开源机器人平台。本文基于ROS这一开源平台对串联机器人的虚拟运动控制及仿真进行研究。

ROS是由Willow Garage公司推出的一款开源机器人软件开发平台,该平台的初衷是为了解决机器人研发过程中的代码复用问题。ROS采用分布式处理,提供硬件抽象、设备控制、消息管理等标准的操作系统服务;支持对Linux硬实时扩展[10];同时集中不同的研究成果,在其软件平台和社区中开放源码代码,最大程度实现代码共享;深度集成OROCOS、Gazebo、Webots等软件,支持C/C++、Python、Java、LISP等多种编程语言,实现跨平台跨语言的交互共享,解决当前机器人研发过程中存在的共性问题。到如今基于ROS平台开发出的机器人已有100多种,各类ROS应用程序已达2000多种,包括硬件驱动、图像识别、虚拟仿真、运动控制、环境感知等功能包。

与基于Windows的机器人软件平台不同,ROS是建立在Ubuntu Linux操作系统之上的次级操作系统但不负责系统进程管理。它类似于软件管理工具,提供一种点对点的通讯机制便于研究者灵活部署各个功能包,支持分布式处理分散了由图像处理、逆解、插补等功能带来的实时计算压力。基于点对点通讯机制,ROS提出“节点”、“消息”、“主题”、“服务”四个基本概念。

1.1 节点

节点是ROS执行相关功能的进程,相当于软件架构图中的矩形框。节点可以是驱动器、传感器等硬件的驱动程序,可以是为了实现图像识别、路径规划等算法而专门进行数值运算的计算机进程,也可以是直观的人机交互界面。整个软件系统由众多的节点有机组合,节点之间实行点对点通讯。通过ROS带有的可视化工具rx_graph,研发人员可以直观的实时监测节点运行状况。

1.2 消息

消息是节点之间点对点通讯的数据内容,在ROS中任何的数据都可定义为消息。除诸如整型、浮点型等基本数据类型外,用户可以根据需求自定义消息文件通过代码生成器生成代码,大大减少编程工作量。目前ROS提供了400多种消息类型,包括传感器数据类型、点云数据类型、地图信息等。

1.3 主题

主题是指特定消息的名称,用于描述消息内容。节点可以发布针对某个主题的数据消息,也可以关注订阅某个主题的数据,而发布者和订阅者之间不知道对方的任何消息。

1.4 服务

基于主题的消息“发布/订阅”模式虽然很灵活,但是这种通讯模式对于分布式系统中经常需要的“请求/回应”式的“伺服模式”来说并不适合。因此“请求/回应”需通过服务来实现,这种通讯模式一般是成对出现的:一个用于请求,一个用于回应。

2 虚拟运动控制与仿真

所谓虚拟运动控制与仿真,就是利用计算机模拟运动控制器控制机器人本体运动的内部运算过程,控制机器人仿真模型运动。要实现串联机器人虚拟运动控制与虚拟仿真,首先需要研究能够表达机器人结构的描述文件,建立ROS系统仿真环境所需的D-H参数化功能包,其次设计兼容ROS的仿真软件架构,分析设计架构中各个节点模块的数据和消息传递机制,最后进行仿真实验来验证此方法可行性。

2.1 机器人模型的定制

研究中采用通用机器人描述格式(URDF,Unified Robot Description Format)来定制机器人模型。URDF是ROS系统专门用来统一描述机器人仿真模型的语言,该语言是基于XML的,可存储模型的形状、尺寸、颜色等基本属性,还包含机器人的运动学动力学信息,支持模型的干涉碰撞检查等。

本文以课题组自主研发的6自由度多功能机器人为例,借助在机械本体设计阶段由Solidworks三维软件绘制的本体模型,先将模型中螺栓等紧固零件进行筛减以减少计算量,再以自由度为要素、关节为界将装配体划分7个部件,各部件之间的D-H参数可由装配体装配关系(关节类型、关节轴向、关节变量)唯一确定。如图1所示的为多功能机器人总装配图,图2为划分后的各个部件图。

图1 6自由度多功能机器人装配图

图2 6自由度多功能机器人各部件图

下一步需对上述各部件模型进行存储。在URDF中通常使用连杆(Link)、关节(Joint)两基本元素构成机器人模型。连杆元素用于描述机器人刚体,指定其原点、质量、惯性、几何形状、外观;关节元素则用于表达两连杆的连接,指定关节类型(旋转、连续、固定等)和关节限位。连杆与关节之间则有如图3所示的父子关系,在仿真过程中,通过控制关节节点(图3中椭圆框所示)可实现对模型的控制。

图3 多功能机器人关节、连杆树状图

2.2 仿真体系结构

为了使系统能够仿真现实机器人的运动和控制过程,实现机器人的虚拟控制及仿真,必须要有相应且合理的仿真体系结构,最大限度的模拟真实机器人工作。ROS抽象了底层,故本文基于ROS开源环境搭建了如图4所示的高层体系架构、如图5所示的底层体系架构。高层架构使用了2种ROS工具:MoveIt、OMPL。MoveIt(图中为Move_group)为仿真体系的核心,主要负责机器人运动学模型正逆解计算;OMPL为运动规划算法库,向MoveIt提供算法支持;底层架构中则用到了ROS系统的机器人仿真环境RVIZ,RVIZ可直观显示出机器人运动仿真的画面,甚至产生干涉效果。

图4 仿真系统高层架构

图5 仿真系统底层架构

ROS平台下,Move_group作为高层架构运算核心,通过解析URDF描述文件初始化机器人模型的运动学信息,由用户输入或者OMPL运动规划库生成机器人关节空间轨迹并传递给图5所示的机器人底层控制模块。在本文的机器人仿真系统中,系统高层规划运算的输出Joint trajectory action作为底层加减速控制和插补的输入;底层控制器在实时运算时,加载URDF模型抽象出符合ros_control标准的运动学模型,实时运算采用S形加减速和5次样条曲线插补,插补结果既可用于控制RVIZ中的机器人虚拟关节,也可用于控制现实机器人。

2.3 仿真系统数据通讯

仿真系统在ROS平台下用C++语言编写,需要定义不同功能的类节点,从属于不同的线程。这些类节点之间存在着大量的数据交换,常用的数据交换形式是主从式广播通讯,当主类的数据变量发生变化时,其他从类数据都需要实时更新。在编程时可采用C++全局变量来解决,但这种低级的编程方式破坏了类的封装,也使变量对应的内存在多线程的反复读写中增加内存混乱的几率;高级方式有诸如管道、信号、消息队列、共享内存、套接字等线程间通讯方式,而ROS平台抽象了这些底层数据传输,定义了一种基于主题的点对点消息传递机制。

图6 消息发布与订阅、服务请求与回复

如图6所示,节点管理器(ROS Master)中存储了节点(Node)、主题(Topic)和服务(Service)的注册信息。当这些节点与节点管理器通信的时候,它们可以获取关于其他已注册节点的信息并且建立与其它以注册节点之间的联系。当这些注册信息改变时节点管理器会反馈给节点,同时允许节点动态创建与新节点之间的连接,节点之间的连接是直接的。节点订阅主题时将会请求建立一个与发布该主题的节点的连接,并且将会在同意连接协议的基础上建立该连接。

图7 仿真节点图

图7为ROS平台根据本仿真方法基于消息机制生成的ROS节点图,图中椭圆代表各个功能节点,矩形框代表传递中的消息数据,有向箭头代表消息数据的传递方向。

2.4 仿真模型运动学方法

机器人仿真模型被定制为几个相互独立的部件,在仿真系统中部件的相对运动关系和三维建模软件中的装配体相同,必须满足机器人运动学方法。本文采用D-H法建立机器人坐标系,使用D-H参数描述坐标系间的位姿关系。按照D-H法建立的6自由度多功能机器人各部件坐标系如下图8所示,D-H参数如表1所示。

图8 机器人D-H模型

表1 D-H参数表

2.5 仿真过程

根据机器人运动学方法建立起各关节节点的齐次变换矩阵,依照本文2.2节中所述的控制架构,建立起的机器人仿真系统的运行过程如下图9所示,其中图9a为机器人模型在RVIZ环境中的全景视图,图9b为几个特写,体现了虚拟运动过程。

机器人在仿真过程中各个关节的角度、角速度、角加速度随时间维度的变化曲线如图10所示,机器人末端沿着一条弧形轨迹连续平稳的运动。

图9 仿真系统中机器人及其运动过程

图10 各关节角度、角速度、角加速度变化曲线

3 结论

本文提出了一种基于ROS的机器人虚拟运动控制及仿真的快速实现方法,该方法充分利用了三维制图软件生成的模型,以D-H参数法构建运动学模型,结合MoveIt和RVIZ工具,较为便捷的模拟了控制器控制机器人运动的内部体系结构,形象的展示了机器人虚拟运动的过程。通过该方法建立起的系统有如下意义:

(1)系统具有很高的开放性和扩展性,系统不仅可用于进行机器人运动仿真,经过实时扩展处理也可用于控制真实机器人,系统底层控制环频率最快可达1000 Hz;

(2)系统不依靠Adams和Matlab等商业软件,可跨平台开发。

[1]祁若龙,周维佳,刘金国,等.VC平台下机器人虚拟运动控制及3D运动仿真的有效实现方法[J].机器人,2013,35(5):594-599.

[2]Jackson J.Microsoft robotics studio:A technical introduction[J].IEEE Robotics&Automation Magazine,2007,14:82-87.

[3]Gerkey B,Vaughan R T,Howard A.The player/stage project:Tools for multi-robot and distributed sensor systems. Proceedings of the 11th international conference on advanced robotics 2003[C],2003:317-323.

[4]Montemerlo M,Roy N,Thrun S.Perspectives on Standardization in Mobile Robot Programming:The Carnegie Mellon Navigation(CARMEN)Toolkit.Proceedings of the Conference on Intelligent Robots and Systems(IROS)2003,3:2436-2441.

[5]Carpin S,Lewis M,Wang J,et al.USARSim:a robot simulator for research and education.IEEE International Conference on Robotics and Automation,2007[C]:1400-1405.

[6]Diankov R,Kuffner J.Openrave:A planning architecture for autonomous robotics,CMU-RI-TR-08-34[R].Pittsburgh:Robotics Institute,2008:79.

[7]张彦斐,宫金良,魏修亭.一种串联机器人的实时运动仿真[J].组合机床与自动化加工技术,2013(5):42-43.

[8]张建伟,张立伟,胡颖,等.开源机器人操作系统—ROS[M].2012:182-256.

[9]Quigley M,Gerkey B,Conley K,et al.ROS:an opensource Robot Operating System.ICRA workshop on open source software[C],2009,3(3.2):5.

[10]毕鲁雁,刘立生.基于RTX的工业机器人控制系统设计与实现[J].组合机床与自动化加工技术,2013(3):87-89.

(编辑 赵蓉)

Virtual M otion Control and Simulation of Serial Robot Based on ROS

CHEN Sheng-long,PING Xue-liang,CAO Zheng-wan,JIANG Yi
(Jiangsu Province Key Laboratory of Advanced Food Manufacturing Equipment and Technology,School of Mechanical Engineering,Jiangnan University,Wuxi Jiangsu 214122,China)

Among the robot development softwares,ROS has become the main platform.in this platform,with the study of system architecture,internal data communication,distributed processing and detailed analysis of the lower level real-time computing system module and high level planning module building methods,it is proposed that use of ROS and three-dimensional model lead to achieve a series of virtual robot motion control and virtual simulation methods,and an example of a 6-DOF virtual multifunction robot control and simulation results show that this method can not only emulate,also can be used for the actual robot control,this is of great significance in ROS applied research.

serial robot;virtual motion;control

TH166;TG659

A

1001-2265(2015)10-0108-04 DOI:10.13462/j.cnki.mmtamt.2015.10.030

2014-12-03;

2014-12-24

江苏省科技重点支撑计划(BE2013003)

陈盛龙(1989—),男,江苏扬州人,江南大学硕士研究生,研究方向为机电一体化与机器人控制,(E-mail)shenglongchen@126.com;通讯作者:平雪良(1962—),男,江苏常熟人,江南大学教授,硕士生导师,研究方向为CAD/CAM与机电一体化,(E-mail)ping@ jiangnan.edu.cn。

猜你喜欢
架构关节节点
基于FPGA的RNN硬件加速架构
CM节点控制在船舶上的应用
功能架构在电子电气架构开发中的应用和实践
关节突关节比在退行性腰椎滑脱中的应用价值
基于AutoCAD的门窗节点图快速构建
概念格的一种并行构造算法
基于云服务的图书馆IT架构
VoLTE时代智能网架构演进研究
钛缆捆扎治疗肩锁关节脱位
miRNA-140、MMP-3在OA关节滑液中的表达及相关性研究