R__obot 2024-03-13 15:45 采纳率: 0%
浏览 17

moveit不避障,直接穿透,这是怎么回事?

img


按道理会规划不成功,但是出人意料,没有避障,直接穿透了!而且拖着机械臂碰撞box不会变红。

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-13 15:45
    关注

    引自免费微信小程序:皆我百晓生

    在MoveIt!中,机械臂路径规划不避障并且直接穿透障碍物的情况通常是由于以下几个原因导致的:

    1. 碰撞检测未启用:确保你在MoveIt!的配置或者运动规划场景(Scene)中启用了碰撞检测。在PlanningSceneInterfacemove_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"); // 确保使用包含碰撞检测功能的规划器
      
    2. 规划配置问题:请检查MoveIt!配置文件中的ompl_planning.yaml或其他相关规划器配置,确认已启用正确的碰撞矩阵和成本映射(costmap)。

    3. 机器人URDF模型问题:确保URDF文件中所有需要进行碰撞检测的链接(link)都有对应的碰撞体(collision mesh)。如果碰撞体缺失或尺寸定义错误,可能会导致碰撞检测失效。

    4. 规划算法选择:某些规划算法可能不考虑碰撞检测,例如单纯形法等。请在MoveIt!配置中选择一个支持避障的规划器,如RRT、PRM等。

    5. 规划目标过于接近障碍物:如果规划的目标点非常接近障碍物,规划器可能无法找到一条完全避开障碍物的路径。尝试调整目标位置或增大规划空间的安全距离。

    解决这类问题时,请按照以下步骤逐步排查:

    • 验证碰撞检测是否生效(通过ROS服务查看碰撞结果)。
    • 检查并更新MoveIt!配置和参数。
    • 使用可视化工具(如RViz)观察规划路径以及障碍物与机械臂的关系。

    通过上述分析,你可以逐一排查问题所在,并对症下药地进行相应的配置修改和优化。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月13日

悬赏问题

  • ¥15 r语言构建二元logistics回归模型及列线图,ROC曲线很奇怪
  • ¥200 关于#matlab#的问题:如图所示的四元二次方程组,想消元消掉A B C D
  • ¥20 小红书和抖音看到很多卖爬虫加矩阵工具,可行吗?
  • ¥15 如何在envi中通过matlab提取树种纹理特征 并利用纹理特征和光谱指数进行树种分类
  • ¥15 圣天诺的。 到期就会有一个60秒的弹窗
  • ¥15 圣天诺的。 到期就会有一个60秒的弹窗。
  • ¥15 Python脚本打包成 .exe的问题
  • ¥15 ipv6路由表显示错误
  • ¥15 python将html转pdf
  • ¥15 C# PrintDocument 80 热敏打印机 , 顶部空间如何缩小