I’m experiencing serious problems with articulations in Isaac Sim 2022.1.1.
I simply cannot get my models to respond to JointState messages from ROS in neither drive type.
I built an isolated test scenario consisting of two cubes linked by a revolute joint with an angular drive component, which you can find attached.
The ActionGraph is built accordingly to 9. Joint Control: Extension Python Scripting — Omniverse Robotics documentation.
I can manually set a target velocity to the drive component and the lower cube starts turning. However when sending JointState message from ROS there is no reaction at all. The PrintText node shows seemingly correct data from the Subscriber Node.
Articulation Controller has to to apply to an articulation chain, so you need to add an Articulation Root to one of your cubes to indicate that your object is an articulation. It is strange that we can’t add an articulation root to either of your cubes, did you build your scene via a python script? Try to rebuild the scene like @pme1976 mentioned, but do it in the UI, and you should be able to find the Articulation Root option under Add → Physics list.
Thank you guys for your help!
Regarding the articulation root: You couldn’t add one because one was already present in the “world” prim.
I still rebuilt the scene and added the articulation root to one of the cubes like you mentioned, however with no improvement. You can find the new scene attached.
What I find interesting is that the JointState Publisher, targeted towards the same prim, works just fine.
To rule out potential errors when building the scene I now also tried using a provided model (the forklift). Forklift_Test.usd (7.9 KB)
I tried controlling the “back_wheel_drive” joint via ROS but once again without success.
Do you have any further suggestions on what to try? Would you be able to quickly test it on your own system?
Thanks a lot!