ROS下机械臂仿真实验平台设计探析

ROS下机械臂仿真实验平台设计探析

摘要:针对机械臂成本高不利于推广以及远程教学场景下难以进行仿真实验的问题,设计了一种基于机器人操作系统(RobotOperatingSystem,ROS)的机械臂仿真实验平台,该仿真实验平台包括机械臂仿真模块、ROS分布式节点控制模块、上位机控制软件,其中,上位机控制软件完成机械臂的末端控制、关节控制以及机械臂的状态显示等功能;ROS分布式节点控制模块负责将上位机控制软件发送的控制指令处理后发送给机械臂仿真模块;基于该仿真实验平台,仅需修改机械臂模型配置文件即可实现对不同种类机械臂的兼容与个性化定制,大幅降低了实验成本。实践证明,该虚拟仿真实验平台具有可扩展性强、易于维护等优点。

关键词:仿真实验平台;上位机软件;ROS分布式节点控制模块

1概述

在教育信息化的大背景下,人们的生活方式以及高校的教学模式发生了较大变化,得益于教育信息化的快速发展,学生不需要返回校园也可以在线学习,完成学业[2]。然而,一些实验课程与硬件密切相关,由于缺乏相关仿真平台的支撑,这些与硬件相关在线实验教学活动难以顺利开展。另一方面,机器臂因其具有生产效率高、有助于降低劳动力成本的优点正广泛运用于智能制造领域,同时,市场上对于机械臂相关专业人才的需求非常旺盛,因此,研制一个通用且适用于远程教学场景的机械臂仿真平台,已成为机器人相关领域人才培养的一个亟待解决的重要问题[3]。针对以上问题,提出了一种基于ROS的机械臂仿真实验平台的设计方案,该平台支持多种机械臂模型,具有可扩展性强、成本低、易于维护的优点。

2平台架构

机器人操作系统(ROS)起源于2007年,是斯坦福大学人工智能实验室研发的分布式模块化的开源框架并且集成了一些机器人领域常用的工具程序和软件库[4]。提出的仿真实验系统基于ROS平台开发而成,主要由机械臂仿真模块、上位机控制软件、ROS分布式节点控制模块组成。其中,机械臂仿真模块包括物理仿真引擎及机械臂模型;上位机控制软件负责将用户的指令以话题和服务的形式发送给ROS分布式节点控制模块,并能够将机械臂的状态信息显示在控制面板上;ROS分布式节点控制模块程序负责接收处理上位机软件传来的话题消息,并将处理完成的数据通过Moveit接口以话题的形式传给机械臂仿真模块[5-6]。其整体框架图如图1所示。

3基于ROS的机械臂仿真环境搭建

3.1机械臂仿真模型加载

该仿真实验平台采用ROS中的Gazebo作为物理仿真引擎,该引擎支持通过编写启动文件加载机械臂模型描述文件的方式加载不同机械臂模型。在Gazebo中可以通过添加传感器、桌椅、环境灯光和修改相应配置参数的方式来更好模拟现实世界。此外,该实验平台还支持自定义的三维模型,以方便为工作环境添加非标设备。

3.2仿真模型与ROS系统的连接配置

为了将新设计了机械臂模型嵌入ROS系统,还需要进行连接配置,即通过ROS提供的ros_control控制器完成ROS与机械臂模型的连接。ros_control控制器集成了大量的机械臂常用的关节角度控制器、关节力矩控制器,方便用户实现对机械臂的控制。

3.3机械臂仿真模型个性化定制

该仿真平台支持第三方机械臂模型的定制,下面以设计末端夹具为例,详细描述具体过程。首先,使用solidworks三维建模工具制作夹具模型,并将其转化为URDF(UnifiedRobotDescriptionFormat)文件,URDF是一种基于XML规范、用于描述机器人的一系列关节与连杆的相对关系、惯性属性、几何特点和碰撞模型的文档[3]。预期目标是把机械臂的末端与自定义夹具连接起来,期望的关节与连杆的结构关系如图2所示。为了把夹具与机械臂模型连接起来,需要使用Moveit配置助手将urdf文件导入ros,将描述夹具和原机械臂本体的两个URDF文件合并重组成一个新的URDF文件,并形成新的机械臂文件描述包,在完成机械臂轨迹规划、关节控制相关的配置和启动文件后,即可正常控制。配置好所需要的控制器、编写配置以及启动文件,并在此文件中挂载机器人的URDF文件,在Gazebo中加载重新组装的机械臂。

4基于ROS平台的机械臂控制系统设计

4.1上位机控制软件

在ROS中rviz是一个用于显示及控制三维模型的可视化软件,能够完成机械臂运动规划及控制等功能。为进一步改善用户体验,本实验平台的上位机控制软件基于ROS提供的rviz插件行二次开发,能够与rviz实现融合,方便使用。本平台所开发的上位机控制软件可以无缝嵌入rviz软件中,还可以通过给控制对象控制信息,从而实现对机器人的监测与控制。用户可以通过此该上位机软件完成指令下达、状态查询等功能。该上位机控制软件支持3种控制模式:(1)通过输入末端的坐标位置以及末端夹爪的姿态,控制机械臂的末端直接达到目标位置;(2)通过滑动界面上的滑条控制机械臂的各个关节的角度,实现机械臂控制;(3)设计机械臂的轨迹,使机械臂能够完成一系列指定动作。此外上位机软件能够接收仿真机械臂的状态消息,并且将数据实时更新在状态反馈栏。

4.2ROS分布式节点控制模块

为了提高模块的重用率降低耦合性,该实验平台采用分布式设计架构,上位机软件可以通过分布式节点控制机械臂。其中,上位机软件节点采用话题与订阅的方式与分布式节点控制模块ur_treatment通信,从而实现机械臂的控制。

5系统测试

为验证文中所提方案的有效性,在Ubuntu16.04和ROSKinectic版本下搭建了机械臂仿真环境。通过在上位机软件输入栏中输入坐标或拖动滑块就能控制机械臂的末端位置及关节角度。基于UR机械臂,完成了一个物体夹取实现。在加载完UR机械臂模型后,通过控制机械臂末端的夹具的位置以及开闭状态,能够使UR机械臂成功夹取放置于桌面上的香蕉。此外,后续还可以考虑增加摄像头等传感设备,增加相应的与视觉识别相关的实验内容。

6结语

研制支持不同机械臂类型的仿真平台对于降低实验成本、支持远程教学、提高实验效率有着十分重要的意义。介绍一种基于机器人操作系统的机械臂仿真实验平台的设计方案,采用分布式编程技术,使用户能够实验采用多种控制方式控制机械臂,实践证明,该实验平台对于开展远程教学、降低机械臂学习门槛、创新人才的培养方面具着较好的支撑作用。

作者:许兆丰 杨亮 张伯泉 曾碧 许畅 单位:广东工业大学电子科技大学中山学院

精选范文