APP下载

基于ROS的六轴工业机器人避障研究

2022-07-01胡俊立

科技资讯 2022年14期
关键词:避障

胡俊立

摘要:为了解决工业机器人在复杂环境中的实时避障问题,该文提出在ROS平台中的工业机器人避障规划方案。首先,利用SolidWorks建立机器人3D模型并导入到ROS平台中的RViz环境中;其次,通过MoveIt!工具提供的KDL库完成对机器人的逆运动学方程求解问题,使用OMPL库中的RRT算法实现对机器人的运动规划;最后,在ROS平台下的RViz环境中对运动规划结果进行了仿真,使用rqt工具分析了机器人运动过程中关节位置随时间变化的曲线,验证了该方案的有效性。

关键词:ROS  运动规划  避障  RRT

中图分类号:TP242.2文献标识码:A   文章编号:1672-3791(2022)07(b)-0000-00

Research on Obstacle Avoidance of Six-Axis Industrial Robot Based on ROS

HU Junli

(Department of Mechanical and Electrical Engineering Henan Industry and Trade Vocational College, Zhengzhou, Henan Province, 451191 China)

Abstract:In order to solve the real-time obstacle avoidance problem of industrial robots in complex environments, this paper proposes an obstacle avoidance plan based on ROS. In this paper, an 3D model established by SolidWorks of the robot is imported into Rviz, which is the 3D visualization platform in ROS. And then, the robot's inverse kinematic equation is solved by using KDL of MoveIt! tools. Motion planning of the robot uses the RRT algorithm implemented by OMPL of MoveIt! tools.  Finally, the simulation result and the curve of joint position varies with time generated by rqt tools verify the validity of the obstacle avoidance plan in this paper.

Key Words:ROS;  Motion Planning;  Obstacle Avoidance;  RRT

在工業机器人工作过程中,在其工作路径上会存在障碍,如路径干涉、人员入侵、其他设备等,由于工业机器人工作空间范围相对固定,要求机器人能快速自动识别障碍物并进行躲避。目前,操作工业机器人的主要方式为人工示教,即首先由操作人员手持示教器将机器人位置、姿态、动作指令等信息存储于控制系统,然后由控制系统重复再现示教过的轨迹和指令。这种操作方式需要人工参与,效率较低并且机器人运动轨迹是固定的,无法根据环境的变化做出实时的调整。因此,必须解决工业机器人在复杂工作环境中的实时避障问题[1]。

ROS 是一种开源的机器人操作系统,支持C++、python、lisp 等多种语言,免费且开发资源丰富。ROS 整合了许多工具包:rqt 工具箱、Rviz 三维可视化工具、同步定位与建图 SLAM算法集、机械臂控制模块 MoveIt!、导航模块 Navigation。基于此,该文以 ABB 公司生产的IRB120 机器人为研究对象,在 Ubuntu16.04 上利用 ROS-Kinetic 搭建运动规划仿真平台对其进行运动规划。

1 机器人操作系统ROS

2010年WillowGarage公司正式发布ROS1.0开源版本,目前主要发行版已更新至ROS-Noetic版本。ROS它提供了操作系統的相关服务,比如:硬件抽象、设备控制、消息传递、包管理和开发应用所需的工具和库函数。ROS采用分布式架构,将功能封装在节点(node)中,通过节点间的消息传递实现任务的分层。

1.1 3D可视化工具RViz

RViz是ROS中的三维可视化平台,在RViz中可以使用XML文件对机器人及周围物体进行尺寸、质量、位置、材质等属性的描述,并在界面中显示出来[2]。例如,如果要显示某个信息,该数据必须首先通过话题以消息的形式发布,通过在RViz中使用相应的插件订阅该消息即可实现显示。在 RViz界面中,还可以通过按钮、滑动条、数值输入框等控制机器人的行为[3]。RViz的主要功能是图形化显示ROS消息或向机器人发送控制信息,实现对机器人的控制

1.2 MoveIt!功能包

MoveIt!是ROS中是专门用于机械臂运动控制的功能包与工具的集合[4],包含运动规划OMPL、操作控制、碰撞检测FCL、正逆运动学KDL和IK_fast,并可以以3D呈现机器人模型。move_group是MoveIt!的核心部分,是各种功能包、插件的集合,为用户提供需要的指令和服务。它通过ROS Param Server节点载入机器人模型和相关配置文件,以消息或服务的形式接收RGB-D相机或激光雷达的点云数据、关节位置数据和tf树信息;通过Robot Controllers节点将运动规划数据发送给机器人驱动部分。MoveIt!提供了MoveIt!配置助手界面用以生成配置文件包,支持3种方式调用move_group提供的功能和服务:C++、Python和Motion Planning插件,通过Motion Planning插件可以方便地选择运动规划算法。

2 IRB120模型的建立

2.1生成URDF文件

URDF(Unified Robot Description Format)文件是ROS中机器人模型的描述文件,符合XML语言规范[5]。URDF是机器人与ROS沟通的桥梁,通过URDF文件,机器人的各个连杆和关节的状态才能输入到ROS中。在 URDF 文件中,使用<link>和<joint>表示机器人的机械结构中的连杆和关节,<joint>标签中的<parent>和<child>表示连杆之间的连接关系,<origin>标签表示连杆之间的坐标变换关系,<axis>标签表示关节的运动学参数;<link>标签中的<visual>表示连杆的可视化模型参数,如质量、外观形状等;<inertial>标签表示连杆的动力学参数,如惯性坐标系,二阶矩;<collision>表示连杆的碰撞模型参数,一般与<visual>标签一样。在构建机器人模型时,一般不单纯使用XML文件来描述机器人,往往借助于三维模型开发工具来建立模型。该文中即首先使用SolidWorks绘制IRB120的结构模型,再使用ROS中的sw2urdf工具将其转化为URDF文件。

2.2创建MoveIt!配置文件

MoveIt!是ROS中对机械臂进行运动规划的一系列工具的集合[6]。在使用MoveIt!进行运动规划之前需要设置好运动规划所需的各项配置参数及启动文件,MoveIt!提供了可视化的配置助手来生成配置文件。首先需要创建一个新的配置包,找到上一步创建的IRB120机器人的URDF模型文件并导入。在此过程中,最重要的是创建机器人运动规划组,需要在此步中设置在此步骤中还需要设置求解机械臂正逆运动学求解工具,该文中使用KDL计算机械臂逆运动学方程。生成的配置包中包含运动规划所需的配置文件和启动文件,其中通过启动demo.launch文件可以观察生成的配置包是否满足要求。

3 IRB120六轴工业机器人运动规划

运动规划是指机器人在运动过程中遵循无碰撞、路径最短等约束条件,找到一条从起始位姿到目标位姿的最优路径。工业机器人在存在障碍物的工作空间内时,需要6个变量确定其三维空间的位姿,在运动过程中需要快速计算出路径上的位姿数据,对于类似于IRB120的六自由度机械臂则存在多个逆运动方程的解。在MoveIt!提供的运动规划Motion Planning插件可选择OMPL提供的多种运动规划算法,比如:快速拓展随机树算法(RRT)和随机路径图法(PRM)等,考虑到机械臂避障的实时性要求,该文中选择RRT算法对机械臂进行避障运动规划。

RRT 算法是一种基于随机采样的快速搜索算法[7],其原理是首先将初始点作为根节点,然后进行随机采样生成随机节点,以此来扩展子节点,子节点相连生成随机扩展树,当随机扩展树到达目标子节点时,便可以连通初始节点和目标节点形成一条路径。在二维空间内,RRT 算法工作时,以 QStart 作为初始节点,在工作空间内随机选取新的一点 QRand,在随机扩展树上找到距离 QRand 最近的点 QNear,然后将 QNear 沿着 QRand 的方向移动一个步长,得到新的节点 QNew,依次循环执行以上动作,直到随机扩展树到达目标点停止。机械臂工作在三维空间中,在机械臂避障运动规划过程中,在三维空间内进行随机采样并运行RRT算法[8],最终可以连通从初始位姿到目标位姿的随机扩展树,该随机扩展树即为无碰撞避障路径。

4运动规划仿真与分析

在终端中输入“roslaunch demo.launch”进入RViz,在MotionPlanning插件中点击Context页面,在Planning Library中选择RRT算法;在Scene Objects页面中为场景添加障碍物,拖动机械臂末端小球设置机械臂的目标位姿;在Planning页面中,点击Plan和Execute按钮,MoveIt!工具就会按照配置好的RRT算法规划出一条最优路径,并显示在RViz窗口中。

图1为IRB120路径规划图,浅色为机械臂起始位置,深色为目标位置,中间为长方体障碍物。在Planning页面中,点击Plan和Execute按钮,可以看到机械臂从起始位姿开始运动,绕过场景中的长方体型障碍物到达目标位置。

在终端中输入“rqt_plot”,启动rqt_plot工具,订阅机械臂/joint_states/position话题,可以得到六个关节角随时间变化曲线,如图2所示,横坐标为时间,纵坐标为关节角度,通过该曲线可以看出,关节角随时间变化平稳连续,验证了运动规划方案的可行性。

5结语

该文利用SolidWorks完成了IRB120六轴工业机器人的3D建模,通过使用ROS提供的sw2urdf插件将3D模型转化为URDF文件,在ROS平台下的RViz工具中建立了机器人工作环境模型,利用ROS平台下的MoveIt!工具创建了运动规划的配置文件包,使用KDL完成了对机器人逆运动学方程的求解问题,测试了OMPL中RRT算法的有效性,完成了IRB120在复杂工作环境中的避障运动规划。通过分析IRB120机器人在避障过程中各个关节的位置变化结果验证了避障运动规划方案的可行性,下一步的研究工作集中于在ROS环境中机器人工作环境的实时重建和在机械臂样机上的具体实现。

参考文献

[1]  宋栓军, 韩军政, 马军. 基于BP神经网络的移动机器人避障设计及仿真[J]. 测控技术, 2020(4): 43-48.

[2]  颜克. 物理模型驱动的工业机器人能耗数字建模研究[D]. 武汉:武汉理工大学, 2019.

[3]  马向华, 曲佳睿, 趙阳, 等. 基于视觉定位的七轴机械臂目标抓取研究[J]. 应用技术学报, 2020(2): 153-157.

[4]  霍寒旭, 袁昌耀, 曹秀芳, 等. 基于ROS的液压重载机械臂避障仿真[J]. 天津理工大学学报, 2020(3): 36-39.

[5]  杨曦. 基于ROS的自主移动机器人系统设计[D]. 西安: 长安大学, 2019.

[6]  张颖, 平雪良, 王晨学, 等. ROS下基于EtherCAT的串联机器人控制系统[J]. 传感器与微系统, 2018(3): 106-109.

[7]  陈敏, 李笑, 武交峰, 等. 基于距离度量学习的智能车辆路径规划[J]. 计算机仿真,2020(7): 163-167.

[8]  袁杰, 刘祚时. 基于ROS的六自由度机械臂避障研究[J]. 制造业自动化, 2017(12): 41-43, 80.

猜你喜欢

避障
除雪机的设计及其液压控制
基于混合算法的仿生机器鱼路径规划
一种单双目结合的全景避障测距方法
智能引导小车的设计与实现
基于LabVIEW的自主巡航与遥控双功能智能小车研发
基于HC—SR04超声波传感器的智能避障小车设计
基于STM32芯片的移动机器人的避障研究
基于图像边缘检测的机器人避障方案设计
基于“STC80C51单片机”的智能小车系统的设计
智能移动机器人的超声避障