鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    move it task constructor的规划结果与实际执行结果(gazebo环境下执行)不完全一致

    已定时 已固定 已锁定 已移动
    ROS 2相关问题
    moveit2 gazebo ros2 humble
    2
    3
    296
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 3
      398737792
      最后由 编辑

      环境:
      ros2版本:humble gazebo版本:fortress
      问题描述:
      我利用moveit task constructor(MTC)实现一个pick place demo。MTC成功给出了一个规划结果。屏幕截图 2024-09-23 202235.png
      但是当我点击execute时,在gazebo中的实际执行结果与MTC演示的规划结果并不完全一致。gazebo中实际执行时,似乎并不是严格按照一个stage执行完毕之后,再开始执行下一个stage。而是一个stage还没有执行完全到位后,就开始执行下一个stage了,这最终导致了抓取任务失败。
      比如,理论上应该是机械臂先执行完到达预定抓取位置的stage后(也就是图中的move to pick子阶段),再执行沿直线接近物体的approach object阶段,之后再close gripper。
      但实际执行时,机械臂还未完全到达预定抓取位置,就以及开始向物体接近了,同步还执行了close gripper的动作。
      但是当我分步单个执行各子阶段任务时,是可以完整执行完每个子任务的,最终也可以成功完成pick place任务。

      所以想请问各位大佬,可能是哪里出了问题,导致执行完整任务时,会出现这样的现象。会是ros2 controller的问题吗?

      1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        在ROS2(Humble)和Gazebo(Fortress)环境下使用MoveIt Task Constructor(MTC)时遇到规划结果与实际执行结果不一致的问题,可能由多种因素导致。以下是一些可能的原因及相应的解决策略:

        1. 控制器配置问题

        问题描述:

        • 控制器配置可能未正确设置,导致在执行时未能严格遵循规划的各个阶段。

        解决策略:

        • 检查ROS2控制器的配置,确保每个阶段的控制逻辑正确无误。
        • 确保控制器的执行顺序与MTC规划的阶段顺序一致。
        • 如果使用状态机或行为树控制机械臂,检查其转换条件和逻辑是否正确。

        2. 执行时间或速度设置

        问题描述:

        • 执行时间或速度设置不当,可能导致阶段之间的切换过于迅速,未能充分完成前一阶段的动作。

        解决策略:

        • 调整控制器的执行速度或加速度参数,确保机械臂有足够的时间完成每个动作。
        • 在MTC的规划中,可以设置每个阶段的执行时间或速度限制,以确保动作的准确性。

        3. 传感器反馈与闭环控制

        问题描述:

        • 如果机械臂在执行过程中依赖于传感器反馈进行闭环控制,那么传感器数据的准确性和实时性将直接影响执行结果。

        解决策略:

        • 检查传感器(如编码器、力传感器等)的校准和连接状态,确保数据准确。
        • 优化控制算法,提高对传感器数据的处理和响应速度。

        4. 同步与通信问题

        问题描述:

        • ROS2节点之间的通信延迟或不同步可能导致执行结果偏离规划。

        解决策略:

        • 检查ROS2网络的配置和性能,确保通信的实时性和可靠性。
        • 使用ROS2的调试工具(如ros2 topic list, ros2 node info等)来监控节点状态和通信情况。

        5. 动力学与物理仿真差异

        问题描述:

        • Gazebo中的物理仿真可能与实际机械臂的动力学特性存在差异,导致执行结果不一致。

        解决策略:

        • 调整Gazebo中的物理参数(如质量、惯性、摩擦系数等),以更准确地模拟实际机械臂的行为。
        • 进行多次仿真测试,观察并分析执行结果的差异,逐步优化参数设置。

        6. 软件与库版本兼容性问题

        问题描述:

        • ROS2和Gazebo的不同版本之间可能存在兼容性问题,影响执行结果。

        解决策略:

        • 检查ROS2和Gazebo的版本兼容性,确保使用的版本相互兼容。
        • 如有必要,尝试升级或降级ROS2和Gazebo的版本。

        总结

        针对您遇到的问题,建议从控制器配置、执行时间/速度设置、传感器反馈、同步与通信、动力学仿真以及软件版本兼容性等方面进行全面检查和优化。同时,也可以考虑在ROS2社区或相关论坛中寻求更专业的帮助和解决方案。


        以上为生成回答,仅供参考~

        我是小伊,已接入ChatGpt,所有回复,仅供参考~

        1 条回复 最后回复 回复 引用 0
        • 3
          398737792
          最后由 编辑

          已解决,参考:
          https://github.com/moveit/moveit_task_constructor/issues/613

          1 条回复 最后回复 回复 引用 0
          • 第一个帖子
            最后一个帖子
          皖ICP备16016415号-7
          Powered by NodeBB | 鱼香ROS