Robotics StackExchange | Archived questions

Remote Roslaunch Output to Local Monitor

Is there a way to get the output from remote processes launched on a different machine to display on the console in which it was launched?

I am launching my remote processes like so:

<launch>
  <node machine="remote_robot" name="robot_node" type="robot_node" pkg="robot_node" output="screen" />
</launch>

I have seen the previous post here. Which basically said that the only options are rxconsole for proper ros outputs (which my wrapper is not able to use). It also spoke about remote X11 session, which is interesting however I was unable to find any more information after digging into the thread history.

Asked by kmaroney on 2012-03-21 12:39:30 UTC

Comments

Answers

If there aren't too many args to the launch, you can write a ros node that simply uses system process calls (eg, using python's subprocess module) to execute the roslaunch command as you would from the command line.

Since you can pass tags as args to nodes, the node could run the launch command remotely.

Asked by phil0stine on 2012-03-21 12:46:23 UTC

Comments

This is an interesting idea. I can see from quickly reading through the documentation that the subprocess module can run just as you would from command line as you said, however I didn't see that you have the ability to run commands on remote machines? Are there packages that have done this?

Asked by kmaroney on 2012-03-21 13:19:50 UTC

I use this method to run launch files remotely, but just realized that you're right, this won't work (easily) for getting the log data back to the local monitor, sorry bout that.

Asked by phil0stine on 2012-03-21 13:45:13 UTC

Check out https://github.com/ctu-vras/scoped_roslaunch - in this package we have enabled transmission and printing of stdout, too.

Asked by peci1 on 2021-09-09 14:42:53 UTC