# 一、使用Setup Assistant配置机械臂
如果使用自己创建的机器人URDF模型,则使用MoveIt!的第一步就是用Setup Assistant工具完成一些配置工作
Setup Assistant会根据用户导入的机器人URDF模型生成SRDF(Semantic Robot Description Format)文件,从而创建一个MoveIt!配置的功能包,完成机器人的配置、可视化和仿真工作
# 1.1Setup Assistant启动
首先安装MoveIt!
$ sudo apt-get install ros-melodic-moveit
使用如下指令启动MoveIt Setup Assistant
$ rosrun moveit_setup_assistant moveit_setup_assistant
运行成功后会出现如下界面:
载入上界面中可以通过点击其中的某项,主界面就会出现相应的配置选项
# 1.2加载机器人URDF模型
在这个界面的初始环境下有两个选择,一个是新建配置功能包,另一个是使用已有的配置功能包
选择新建菜单,在下侧的模型加载窗口中设置模型文件路径为marm_description功能包下的URDF文件arm.xacro,并点击“Load Files”完成加载
加载完成后如下所示:
# 1.3配置自碰撞矩阵
点击配置软件界面左侧第二项“Self-Collisions”,配置自碰撞矩阵
MoveIt!允许我们设置一定数量的随机采样点,根据这些点生成碰撞参数,检测永远不会发生碰撞的link
默认采样数据是10000个,按照这个默认值点击“Generate Collision Matrix”按钮
如下所示:
# 1.4设置虚拟关节
虚拟关节主要用来描述机器人在world坐标系下的位置。如果机器人是移动的,则虚拟关节可以与移动基座关联
但是由于此处机械臂是固定不动的,所以无需设置虚拟关节
# 1.5创建规划组
创建规划组的作用是将机器人划分为多个组成部分
每一个组成部分是由link和joint组成的,运动规划器会针对一组link和joint完成规划任务
在配置过程中还可以选择运动学解析器
在该机器人模型中可以划分为两部分:机械臂本体、前端夹爪
# 1.6定义机器人位姿
在这一步中可以设置一些自定义的位子,比如机器人的初始位姿、指定姿态位姿等等
# 1.7配置终端夹爪
机械臂在一些使用场景下会安装夹具等终端结构,可以在这一步进行安装
# 1.8配置无用关节
机器人上的某些关节在规划、控制过程中可能是用不到的,可以事先声明出来
# 1.9设置作者信息
这一部可以设置作者的信息
# 1.10生成配置文件
这一步可以根据之前的配置,自动生成配置功能包中的所有文件
点击"Browse"按钮,选择存储功能包的路径。Setup Assistant会打包所有配置并生成一个ROS功能包
后点击"Generate Package"按钮,如果成功生成并保存配置文件,则可以看到"Configuration package generated successfully!"
# 二、启动MoveIt!
编译后可使用命令:$ roslaunch marm_moveit_config demo.launch
# 2.1拖动规划
拖动机械臂的前端,可以改变机械臂的姿态,然后再Planning标签中点击"Plan and Execute"按钮,MoveIt!开始规划路径,并且控制机器人向目标位置移动,从右侧洁面可以看到机器人运动的全过程
# 2.2随机目标规划
在Query工具栏中的"Goal State"的下拉选项中可以选择"random valid",然后点击update按钮,MoveIt!会在机器人的工作范围内随机生成一个目标位姿,继续点击"Plan and Execute"按钮,机器人会自动运动到随机产生的目标位姿
# 2.3初始位姿更新
可以使用"Start State"设置机器人的初始位姿,和"Goal State"方法类似
# 2.4碰撞检测
在MoveIt!中有一个planning scene模块,允许我们创建一个虚拟环境
在MotionPlanning插件的"Scene Objects"标签页中点击"Import File"按钮,可以添加场景物体的dae文件
加入模型后,MoveIt!在运动规划时会进行碰撞检测,加入机器人的目标姿态和外部模型发生碰撞,进行运动规划时就会提示失败,界面中变成红色的link表示发生碰撞的部分