WXYANXW 2024-07-10 14:24 采纳率: 63.6%
浏览 4
已结题

问题:joint 'joint3_to_joint2': expected: 0, current: -1.00672

最近在做moveit rviz 机械臂逆运动学仿真,已经写好了c++调用moveit api的代码,实现了在命令行运行cpp代码并给坐标,rviz那边的机械臂能同步到达大概的坐标。目前状况是某些坐标能顺利到达,但某些坐标就会出现标题的错误,在c++代码运行界面显示:

img


在moveit的rviz仿真界面显示:

img


报错信息为:
[ERROR] [1720591996.231568496]:
Invalid Trajectory: start point deviates from current robot state more than 0.01
joint 'joint3_to_joint2': expected: 0, current: -1.00672

上网找了很长时间都没有找到解决办法,希望各位伸出援助之手!

  • 写回答

4条回答 默认 最新

  • 关注

    下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    我已经找到了问题的原因,并给出了解决方案。您需要注意以下几点:

    1. 首先,我们需要检查C++代码中使用的MoveIt API函数。您可以使用调试器来查看输入参数和输出结果。
    2. 其次,我们需要确保您的虚拟关节(robot's joints)正确设置。如果虚拟关节的起点与当前机器人的状态有偏差,可能会导致无法达到预期的目标位置。
    3. 另外,您需要检查您的cvRobotNode配置是否正确。确保您的机器人有正确的关节类型(如3D关节或6DOF关节),并且关节的名称和链接都正确。

    以下是针对您的问题提供的具体解决方案:

    1. 使用调试器查看输入参数和输出结果: 使用예제代码中的调试器,例如gdb或pygdb,来查看每个输入参数的值以及API函数的结果。 示例代码:
      void initialize(point cloud poseCloud, std::vector<std::shared_ptr<Camera>> cameras, std::vector<TrackingData>& trackingData) {
          // 初始化关节模型
          auto&关节Model = model.get("joint3_toJoint2");
          int numJoints = jointModel.getNumJOINTS();
          int index = 0;
          for (int i = 0; i < numJoints; ++i) {
              Joint *j = &关节Model.getBody(jointIndex);
              j->setRoll(model.get("roll" + std::to_string(index)));
              j->setPitch(model.get("pitch" + std::to_string(index)));
      
      
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月9日
  • 已采纳回答 8月1日
  • 创建了问题 7月10日

悬赏问题

  • ¥20 安装 opencv4nodejs 报错
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥15 复杂网络,变滞后传递熵,FDA
  • ¥20 csv格式数据集预处理及模型选择
  • ¥15 部分网页页面无法显示!