本文主要讲述了睿尔曼六轴机械臂在ROS中的功能包配置,及如何根据文件启动Moveit做仿真。文中涉及的机械臂ROS包已存放网盘,链接如下:
链接:https://pan.baidu.com/s/1LC0SsoRJ-HOHcFXkN0I1cQ?pwd=xk8f
提取码:xk8f
目录
1. 机械臂ROS包介绍
2. 使用前环境准备
3. 源码的安装编译
4.在rviz中显示机械臂模型
4.1 机器人描述功能包
4.2在rviz中显示模型
5.启动MoveIt!
5.1 MoveIt!简介
5.2安装MoveIt!
5.3运行RM65-B机械臂的MoveIt!演示demo
5.3.1 拖动规划
5.3.2 选择目标姿态规划
序号 |
名称 |
作用 |
1 |
rm_65_description |
RM65-B机器人描述功能包,其中有创建好的机器人模型和配置文件 rm_65.urdf.xacro:不带手爪的RM65-B机器人模型文件 |
2 |
rm_65_moveit_config |
使用Setup Assistant工具根据机械臂URDF模型rm_65.urdf.xacro创建生成的一个MoveIt!配置的功能包,它包含了大部分MoveIt!启动所需的配置文件和启动文件,以及包含一个简单的演示demo |
3 |
rm_gazebo |
gazebo仿真机器人所用到参数和文件配置 |
4 |
rm_65_demo |
MoveIt!编程示例,包括场景规划、避障规划和pick and place |
5 |
rm_msgs |
RM65-B所用到的所有控制消息和状态消息 |
6 |
rm_control |
机器人控制器,将Moveit规划的机械臂轨迹,通过三次样条插值细分,按照20ms的控制周期发给rm_driver节点,周期可调,但是应大于10ms |
7 |
rm_driver |
(1)与机械臂通过以太网口建立socket连接,机器人IP地址:192.168.1.18,请保证上位机的IP在同一局域网内,使用ROS控制机械臂,请务必确认机械臂处于以太网口通信模式; (2)订阅各topic数据,更新RVIZ内机械臂各关节角度 |
8 |
rm_bringup |
启动机器人,运行对应的launch文件后,可自动运行rm_driver,rm_control和moveit交互RVIZ界面,直接在仿真界面中拖拽机器人即可控制真实机器人运动 |
系统:Ubuntu 18.04或Ubuntu 20.04
ROS版本:melodic或noetic
其余软件:Moveit!已安装;Gazebo可用;ros_control插件可用
新建名称为ws_rmrobot的工作空间,执行如下命令:
mkdir -p ~/ws_rmrobot/src
cd ~/ws_rmrobot/src/
然后将提供的rm_robot源码包拷贝到ws_rmrobot工作空间的src目录下或将源码包拷贝到自己创建的其他工作空间的src目录下:
图3-1 将rm_robot源码包拷贝到ws_rmrobot/src下
通过rosdep安装源码包依赖,执行以下命令(若为ROS Noetic版本则将命令中的melodic改为noetic):
rosdep install -y --from-paths . --ignore-src --rosdistro melodic -r
使用catkin工具配置工作空间并进行编译,执行如下命令:
cd ~/ws_rmrobot
catkin init
catkin build rm_msgs
catkin build
编译完成之后如下图所示:
图3-2 rm_robot源码包编译成功
在rm_robot源码包中包含了rm_65_description功能包,其中有创建好的机器人模型和配置文件。
rm_65_description功能包中主要包含urdf、meshes、launch和config四个文件夹。
在rm_65_description功能包launch文件夹中已经创建用于显示rm_65模型的launch文件rm_65_description/launch/display_rm65.launch。
打开终端进入工作空间执行以下命令运行该launch文件:
cd ~/ws_rmrobot
source devel/setup.bash
roslaunch rm_65_description display.launch
如果一切正常,可以在打开的rviz中看到如图4-1所示的机器人模型。
图4-1 在rviz中显示RM65-B机械臂模型
运行成功后,不仅启动了rviz,而且出现了一个名为“joint_state_publisher”的UI。这是因为我们在启动文件中启动了joint_state_publisher节点,该节点可以发布每个joint(除fixed类型)的状态,而且可以通过UI对joint进行控制。所以在控制界面中用鼠标滑动控制条,rviz中对应的机械臂关节就会转动。
如果rviz中未显示模型,则手动修改“Fixed Frame”为“base_link”,然后点击左侧下方的Add按钮在弹出的界面中找到“RobotModel”添加即可,如图4-2~4-3所示:
图4-2 修改FixedFrame为base_link
图4-3 rviz中添加RobotModel
在实现机械臂的自主抓取中机械臂的运动规划是其中最重要的一部分,其中包含运动学正逆解算、碰撞检测、环境感知和动作规划等。常见机械臂的运动规划大都采用的是ROS系统提供的MoveIt! 规划。
MoveIt! 是ROS系统中集合了与移动操作相关的组件包的运动规划库。它包含了运动规划中所需要的大部分功能,同时其提供友好的配置和调试界面便于完成机器人在ROS系统上的初始化及调试。
官方网站:MoveIt Motion Planning Framework,上边有MoveIt!的教程和API说明。
MoveIt!需要安装才能使用,如果未安装,请执行如下命令进行安装(若为ROS Noetic版本则将命令中的melodic改为noetic)。
sudo apt install ros-melodic-moveit
sudo apt install ros-melodic-moveit-*
在rm_robot源码包中包含了rm_65_moveit_config功能包,它是使用Setup Assistant工具根据机械臂URDF模型创建生成的一个MoveIt!配置的功能包,它包含了大部分MoveIt!启动所需的配置文件和启动文件,以及包含一个简单的演示demo。
打开终端进入工作空间执行以下命令运行RM65-B机械臂的MoveIt!演示demo:
cd ~/ws_rmrobot
source devel/setup.bash
roslaunch rm_65_moveit_config demo.launch
启动成功后,可以看到如图5-1所示的界面。
图5-1 MoveIt! demo的启动界面
拖动机械臂的前端,可以改变机械臂的姿态。然后在Planning标签页中点击“Plan & Execute”按钮,MoveIt!开始规划路径,并且控制机器人向目标位置移动,从右侧界面可以看到机器人运动的全部过程(见图5-2)。
图5-2 拖动规划的运动效果
在Planning标签页中点击Goal State的下拉列表可以选择机械臂的目标姿态,然后点击“Plan & Execute”按钮,MoveIt!开始规划路径,并且控制机器人向目标位置移动,从右侧界面可以看到机器人运动的全部过程(见图5-3)。
图5-3 选择目标姿态规划的运动效果