Running the new Isaac Sim ROS/ROS2 Bridge (Isaac Sim 2023.1.0 Release onwards)

Dear Users,

The workflow for running the ROS/ROS2 Bridge on Isaac Sim has changed in our latest release of Isaac Sim 2023.1.0! Isaac Sim is now able to use your system level or custom ROS/ROS2 installation!

ROS/ROS2 Installed on the System
If you have (or planning to have) a system level ROS/ROS2 installation, please follow the installation guide to ensure you have all of the required packages installed first. If you are using the ROS2 bridge, make sure the FASTRTPS_DEFAULT_PROFILES_FILE environment variable is also set, as shown in the instructions under “Enabling the ROS / ROS 2 Bridge Extension”.

Make sure to source your ROS environment in your terminal or put it in your bashrc file before running Isaac Sim.

ROS/ROS2 Not Installed on the System
If you don’t have a system level install, Isaac Sim now comes with its own set of minimal ROS2 libraries to fallback on. To uses these libraries you would need to run the following commands in a terminal before running Isaac Sim. Replace <YOUR_PACKAGE_PATH> with the Package Path shown in the app selector (above “Open in File Browser” and “Open In Terminal” buttons).

export RMW_IMPLEMENTATION=rmw_fastrtps_cpp
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<YOUR_PACKAGE_PATH>/exts/omni.isaac.ros2_bridge/humble/lib

Thanks,
Isaac Sim Team

4 Likes

Hi @Ayush_G and rest of Isaac Sim ROS2 team. Great job on getting this released, it is a big step in the right direction.

Performance cut with FASTRTPS
We tested the ROS 2 Humble support on a 22.04 system running on a cloud hosted VM through Azure. We have early on seen a drastic performance drop on a vanilla installation of Isaac Sim with FASTRTPS extra args: export FASTRTPS_DEFAULT_PROFILES_FILE=~/.ros/fastdds.xml
inputted. the performance drop is the simulation running with half the FPS going compared to if its not there. In our case the drop is from 50 FPS to 25 FPS on an empty scene.

Out of the box experience
We are around 100 FPS or more on a Windows based system with ROS 2 installed with the same system specifications but are unable to get past 50 FPS and generally performance seems worse in 22.04 than Windows. Not sure this is ROS 2 related though. We cannot use the Windows system due to the unstable nature of ROS 2 and RTX in that environment, amongst other reliability and stability issues.

System
GPU: T4 16GB
RAM: 110 GB
OS: 22.04.3 LTS
Storage: 1000GB SSD (16% used)

Hope this helps the team improve the product as it is quickly moving towards something of a robotics standard - which is awesome!

1 Like

Hi Ayush_G,
I am new to all of this relating to Omniverse. I hope that someone here can give me some guidance. IF you are not the one, could you point me in the right direction?
Quick blurb on my background.
I am newly retired. Robotics as a hobby for the last 5 years.
From arduino with servos, to Raspberry Pi4 and OpenCR with Dynamixel actuators. Arduino IDE, then on to ROS Melodic installation on the Pi4.
I have built a ROBOTIS OP3 like biped using their open source code.
I have a desktop with Windows 10 and ROS on Windows Melodic installation which can communicate with the Pi4.
Using Fusion 360, I have created a full model of the biped and exported it out.
Over the last 2 weeks, I installed Omniverse Launcher and its prerequisites, etc., and that is working.
I installed Isaac Sim and that launches successfully.
I have added my biped model into Isaac Sim scene and using the gui, even moved some of its joints.
Now that I have gotten this far, my problem is getting my desktop ROS on Windows, Melodic installation to bridge to Isaac Sim.
Well, that doesn’t seem like that is an option.
So my real question is: Are there any possible options/configurations available for me to get Isaac Sim and my ROS Melodic Windows installation to connect so that any Reinforcement Learning (in the Sim or with Gym) can be directly passed onto my actual biped?
Which leads to another question: Does the RL in the Sim and Gym communicate back to the biped’s source code or would it be stand alone? I’m not seeing the full picture I guess. I feel like I am right at the doorstep and can’t get in.
Thanks for any help or direction,
Jay

Hi @user159739 ,

Isaac Sim does not support running ROS1 natively on Windows.

One option could be to run the ROS2 bridge and setup the robot with ROS2 OmniGraph nodes. And then you could run the ros1_bridge package on WSL on your Windows computer (this would bridge any ROS2 and ROS1 topics and let them communicate with each other). Alternatively you could run the ros1_bridge package on a separate Linux machine (or on the Pi4 directly which might be able handle bridging a small number of topics) provided it is connected to the same network.

For RL if you are manipulating an asset that has action graphs with ROS2 OmniGraph nodes setup, you wouldn’t need to use standalone workflow.

Hope this helps. Please let me know if you need any clarification.

1 Like

Hello, I see that your reply mentioned Sim bridging ROS in WSL. I have some related questions on the following websites, I hope you can reply, thank you very much for your reply.
https://forums.developer.nvidia.com/t/how-to-connect-sim-running-in-windows-11-to-ros2-in-wls2/291160

Hi Ayush_G,
Thank you for the information and direction.
So, the first thing I did was installed ROS2 Humble on my windows desktop and that enabled the ROS2 bridge with Isaac Sim. That worked. I also went through the turtlebot3 tutorials after that, including creating OmniGraphs.

I tried to find instructions to downloading/installing Isaac Gym on windows, but I am confused. It seems like all the instructions might be for Linux. I also tried to install Anaconda on my desktop for the environments, but that wouldn’t even start up.
After looking further, I am trying to understand whether Isaac Gym can be installed with my ROS2 installation or must I use the WSL and setup ROS1 there.
Could you clarify how I should proceed? Is there any youtube videos on actual setting up ISaac Gym on Windows?
Thanks again for your assistance,
Jay

Hi Ayush_G,
I just want to add, I just installed ROS Noetic with WSL on my Windows desktop. So, when I get the chance, I will try to run the ros1_bridge package there to try to communicate with the ROS2 Humble installation.
Thanks again,
Jay

Hello, I started the ROS2 bridge example in isaac sim and installed ROS2 foxy on WLS2 Ubuntu 20.04. However, I am unable to listen to the topics from isaac sim in WLS2. I have already turned off the firewall. Do you have any relevant operation suggestions?

does anyone know if the ros/ros2 bridge code is open source?

It seems that it is not open-source. You can find the relevant code here, but they are all lib packages:
%Path\isaac_sim-2023.1.1\exts\omni.isaac.ros2_bridge

Interesting 🤔… to someone from NVIDIA, why not release the source code for ros2_bridge? (I ask out of genuine curiosity)