
按道理会规划不成功,但是出人意料,没有避障,直接穿透了!而且拖着机械臂碰撞box不会变红。
关注引自免费微信小程序:皆我百晓生
在MoveIt!中,机械臂路径规划不避障并且直接穿透障碍物的情况通常是由于以下几个原因导致的:
碰撞检测未启用:确保你在MoveIt!的配置或者运动规划场景(Scene)中启用了碰撞检测。在PlanningSceneInterface或move_group节点里,你需要明确设置允许检查碰撞。
planning_scene_interface::PlanningSceneInterface planning_scene("robot_description");
planning_scene.setCollisionObject(...); // 添加障碍物
planning_scene.applyCollisionObjects(); // 应用障碍物到场景
planning_scene.setPlanningSceneDiff(); // 更新规划场景
moveit::planning_interface::MoveGroupInterface move_group("manipulator"); // 替换为你的机械臂名称
move_group.setPlanningTime(5.0); // 设置足够长的规划时间
move_group.setGoalOrientationTolerance(0.01); // 适当设置精度参数
move_group.setPlannerId("OMPL"); // 确保使用包含碰撞检测功能的规划器
规划配置问题:请检查MoveIt!配置文件中的ompl_planning.yaml或其他相关规划器配置,确认已启用正确的碰撞矩阵和成本映射(costmap)。
机器人URDF模型问题:确保URDF文件中所有需要进行碰撞检测的链接(link)都有对应的碰撞体(collision mesh)。如果碰撞体缺失或尺寸定义错误,可能会导致碰撞检测失效。
规划算法选择:某些规划算法可能不考虑碰撞检测,例如单纯形法等。请在MoveIt!配置中选择一个支持避障的规划器,如RRT、PRM等。
规划目标过于接近障碍物:如果规划的目标点非常接近障碍物,规划器可能无法找到一条完全避开障碍物的路径。尝试调整目标位置或增大规划空间的安全距离。
解决这类问题时,请按照以下步骤逐步排查:
通过上述分析,你可以逐一排查问题所在,并对症下药地进行相应的配置修改和优化。