Creating a ROS setup that works for both Gazebo and hardware

We are working on a project that requires grabbing images from a camera attached to an offboard computer, and then commanding a drone with mavlink based on what the images contain. Now we’re trying to figure out the best way to use ROS for this. It seems we need to use roslaunch on the offboard computer because rosrun doesn’t allow us to specify an fcu_url?


  • Connect offboard computer to laptop via USB and ethernet
  • Launch Gazebo simulation with normal make posix_sitl_default gazebo command
  • Launch node(s) on offboard computer using roslaunch and specify fcu_url

We setup ROS cameras on our model in Gazebo, but to see these camera topics (and subscribe to them) we need to do a roslaunch on the laptop. Can we run roslaunch on the laptop and offboard computer? Does this start two roscores? Can I subscribe to topics that exist on the laptop from the offboard computer using rosrun?

Just trying to wrap my head around this.

That’s supported in ROS: