Error launch ROS2 Bridge

Hi,

in order to create a DigitalTwin in IsaacSIM, I’m trying to use the ROS2 Bridge from IsaacSIM and wrote a message broker to translate the trajectory messages so that the real robot can move to the intended positions

The setup is as follows:
Ubuntu 20.04
IsaacSIM 2022.1.1
ROS2 Foxy

I’m sourcing ROS2 Foxy via

source /opt/ros/foxy/setup.zsh

I’m running the script in another terminal window via

cd ~/.local/share/ov/pkg/isaac_sim-2022.1.1/
unset LD_LIBRARY_PATH
declare -x LD_LIBRARY_PATH="/exts/omni.isaac.ros2_bridge/bin/"
source ros2_workspace/install/local_setup.zsh
./python.sh ~/workspace/src/ISY-Project_UR5e/ur_isaacsim/ur_isaacsim.py"

Whenever I try to launch either the IsaacSIM script or my custom ROS2 MessageBroker Node after the respective other already runs, I get the following error:

2022-10-11 15:58:04.780 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7412: open_and_lock_file failed -> Function open_port_internal
2022-10-11 15:58:04.780 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7413: open_and_lock_file failed -> Function open_port_internal

The goal is to run ROS2 in the IsaacSIM workspace and to subscribe to topics which contain the positions the robot shall move to.

This behavior seems kind of odd to me because two weeks ago everything worked perfectly fine. I was able to publish the trajectories from SIM and listen to them with my MessageBroker and publish the adjusted trajectories to the real robot.
Have there been some changes recently?
Or am I doing something completely wrong?

1 Like

Meanwhile I could figure out what might be the problem, but I’m still not able to fix it. Here is what I found out.

The problem is that two different ROS2 installations are running. The one from IsaacSIM (source ros2_workspace/install/local_setup.zsh) and the one on my local machine (source /opt/ros/foxy/setup.zsh).
If I start IsaacSIM and start publishing the joint trajectories via the ROS2 Bridge, and go to another PC in the same network and start listening to the published topic, I can read the messages. If I do the same on my PC in another terminal the error which I showed above gets displayed and I am not able to listen to these topics.

So basically my question is:
How is it possible to publish ROS2 topics in IsaacSIM and subscribe to these on the same PC with a node which runs with the local installation of ROS2.

I hope I was able to specify the problem a little bit more.

I came cross the same error. After working around and found a solution finally. The reason is not the ros2_workspace, which is just a workspace containing some isaac example nodes, but rather the the extension omni.isaac.ros2_bridge in folder exts. It comes with itself the fastdds (fastrtps) library (libfastrtps.so.x.x.x). Perhaps due to this open issue, it will cause the above SHM Error if the fastdds library in ros2_bridge and the one in ros2 installation are different version.

So quick fix is to check the version of fastdds library used in ros2_bridge( libfastrtps.so.2.1.1 in my case). Then download the same version fastdds from their github repo, build from source to replace the current FastDDS package in your ros2 installation folder.

Just as said it’s just a quick fix to make the ros2_bridge work, for a long-term solution we may need further commits from eProsima team. Or alternatively, a way to change rmw implementation for ros2_bridge.

1 Like

Thank you very much for your detailed response!
I couldn’t make it run with your proposed solution, but it really helped me to understand the issue better.
The solution which worked for me was this ROS2 Foxy communication issue.

In my case the line export RMW_IMPLEMENTATION=rmw_fastrtps_cpp in the .bashrc was not necessary but except from that everything works as proposed in the issue.

1 Like

That’s great to know you’ve worked out in another way, which brings me also some new inspiration as well! That’s exactly what I mean “Or alternatively…” in my previous post. Thank you very much.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.