Migrating from gazebo to isaac sim

I’m developing with ROS and trying to replace gazebo with Isaac sim, however, I cannot find any guide or ways to do so. I’m experimenting with clearpath’s husky demo for simulation and lidar navigation. The simulation and model can be easily launched & spawned in gazebo with ROS launch files and gazebo world files.

I’m wondering is there any way to use ROS launch files to launch omniverse Isaac sim and setup the environment and models similarly to gazebo, and ready to replace gazebo directly in the same setup?

Thanks!

Hi

As far as I know (from my experience as a user of Omniverse Isaac Sim) I could say the next in the hope that this helps in some way:

  • Isaac Sim provides a ROS Bridge as an Omniverse Extension that “enables publishing and subscribing of several rostopics and rosservices that are commonly needed for robotic simulation [1]”. The documentation about ROS is located here: ROS Bridge, which includes a description of the components, samples, Python API, etc. Also, a more completed list of classes and methods of the API could be found here: omni.isaac.ros_bridge

  • Isaac Sim is built on NVIDIA Omniverse simulation platform. In this platform, “the fundamental representation for assets is Pixar’s open-source Universal Scene Description (USD)… USD is a powerful scene representation with an API that allows complex property inheritance, instancing, layering, lazy loading and a wide variety of other key features” [2].

    The USDs could be created, edited and loaded from Omniverse Kit and form Scripting using the Kit SDK. Also, the USDs could be accessed and edited from Connect libraries.

So, there is no way to use ROS launch to launch and spawn models, etc. (not at least in the Gazebo sense). However, could be possible to run the simulator/simulation from a python script with roslaunch if you configure it as a node

[1] https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/ros_bridge.html#
[2] https://docs.omniverse.nvidia.com/plat_omniverse/plat_omniverse/usd.html

1 Like

Hi henryzhang9802,

The workflow is a bit different here.
You can import your robot model and the environment model either using the UI or through python.
Is your robot model a URDF?
what is your world model file format? Is it a launch file?

Kindly,
Liila

Hi Toni, thanks for the info! It helped me a lot. I would look into the python script method once I got everything converted to USD.

Hi Liila,

Yes, the model can be converted to URDF and the world model is defined by the launch file + the gazebo world file, which is in SDF I think. I am currently experimenting with husky’s demo, they have their models (link) and world & launch files (link) in their repo.

I have followed @toni.sm’s suggestions and tried using the URDF importer, it imported the model perfectly, but I haven’t figured out how to correct the physics or linking its sensor & control to the original launch files yet as I’m not sure how should I do this (Isaac sim crashes after my config). As for the world model, is there any way to import gazebo’s world file into the USD?

I have attached the USD file where I imported the URDF model with the camera and lidar scan I created manually following the documentation, but haven’t got the robot’s physics working yet.

husky2.usd (4.0 MB)

Many thanks!
Henry

Hi Liila,

Have you had a chance to look at the imported model?

Thanks,
Henry

Hi Henry,

Yes, I tried, but no luck. Isaac Sim hangs as soon as I try to open it. What changes did you make after you imported the URDF? Maybe we can start over. Import the URDF, and let me know what changes you want to make

Kindly,
Liila