MoveIt
1 MoveIt 简介
MoveIt 是ROS中的一个集成开发平台,由多种用于操纵机械臂的功能包组成,包括:运动规划、操作、控制、逆运动学、3D感知和碰撞检测等。
下图所示为 Moveit 提供的主要节点 move_group 的高层结构,它像一个组合器:把所有单独的组件集成在一起,提供一系列的 actions 和 services 供用户使用。
2 用户界面
用户可以通过三种方式访问move_group提供的操作和服务:
- 在C++ : 使用move_group_interface包可以方便实用move_group。
- 在 Python : 使用moveit_commander包。
- 通过 GUI : 使用 Motion——commander 的 Rviz(ROS可视化工具)。
move_group可以使用ROS参数服务器进行配置,从中还可以获取机器人的URDF和SRDF。
3 配置
move_group是一个 ROS 节点。它使用ROS参数服务器来获取三种信息:
- URDF - move_group在ROS参数服务器上查找robot_description参数,以获取机器人的URDF。
- SRDF - move_group在 ROS 参数服务器上查找robot_description_semantic参数,以获取机器人的 SRDF。SRDF 通常由用户使用 MoveIt 设置助理创建。
- MoveIt 配置 - move_group将在 ROS 参数服务器上查找特定于 MoveIt 的其他配置,包括关节限制、运动学、运动规划、感知和其他信息。这些组件的配置文件由MoveIt设置助手自动生成,并存储在机器人的相应MoveIt配置包的配置目录中。
使用MoveIt
mycobot_ros
现已集成了 MoveIt 部分。
打开命令行运行:
- mycobot 280-JetsonNano版本:
roslaunch mycobot_280jn_moveit mycobot_moveit.launch
若输入命令后终端出现以下反馈
command `roslaunch` not found,but can be installed with
sudo apt install python3-roslaunch
则请回到环境搭建章节,根据章节指引升级mycobot_ros包
运行效果如下:
可以计划并执行,演示效果:
如果需要让真实的机械臂同步执行计划,需要再打开一个命令行,运行:
- mycobot 280-JetsonNano版本:
# mycobot 280-JetsonNano版本默认串口名为"/dev/ttyTHS1",波特率为1000000.
rosrun mycobot_280jn_moveit sync_plan.py _port:=/dev/ttyTHS1 _baud:=1000000