The problem of inconsistency between the robot arm status obtained in the dynamic control API and the robot arm status obtained in moveit

I am doing a simulation experiment on a robotic arm. In theory, the speed information of each joint of the robotic arm obtained through the dynamic control API should be consistent with the speed information of each joint of the robotic arm obtained through moveit, but I found that they are not. Inconsistency, I don’t know what the problem is or is this a bug? The info picture is below, if anyone can help me I would be very grateful.

Hi, can we get a bit more information about your setup?
How are you publishing the joint information? is this through a python script, which dynamic control API did you use? or did you publish it using an omnigraph joint state publish node? is this ROS1 or ROS2?

Also, what kind of robot is this? I see there are jetbot numbers being printed out, is this an arm on top of a mobile robot? or a fixed arm robot, and a separate mobile robot?

Yes, thank you very much for your reply

  1. I added it to user_examples through a python script for joint control. The api interface _dynamic_control.acquire_dynamic_control_interface() is used, and the speed information is obtained through the function dof_state_vel = self.dci.get_articulation_dof_states(self.art_arm, 2).
    I’m not publishing it using the full graph joint control state publishing node, this is ROS1
  2. This is the arm on the top of the mobile robot, which is the robot as shown in the picture below

Looking at the setup, the couple things that jump out at me is

(1) the scale of the robots. The franka and jetbot are on totally different sizes. In real life, the jetbot can fit in your hand, and the Franka is more like a desktop size robot. So maybe something went wrong when you shrank/expanded the robot. To test this, you can see if the joint information is okay individually for each of the robots at their original size.

(2) Fixing an arm on a mobile platform can be a little tricky. Try fixing the jetbot’s chassis to the world via a fixed joint (to force the whole thing to be stationary), does this change Franka’s joint output somehow?

If those two tests don’t show anything useful, feel free to attach your usd here, and we can take a look at it on our end.

Thank you very much for your reply. Here are the results of my attempts to respond to your suggestions.

  1. I tried to use the original size franka robot arm to perform the same movement, using the same method as before, but the result seemed to be wrong.The result is shown below
  2. Because my simulation experiment requires the mobile platform and the robotic arm to move together. If it is forced to become a stationary object, it seems that there is no way to solve the problem for my experiment. So sorry I didn’t try to make it a stationary object (5.0 KB)

This is a compressed file package of usd
In order to put the robotic arm on the car, I reduced the size of the robotic arm and the mass of each link of the robotic arm. Initially, I only reduced the size, but found that it could not move normally. After reducing the mass, it can move normally