APP下载

基于ROS的六自由度机械臂避障研究

2018-01-23

制造业自动化 2017年12期
关键词:运动学开源坐标系

(江西理工大学 机电工程学院,赣州 341000)

0 引言

机器人的运动规划一直是机器人研究的重点,目前工业上使用的机器人大多数为工人点对点示教实现的,人为来示教即费时又费力。要想机器人能够生成一条无碰撞的最优轨迹,必须解决机器人避障的难题。

计算机虚拟控制及仿真平台为机器人运动规划的研究提供了方便,SolidWorks、Ansys、MATLAB、Adams等是目前使用较为普遍的软件平台,这些平台各有千秋,但对完成复杂环境下的机器人运动不够方便直接。MATLAB作为一款数学计算软件,能够利用其强大的算法来完成仿真实验,但对3D模型的表现力较差,且很难与外部系统和其他功能需求相结合[1]。SolidWorks等三维建模软件虽然可以出色的完成机械的建模,但却不能实现算法的验证[2]。现阶段,大多都使用C、C++、Java等编程语言与Open Inventor或OpenGL想结合编写图形仿真系统,但是操作起来比较复杂,其仿真系统也主要是观察系统的运动过程,数据参数不具有参考性[1]。在跨平台,分布式处理,代码复用,多语言支持与硬件抽象等一些共性问题上也支持不够。而ROS开源操作系统能够很好的解决这些问题,且能够直接应用于实际系统[3]。本文基于ROS开源平台,以ABB公司IRB1410型工业机器人为研究对象进行避障运动规划的仿真研究。

1 机械臂运动学分析

正运动学问题主要涉及机械臂的各个关节与工具或末端执行器的位置和姿态之间的关系。正运动学的求解过程就是根据机器人已知关节变量,来求解末端执行器的位姿。运用D-H参数法进行串联机器人正运动学求解,就是通过坐标转换的思想把末端执行器的位姿在坐标系里表示出来[4]。根据D-H参数法建立的ABBIRB1410机械臂坐标系如图1所示。

图中基坐标系为X0Y0Z0组成的坐标系,末端执行处的坐标系为X6Y6Z6组成的坐标系。根据IRB1410机械臂的相关参数可以列出机械臂的D-H参数表,i表示连杆,di表示连杆偏置,ai表示连杆长度,αi表示连杆扭曲,θi表示变量关节角度,如表1所示。

图1 ABB IRB1410机械臂连杆坐标系

表1 机械臂D-H参数表

对全部连杆规定坐标系后,由两个旋转和两个平移来建立相邻两连杆i-1与i之间的相对关系,且可由四个其次变换来描述,可表示为A矩阵:

式(1)中cθi=cosθi,sθi=sinθi,cαi=cosαi,sαi=sinαi,进一步得到机器人的运动学方程为:

式(2)中n,o,a表示末端执行器相对于基坐标的姿态;p表示末端执行器相对于基坐标的位置关系。把表1中的参数分别代入式(1)、式(2),便可得到机器人运动学正解[5]。

2 运动规划功能包配置

2.1 开源机器人操作系统ROS

ROS操作系统是一款开源的机器人后操作系统,为了提高机器人研发领域的代码复用率,提高开发效率,ROS对机器人硬件进行了封装,使得不同的机器人和不同的传感器都能够在ROS里通过一样的形式来表示,从而给上层的功能包(运动规划,三维导航等)提供调用。且ROS可以在不同的计算机,不同的操作系统和不同的机器人上使用,做到真正的跨平台[6]。

ROS操作系统集成了许多的开源工具与先进的算法,如MoveIt移动机械臂运动规划模块,Rviz 3D可视化工具,Player二维仿真平台,OpenRave运动规划平台,OpenCV视觉开源项目,OMPL运动规划开源项目,Gazebo机器人开源仿真平台,PCL开源点云处理库等。且能够支持多种编程语言,如C++、Python、Octave等,采用模块化的通讯机制,开发者对各模块中的代码能够单独编译。ROS系统免费且开源,这是其快速发展的主要因素之一[6]。

2.2 由SolidWorks制作URDF文件

统一机器人描述格式(Unified Robot Description Format)是一种用于描述机器人结构,关节,自由度等的XML格式文件。URDF文件描述了机器人的各个部件与相关关节的连接关系,确定了从基座到执行末端各个部件的坐标系和坐标原点。制作URDF文件,首先需要通过SolidWorks对机械臂进行三维建模,然后通过SW2urdf插件对机械臂的各个关节和连接进行设置,最后导出URDF文件。

2.3 由MoveIt!配置功能包

MoveIt!是ROS中专门针对移动机械臂操作的功能包,它结合了运动规划,三维感知,运动学,碰撞检测,控制和导航等,它为开发先进的机器人提供了一个简单,实用,开放的平台。使用MoveIt Setup Assisant可生成MoveIt!配置功能包。具体步骤如图2所示。

在添加运动链的时候,我们需要对求解正运动学与逆运动学的求解工具进行选择,本文选择KDL(The Kinematics and Dynamics Library)作为运动学求解工具。KDL是一个运动学与动力学的库,其优势在于能够轻易的解决多自由度单链机械结构的正逆运动学问题。配置好相关参数就可以对机械臂进行运动规划。

3 机械臂避障规划

3.1 避障规划算法

图2 MoveIt!配置步骤

避障路径规划问题就是在具有障碍物的特定环境中,依照相关评价标准(找到最优解或找到有效解),规划出一条从起始点到目标点的无碰撞路径。对于找到最优解,大多数算法使用最优规划,对于快速找到有效解,一般使用采样规划。ROS平台中的OMPL是一个包含了许多运动规划领域前沿算法的开源运动规划库,其中大部分算法基于采样原理。本文以RRT及其扩展算法作为规划算法对机械臂进行仿真分析[7]。

RRT算法是一种基于随机采样的快速搜索算法,它首先通过采样得到一个随机样本,然后把它存储在一个树状的结构中,通过树状结构的分支继续往未知空间搜索,直到到达目标点为止。RRT算法的运动树如图3所示。

图3 RRT算法运动树

RRT迅速的在各个方向扩展,快速的扩展到空白区域的四个角落。给定一个初始状态qinit,和一个活动区域C,我们可以建立一个树状结构G来探索如何在C中活动,并最终到达目的地。假设当前G中共有K个顶点(vertex)。那么RRT可以表示为以下流程:

RRT算法的构建过程为:给出起始点qstart,随机的选取一个新状态qrand,找出树G上离随机点qrand最近的点qnear,最后把qnear沿着qrand的方向移动Δq,得到新的节点qnew,不停地搜索下去,直到达到目标点为止。

3.2 ROS避障规划实现

在新的终端中启动前面MoveIt!所配置的功能包中的demo文件,进入Rviz界面,可以自己编辑添加障碍物文件,通过拖动机械臂末端来设置机械臂的起始位置与目标位置,选择OMPL运动规划库中的规划算法RRT,并发布到当前环境中,点击Plan规划按钮,系统就会生成了一种可能的规划路径,并显示在Rviz窗口中。图4所示为配置好的仿真环境,深色为设置好的机械臂起始位置,浅色为目标位置。机械臂必须绕过小桌平面上的长方体型障碍物到达目标位置才算完成规划。当没有使用RRT规划算法时,机械臂会直接穿过障碍物到达目标位置。图5所示为通过RRT算法进行避障规划形成的路径,可以非常直观的看到机械臂成功避开了障碍物。

图4 机械臂起始位置与目标位置

图5 机械臂避障规划路径

【】【】

在终端输入rqt_plot命令,在地址栏里输入节点joint_states,能够得到各个关节运动曲线图,图6所示为关节的位置曲线图,横坐标为时间变化,纵坐标为关节位置变化,可以较为清楚的看出各个关节位置变化曲线。

图6 MoveIt!各关节位置曲线图

我们也可以通过rosbag record–a命令记录下机械臂运动过程中相关的参数数据,并利用MATLAB进行二次分析,图7图8为MATLAB分析得到的曲线图。可以看出与rqt_plot所绘制的曲线基本相同。

图7 MATLAB关节位置曲线

4 结束语

本文利用ROS平台,结合随机采样算法对机械臂进行避障路径规划,较为形象的展示了机械臂的运动过程,并可以导出相关数据利用MATLAB进行二次分析,相比其他平台,ROS平台直观高效,具有很高的开放性与扩展性,极大的方便了机器人的研究。

图8 MATLAB各关节位置曲线

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

[2]陈盛龙,平雪良,曹正万,等.基于ROS串联机器人虚拟运动控制及仿真研究[J].组合机床与自动化加工技术,2015(10):108-111.

[3]Bihlmaier A,Wörn H. ROS-Based Cognitive Surgical Robotics[C].Workshop Proceedings of, Intl.Conf. on Intelligent Autonomous Systems.2014:253-255.

[4]马克W.斯庞.机器人建模和控制[M].机械工业出版社,2016.

[5]韩秀姝,王吉岱,魏军英,等.码垛机器人运动学分析[J].机械传动,2014(9):109-112.

[6]陈金宝.ROS开源机器人控制基础[M].上海交通大学出版社,2016.

[7]代彦辉,梁艳阳,谢钢.基于RRT搜索算法的六自由度机械臂避障路径规划[J].自动化技术与应用,2012,31(10):31-37.

展开全文▼
展开全文▼

猜你喜欢

运动学开源坐标系
独立坐标系椭球变换与坐标换算
基于MATLAB的6R机器人逆运动学求解分析
五毛钱能买多少头牛
2019开源杰出贡献奖
工业机器人在MATLAB-Robotics中的运动学分析
坐标系背后的故事
三角函数的坐标系模型
求坐标系内三角形的面积
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0