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

High level design involving a network of robots and a server

asked 2014-03-19 22:33:36 -0500

Andrew.A gravatar image

I'm having some trouble trying to come up with a design for a network of robots, and a server. I'm trying to have a set up such that:

  • I have a central command center (like a server), where I can monitor and control these robots
  • I can use the server to give commands to each robot to do different things
  • Have robots send back responses to commands, back to the server

For example, say I have two robots running Ubuntu, and I want to monitor and control them through a web server. Say the server is running Tomcat, and has a public IP, so it can be assessed from anywhere. For security reasons, let's say I'll have to log in with a valid username and password to assess my robots. In this case, I would code up perhaps a .jsp file and serve that, or write some sort of webapp, to have a user interface to interact with the robots. To monitor the robots could mean like, I could select robot 1, and view what the camera mounted on robot 1 is currently capturing (say its running mjpeg_server). It could also mean that, the robot is constantly sending information back to the server about its status, such as whether it is online or offline, its current speed, its battery levels, etc, and the server is displaying the information through the user interface. For control, it could mean that I can toggle between exploration mode, and remote control. In remote control mode, I'd have buttons that I can press to move the robot.

I'm looking to build something like this, but don't really have an idea on how to start. Could I just use ROS's publisher/subscriber and service system for such communications? The issue is that my server is running on Windows, and as far as I know, ROS is only experimental on Windows, so would it be better for the server to be independent of ROS? If yes, how would I link the server with the robots? Would I create some kind of TCP connection, where the server sends some commands, and I write a ROS package for the robot to interpret these commands and carry them out?

I'm not looking for one exact answer, but more of a discussion on how to achieve such a set up, and to explore the options I have to do this. Any ideas, opinions, advice, warnings and reading resources would be appreciated!

edit retag flag offensive close merge delete


Did you find and answer for that? Perhaps the best place to start a design discussion is in ros-user mailing list, or look at multimaster SIG group list?

E1000ii gravatar image E1000ii  ( 2014-10-30 13:22:07 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2014-10-30 21:54:22 -0500

Andrew.A gravatar image

I managed to come up with a simple solution using OpenVPN. With OpenVPN, I created a private network so that I could directly access the robots through my webserver. From my webserver, I used rosbridge_suite to connect to the robot via a websocket. From there, I could publish messages to topics, subscribe to topics, and call services. I also ran mjpeg_server on the robots to be able to view them from the webserver!

edit flag offensive delete link more


Hello Andrew I would like to know more about your work on the web controlled robot with ROS .I am also working on somewhat same thing . Can you help me.

ktgben gravatar image ktgben  ( 2015-06-19 00:37:24 -0500 )edit

Question Tools

1 follower


Asked: 2014-03-19 22:33:36 -0500

Seen: 811 times

Last updated: Oct 30 '14