4. MoveIt!配置助手生成机械臂配置包
任务目标
为自定义URDF机械臂生成MoveIt!运动规划配置包,包含碰撞矩阵与规划组定义,使机械臂可在RViz中通过MoveIt!插件进行运动规划与可视化。
环境准备
- Ubuntu 20.04 + ROS Noetic(或Ubuntu 18.04 + ROS Melodic)
- 已安装
moveit_setup_assistant:sudo apt install ros-noetic-moveit - 已准备好机械臂URDF文件(本例使用
arm.urdf,含base_link、shoulder_link、upperarm_link、forearm_link、wrist_link、gripper_link)
操作流程
- 启动配置助手:
roslaunch moveit_setup_assistant setup_assistant.launch - 点击Create New MoveIt Configuration Package,浏览选择
arm.urdf文件 - 进入Self-Collisions页,点击Generate Collision Matrix,采样密度保持默认10000,生成后点击Save
- 进入Planning Groups页,点击Add Group:
- Group Name:
arm_group,Kinematic Solver:KDLKinematicsPlugin - 点击Add Joints,选中全部5个旋转关节(shoulder_pan_joint至wrist_roll_joint)
- 点击Add Links,选中base_link至wrist_link
- 点击Save
- 进入Robot Poses页,添加
home姿态(所有关节为0),保存 - 进入End Effectors页,添加末端执行器:Name:
gripper,Group:arm_group,Link:gripper_link - 进入Configuration Files页,设置包名
arm_moveit_config,点击Generate Package,选择输出目录(如~/catkin_ws/src)
验证方法
- 编译并加载配置包:
cd ~/catkin_ws && catkin_make
roslaunch arm_moveit_config demo.launch
- RViz启动后,确认:
- 左侧MotionPlanning面板显示机械臂模型,无红色碰撞警告
- 在Planning Group下拉框中选择
arm_group - 拖动交互标记设置目标位姿,点击Plan,规划成功显示绿色轨迹
- 点击Execute,机械臂在RViz中完成运动
通过条件:规划组可选中、无自碰撞报错、能成功规划并执行一条从home到任意目标点的无碰撞轨迹。
关键生成文件说明
配置包生成后,核心文件位于arm_moveit_config/config/目录:
srdf/arm.srdf:包含碰撞矩阵(<disable_collisions>标签对)与规划组定义(<group>标签)joint_limits.yaml:关节速度/加速度限制(由助手自动生成)kinematics.yaml:KDL求解器配置
常见问题
- 规划失败:检查
arm.srdf中<group>是否包含全部5个关节;确认URDF中关节轴方向正确 - 碰撞检测报错:重新生成碰撞矩阵,增大采样密度至50000
- demo.launch无法启动:确认
arm_moveit_config已编译,且URDF路径在launch文件中正确