ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Remote monitor through Internet

asked 2016-09-22 09:40:47 -0500

Shay gravatar image

updated 2016-09-23 05:06:26 -0500

Imagine that your robot is running in the airport, while you are sitting at home and open RViz to monitor your robot. The robot can access the Internet through 4G, just like a cellphone.

I've got an idea that the robot publishes all the ROS messages to the Server, and a PC can connect to the Server and get all the ROS messages.

I don't know if someone has made any efforts to this scenario. And is there any ROS packages which can help me do this.

Any advice would be appreciated. Thx.

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted

answered 2016-09-22 10:12:44 -0500

Mark Rose gravatar image

That's all built-in to the ROS core. One way to accomplish what you want is to run roscore on some server with a DNS name. Configure both the robot and your laptop to connect to the same core. Now from your laptop you can use rostopic to display messages from the robot. However, there are two issues with this scheme:

  • By default, ROS does not authenticate clients, so an attacker could send messages to your robot to cause havoc. One possible mitigation is a package like rosauth.
  • There may be large latency in communication. It's probably better to run roscore on the robot, but then you have the problem of how to connect from your laptop, since the robot won't have a fixed IP address. This is how I have configured my robot, but I'm able to connect to it using mDNS on the same WiFi network.
edit flag offensive delete link more


Thanks, I agree that it's better to run roscore on the robot. But a WiFi network has limited coverage. WiFi Mesh may be a choice, but can't connect from a remote place.

Shay gravatar image Shay  ( 2016-09-23 04:53:17 -0500 )edit

You might consider something like multimaster_fkie to broadcast messages between masters. That is, the robot could run roscore on itself but also use that package to forward selected topics to a remote core over the net, which you could read from.

Mark Rose gravatar image Mark Rose  ( 2016-09-23 10:59:36 -0500 )edit

answered 2016-09-22 11:47:51 -0500

SL Remy gravatar image

You might want to take a look a the venerable rosbridge. It provides a "a JSON API to ROS functionality for non-ROS programs".

Roughly translated, this means that you can monitor your robot through the internet.. That said.. I hope that latency isn't a concern. Security and privacy would also be issues at various points in the application as well, but it can be done.

Rosbridge Quick App: iPhone Control

Henry Evans and Chad Jenkins: Meet the robots for humanity

edit flag offensive delete link more


Thanks, I'll check it.

Shay gravatar image Shay  ( 2016-09-23 04:47:22 -0500 )edit

answered 2016-09-23 13:37:42 -0500

tfoote gravatar image

The simplest way to connect to robots on a public insecured network is to setup a VPN. The robot connects to the server over VPN and then when you want to communicate with the robot you also connect to the VPN.

This requires a little bit more networking skills but then makes developing on the robot independent of the location/network.

edit flag offensive delete link more


Thanks @tfoote, I will try it.

Shay gravatar image Shay  ( 2016-09-23 21:54:15 -0500 )edit

Got the same issue in 2020, we were wondering if you solve the issue. Does VPN work ?

lukelu gravatar image lukelu  ( 2020-09-17 23:08:29 -0500 )edit

Question Tools

1 follower


Asked: 2016-09-22 09:40:47 -0500

Seen: 1,850 times

Last updated: Sep 23 '16