HolonomicController node in action graph for 4 omni-directional wheel robot

I am trying to setup a 4 omni-wheeld robot urdf in Isaac sim. my robot urdf prim looks like the below

I followed the tutorial from Drive TurtleBot via ROS2 messages and tried to create the action graph for the 4 omni-wheeled robot.

I have created the action graph for controlling the 4 omni-wheeled robot using ROS 2 teleop topics.

Can you please help me fill out the correct values for parameters for the HolonomicController node and the HolonomicRobotUsdSetup node?

Thank you

Hello Nil!

Welcome to the forums :D does your robot have an articulation root? is it the base_link?

I’m not entirely sure what the problem is. Is it throwing a specific error? How do you know your values are “incorrect”? if you mouse over the yellow node it will show you the specific warning I think.

the joint names are the names of the joints that you are going to be driving. if you select a prim, the name should be the topmost field (next to the add button). the robot_prim should be the articulation root, which then traverses the joints to setup the articulation to be controlled.

sorry I can’t be more helpful!

Hi Gus,
Thank you for your reply.

Actually, my “USD Setup Holonomic Robot” node is not generating the required outputs. Because of this the “Holonomic Controller” is not getting the inputs required for it.

Ahh! Sorry, I’m blind :) I see, the gains and speed limits are missing!

Those are parameters that are tuned on a per robot basis. Basically, it’s up to you / what your goals are.

Here’s the TlDr;

  • Angular and linear gain: Floats on [0,+inf] that multiply your angular and linear inputs respectively. This depends on the units of your inputs. If you don’t know, start with 1.0 (the default)
  • Max angular and linear speed: Floats on [0,+inf] that limits the output of the controller such that the linear and angular speed of the robot will not exceed these values. If you don’t know, set these to be large. 1.0E20 is the default.
  • Max wheel speed: Float on [0,+inf] that limits the maximum angular speed of the wheels. This is directly related to the max angular and linear speeds (unit wise). If you don’t know, set this to be large as well. 1.0E20 is the default

hope this is helpful!

Hi Gus @mgussert ,
I set the initial values as explained by you. But it’s still giving me some errors.

I am attaching my projects USD file as a zip with this. I used the “Collect As” option to collect every asset for the project.

Also I used the neo_simulation2 github repository and used their mpo_700 robot urdf as my case of holonomic wheel robot

Collected_neo_mecanum_navigation.zip (2.4 MB)

Thank you

Hi @mgussert ,
Any help would be appreciated. Thank you

when I load your USD and hit play, nothing happens, and I don’t see specific errors. what version of isaac-sim are you using? can you please tell me the specific errors? which values are still missing?

Hi @mgussert ,

I am using Isaac Sim version 2022.2.1

I was able to figure out the holonomic controller part and was able to complete the action graph.

However, I am getting a new error. I am trying to setup my 4 omni wheel robot urdf in Isaac Sim. I have also created the action graph using the “USD Setup Holonomic Robot” and “Holonomic controller” which I already tested for Kaya robot and it works.
But the “USD Setup Holonomic Robot” node gives me an error as
“Omnigraph error: local variable “joint” referenced before assignment”

Here is my omni robot package containing urdf file and meshes
omni_robot_description.zip (932.7 KB)