simulating a custom robot base in Isaac

Hi All,

I am trying to simulate a custom robot which runs on 4 Mecanum wheels. The examples I found are limited to a 2-wheel differential base and a 3-wheel holonomic base.

So far, I have successfully spawned my URDF file in UE4 by changing the ‘carter_full_config.json’ and ‘carter_full_graph.json’ files.

Now, how do I make it move using the SDK?
My guess is that I’d have to make changes to the ‘carter.config.json’ and ‘navigation.config.json’ files. However, where do I define (i.e.: input the dimensions, kinematics, etc.) the 4-wheel Mecanum drive? Can I make changes to an existing base model to make things easier?

Any help or direction is appreciated!

Hi, did you find a solution. I will be importing a custom robot as well and do not know how to …

I will be importing a custom robot. But i am starting using SimUnity…

I haven’t tried much with sim yet, but I can provide some insight into how you may go about using a custom robot vs the reference designs. Maybe this will help you with the sim part as wel!

I think you should be using the kaya design as a reference. If I’m not mistaken, mecanum wheels are a holonomic drive. A good starting point is to look over the kaya hardware subgraph (default in //apps/kaya). You will likely need to create your own “Kaya Base Driver” to convert the command to motor speeds for each wheel in your given configuration. I’m not experienced with holonomic drives, so I can’t help you there. Next would be to write a driver for whatever motors you are using, however if you are using daisy chained dynamixel servos, you can use the dynamixel component built in.

If you want to use navigation, the holonomic_navigation_base.subgraph (//packages/navigation/apps/) will be your friend for running a navigation stack on top. I think all long as you wrote your components above to take the same inputs and return the same outputs as the original kaya base driver, you should be good to plug in the navigation stack. Don’t forget to change the shared model to reflect your physical model.

I’m currently doing this with a custom differential base robot for navigation and eventually sim, so I may have a few things wrong for the holonomic version. Good luck on getting your design to run!

I created a custom robot base for a NVIDIA contest. It is differential base but I think most things will apply to your project. Basically you’ll need to create a custom package for your base and compute the linear and angular speeds and acceleration.

The project is here:

1 Like

Congrats Andrei! And thanks for the detailed documentation on the project. Very helpful!