While working on importing the Fetch robot into Isaac Sim, I noticed an issue with the omni.isaac.ros_bridge.ROS1PublishJointState
node, specifically when working with a robot with a non-fixed base.
When importing the URDF with the base is fixed, the joint states are consistent with what is expected based on the URDF and the readings of the joint positions in Isaac Sim. However, when the base is not fixed, which is necessary as this is a mobile manipulation platform, the behavior is incorrect. The joint readings in the joint prims within the Isaac Sim UI are the same as before, which are correct, but the published joint states for some of these joints (but not all) are inverted from what they should be. This means that the readings for some of the joints are being inverted when publishing to the joint states ROS topic.
I have been able to replicate this on the Panda arm as well in which the first four joints are inverted only when the base is not fixed. I replicated this by importing the Panda URDF and adding a simple ActionGraph that published the joint states using the omni.isaac.ros_bridge.ROS1PublishJointState
node. The results can be seen below for the first joint of the Panda arm:
Non-fixed base:
panda_joint1 UI (1st joint)
Echoing ROS joint state topic (notice that panda_joint1 is negative unlike above)
header:
seq: 4765
stamp:
secs: 1538
nsecs: 169965619
frame_id: ''
name: [panda_joint4, panda_joint5, panda_joint3, panda_joint6, panda_joint2, panda_joint7,
panda_joint1]
position: [0.5236, 0.5235, -0.5236, 0.0, -0.5236, 0.0, -0.5236]
velocity: [0.0008, 0.0019, -0.0003, 0.0, -0.0004, 0.0, 0.0005]
effort: [-0.4321, 0.0787, -0.1563, 0.2315, 0.4689, -0.0735, -0.0421]
Fixed base:
Echoing ROS joint state topic
header:
seq: 55
stamp:
secs: 2382
nsecs: 949946737
frame_id: ''
name: [panda_joint1, panda_joint2, panda_joint3, panda_joint4, panda_joint5, panda_joint6,
panda_joint7]
position: [0.5236, 0.0, 0.0, -0.0698, 0.0, 0.0, 0.0]
velocity: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
effort: [0.0, -4.7777, 0.0, -1.8668, 0.0, 1.137, 0.0]