Isaac SDK: Using ros_bridge to talk to ROS on a different machine

I am trying to get the Isaac SDK navigation application to work with a robot running ROS on a different PC. Ideally, this other PC would be the ROS Master because it’s running the drivers. I tried setting:

export ROS_IP=10.96.4.17

export ROS_MASTER_URI=http://10.96.4.17:11311

before doing a bazel run on the application, but I am still getting the error:

2022-06-22 16:06:23.466 ERROR packages/ros_bridge/components/RosNode.cpp@52: ROS is not running. Please start roscore.

Is there some way of running ros_bridge but having roscore running on the other machine?

Bazel does not appear to be passing your environment variable through to the executable to maintain a hermetic, reproducible build and run environment unfortunately. We need to configure Bazel to pass this information along when it launches the ROS bridge Isaac SDK application. One way to do this which is somewhat inelegant but maybe effective is by using the --run_under flag as so: bazel run --run_under=export ROS_MASTER_URI=... &&.

1 Like