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

    rviz仿真机械臂,可以plan,不能execute

    已定时 已固定 已锁定 已移动
    仿真
    机械臂仿真 rviz2报错 gazebo不能与rviz联动
    3
    4
    520
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 1
      1264433432
      最后由 编辑

      ubuntu20.04 ros2 noetic 用鼠标拖动机械臂到目标位置,能够plan 不能execute。报错如下:start point deviates from current robot state more than 0.01
      894c0836-3629-4686-ae3a-773eca3ca902-image.png

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

        在使用ROS(特别是ROS 2与ROS Noetic的混合使用,尽管通常不推荐这样做,因为ROS 2和ROS 1(Noetic是ROS 1的一部分)是独立且不同的系统)进行机械臂仿真时,遇到“start point deviates from current robot state more than 0.01”的错误通常意味着规划器无法从当前机械臂的状态准确地开始规划路径。这个错误通常与机械臂的初始状态(在仿真中)和规划器期望的起始状态之间的差异有关。

        以下是一些可能的解决步骤和检查点:

        1. 确认机械臂状态同步:

          • 确保RViz中显示的机械臂状态与仿真环境(如Gazebo)中的实际状态完全一致。这包括位置、姿态等。
          • 如果使用Gazebo,请检查是否有任何可能影响机械臂状态的物理交互或动态效果。
        2. 检查TF变换:

          • 确保所有相关的TF(Transform Frames)都是正确配置和发布的。使用ros2 topic echo /tf或rostopic echo /tf(取决于你使用的是ROS 2还是ROS 1)来查看TF变换信息。
          • 确保从世界坐标系到机械臂各部分的变换是连续的,并且没有丢失的变换。
        3. 规划器配置:

          • 检查规划器的配置,特别是关于起始状态的容差设置。有些规划器允许你设置起始点与当前状态之间的最大偏差容差。
          • 如果可能,尝试调整这个容差设置看是否能解决问题。
        4. ROS 1与ROS 2的集成:

          • 既然你提到了ROS 2和Noetic(ROS 1),请确保你正确设置了它们之间的通信。通常,这需要使用像ros1_bridge这样的工具来桥接两个系统。
          • 检查桥接是否正确配置,并且所有相关的服务和话题都能正确传递。
        5. 重新加载或重置机械臂状态:

          • 在RViz或Gazebo中尝试重新加载或重置机械臂的初始状态。
          • 有时,简单的重置可以消除不一致的状态。
        6. 查看日志文件:

          • 检查ROS的日志文件,看是否有更详细的错误信息或警告,这可能有助于诊断问题。
        7. 使用命令行工具进行调试:

          • 使用命令行工具(如ros2 service call或rosservice call)直接调用规划服务,并观察输出和错误消息。
        8. 确保所有依赖项都是最新的:

          • 确保ROS 2、ROS 1(Noetic)以及所有相关的包和依赖项都是最新的,因为旧版本可能包含已知的错误或问题。

        如果以上步骤都不能解决问题,你可能需要更深入地查看你的具体设置或寻求来自ROS社区的帮助。在ROS社区论坛、问答网站或GitHub上提问时,提供尽可能多的信息(如ROS版本、使用的包、配置文件等)将有助于他人更快地理解你的问题。


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

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

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

          @1264433432 这个报错应该是指,你的初始位置中,"elbow_joint"的实际关节角度(即1.14838)和move it 认为的初始关节角度(即0.934183)相差超过门限值“0.01”。
          可以试着去查下为什么move it的认为的初始关节角度和实际关节角度不一致。
          或者把门限值调大一些。

          1 1 条回复 最后回复 回复 引用 1
          • 1
            1264433432 @398737792
            最后由 编辑

            @398737792 感谢,是因为连续运动导致的末位置有误差,手动一下current就好

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