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).
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.
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
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.
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?
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
Hi, I am trying to set up the extra-args in the Isaac but looks like they are missing even after following the ROS2 installation and bridge. I dont see the required graph nodes in the menu to try out some tutorial in the clock and cameras.
I noticed in the above remarks that the latest document has a different node configuration than previous versions. It would be unkind to those using earlier versions, so it would be desirable to add notes to the sections that differ from earlier versions.
Thank you for your input. While it is highly recommended to use the most up to date simulation version, we have a section for older documentation for users using a previous version if they need. These can be found here: Previous Documentation — Omniverse IsaacSim latest documentation
@engineer.ambarishgkIsaac Read System Time is newly featured OmniGraph node as of Isaac Sim 4.0.0.
It has been a while since Isaac Sim 4.1.0 came out, but why is 4.0.0 still not even the default?
If the default version is not changed, questions like this one will flood the forum.
Hi @hijimasa - This is happening due to semantic versioning. With our upcoming release, we should’ve this issue fixed. Apologies for any inconvenience.