在之前的ROS-Industrial Overview中,ROS-I 的高层架构包含有MoveIt层,用来完成机器人的运动规划任务。在此记录一下在使用过程中遇到的磨人的问题。
1. 问题描述
在使用ROS-I控制实体机器人的过程中,通过向MoveIt的规划环境中添加碰撞物体约束,以生成机器人运动的无碰撞轨迹。但在添加完CollisionObject
约束之后,发现添加的物体不能同步到 PlanningSceneInterface 变量中,或者说不能显示到 RVIZ 的规划场景中。比如用以下代码添加场景中已固定的障碍物体:
void my_class_name::setFixedCollisionObjects()
{
moveit_msgs::CollisionObject collision_object;
collision_object.header.frame_id = "/world";
collision_object.id = "table_base";
shape_msgs::SolidPrimitive primitive;
primitive.type = primitive.BOX;
primitive.dimensions