目录
一、简介
大家好,欢迎关注遨博学院带来的系列技术分享文章(协作机器人ROS开发),今天我们来学习MoveIt!设置助手机械臂配置。
在前面课程中,我们生成了机械臂的URDF模型文件,本节课讲解如何使用URDF文件,生成ROS系统下的MoveIt!配置功能包。
MoveIt!设置助手机械臂配置
二、环境版本
- 主机系统版本:Windwos10 64位
- 处理器型号:Intel-i7
- 虚拟机版本:VMware Workstation 16 Pro
- 虚拟机系统:Ubuntu 18.04.6 LTS
- ROS版本:Melodic
三、学习目标
四、知识储备
首先了解SRDF概念。
下面介绍MoveIt!设置助手,它是一个图形用户界面,用于配置任何机器人以与MoveIt!一起使用。
五、任务实施
MoveIt!设置助手机械臂配置包含以下步骤,可以通过微课实操演示进行学习。
1.MoveIt!设置助手加载机械臂URDF文件
本微课在ROS工作空间目录(~/ws_moveit/)下进行,若没有可执行如下命令创建:
将aubo_description.tar.xz压缩包拖拽拷贝至虚拟机~/ws_moveit/src目录下,并解压;
执行如下命令编译: 执行如下命令启动MoveIt!设置助手:
这将打开带有两个选项的开始屏幕:创建新的MoveIt配置包或编辑现有的MoveIt配置包。
单击【Create New MoveIt Configuration Package】按钮以显示以下屏幕:
单击【Browse】按钮并导航到安装上述aubo_description软件包时安装的aubo_e5.urdf文件。(此文件安装在~/ws_moveit/src/aubo_description/urdf/aubo_e5.urdf中)选择该文件,然后单击【Load Files】。设置助手将加载文件(这可能需要几秒钟)。
2.生成Self-Collisions自碰撞矩阵
默认自碰撞矩阵生成器搜索机器人上可以安全禁用碰撞检查的链接对,从而减少运动规划处理时间。当这些链接对总是处于碰撞中,从不发生碰撞,在机器人默认位置发生碰撞时,或者当链接在运动链上彼此相邻时,这些链接对将被禁用。采样密度指定要检查自碰撞的随机机器人位置数。较高的密度需要更多的计算时间,而较低的密度则更有可能禁用不应禁用的对。默认值为10,000次碰撞检查。碰撞检查是并行完成的,以减少处理时间。
单击左侧的Self-Collisions窗格选择器,然后单击【Generate Collision Matrix】按钮。设置助手将工作几秒钟,然后在表格中显示其计算结果。
3.添加虚拟关节
虚拟关节主要用于将机器人连接到世界。对于本aubo_e5机械臂,我们将只定义一个虚拟关节,将aubo_e5的base_link附加到World框架。这个虚拟关节代表了机器人底座在平面内的运动。
- 单击【Virtual Joints】窗格选择器。单击添加虚拟关节。
- 将关节名称设置为“virtual_joint”。
- 将子链接设置为“base_link”,将父框架名称设置为“world”。
- 将关节类型设置为“fixed”。
- 单击【Save】按钮保存
4.添加计划组
计划组用于从语义上描述机器人的不同部分,例如定义手臂或末端执行器是什么。
- 单击【Planning Groups】窗格选择器。
- 单击【Add Group】,您应该会看到以下屏幕:
- 添加手臂
- 输入组名称为aubo_e5
- 选择kdl_kinematics_plugin/KDLKinematicsPlugin作为运动学求解器。
- 【Group default planner】选择RRTConnect。
现在,单击【Add Joints】按钮。您将在左侧看到关节列表。您需要选择属于手臂的所有关节并将它们添加到右侧。关节按照它们存储在内部树结构中的顺序排列。这使得选择一系列关节链变得容易。
单击【shoulder_joint】,按住键盘上的Shift按钮,然后单击【wrist3_joint】。现在单击【>】按钮将这些关节添加到右侧的选定关节列表中。
单击【Save】以保存所选组。
回到添加计划组界面后双击【Chain】,点开Robot Links。选中base_link后,点击下方的【Base Link】右侧的【Choose Selected】按钮。之后选中wrist3_link后点击下方【Tip Link】右侧的【Choose Selected】按钮,如图:
点击【Save】保存退出。
5.添加机器人姿态
设置助手允许您将某些固定姿势添加到配置中。例如,如果您想将机器人的某个位置定义为Home位置,这会有所帮助。
单击【Robot Poses】窗格。
单击【Add Pose】。为姿势选择一个名称。机器人将处于其默认位置,其中关节值设置为允许关节值范围的中间值。移动各个关节直到您满意为止,然后保存姿势。请注意姿势如何与特定组相关联。您可以为每个组保存单独的姿势。
6.标记末端执行器
本机械臂模型暂未添加末端夹手,本步可先略过。
7.添加被动关节
被动关节选项卡旨在允许指定机器人中可能存在的任何被动关节。这些是机器人上未驱动的关节(例如被动脚轮)。这告诉规划者他们不能(运动学上)规划这些关节,因为它们不能被直接控制。本机械臂没有任何被动关节,因此我们将跳过这一步。
8.配置ROS Control
ROS Control是ROS官方提供的针对控制机器人的一套硬件驱动框架,针对不同的运动执行器提供不同的驱动接口,在这之上又加入了一个硬件抽象层统一接入ROS,包含了一系列ROS包: controller interfaces, controller managers, transmissions and hardware_interfaces。
这里我们可以通过ROS Control面板为关节添加模拟控制器,这样就可以通过MoveIt模拟机械臂运动。
- 选择左侧【ROS Control】
- 点击【Add Controller】
- 首先为arm规划组添加position controller
- 定义名称为aubo_e5_controller
- 选择【controller type】为position_controllers/JointTrajectoryController
- 下一步是添加控制的关节,这里可以单个关节添加,也可以添加整个规划组。这里选择后者,点击【Add Planning Group Joints】。
- 选择规划组aubo_e5并添加到右侧。
- 点击【Save】保存。
9.Gazebo模拟
如果需要,模拟选项卡可用于通过生成新的Gazebo兼容urdf来帮助您使用Gazebo模拟您的机器人。
10.设置3D感知
3D Perception 选项卡用于设置YAML配置文件的参数,用于配置3D传感器sensor_3d.yaml。例如双目相机。
11.作者信息
Catkin需要作者信息用于发布目的。
单击“Author Information”窗格。
输入您的姓名和电子邮件地址。
12.生成配置文件
最后一步,生成开始使用MoveIt所需的所有配置文件。
单击【Configuration Files】窗格。为将生成的包含新配置文件集的ROS包选择一个位置和名称。单击【Browse】,选择一个合适的位置(例如,您的主目录),单击【创建新文件夹】,将其命名为“aubo_e5_moveit_config”,创建完成后然后单击【Open】。
单击【Generate Package】按钮,出现弹窗,点击【OK】按钮继续。安装助手现在将生成一组启动和配置文件并将其写入您选择的目录中。所有生成的文件都将出现在“生成的文件/文件夹”选项卡中,您可以单击每个文件以了解它们所包含的内容。
至此,就完成了MoveIt包的配置,点击【Exit Setup Assitant】退出。
六、任务拓展
通过文件浏览器查看生成的MoveIt配置功能包,熟悉各文件夹及文件的作用与用途。
七、课堂小结
说明:本微课仅用于学习ROS系统下的MoveIt设置助手的使用流程。后续在ROS下编程使用遨博官方提供的ROS MoveIt功能包。具体内容详见往期ROS课程。
通过本篇文章的学习,用户可以基本掌握MoveIt设置助手配置遨博E5机械臂的使用方法,小结如下。
八、课后练习
在接下来的ROS课程中,我们会讲解《遨博机械臂ROS通讯机制》,欢迎持续关注。