ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A

ROSLink: Connecting ROS with the Internet of Things



I would like to share ROSLink protocol with ROS users community.

ROSLink is a new protocol to integrate Robot Operating System (ROS) enabled-robots with the IoT. The motivation behind ROSLink is the lack of ROS functionality in monitoring and controlling robots through the Internet. It is inspired from the MAVLink protocol.
We already developed some common messages and used them for monitoring Parrot Drone and Turtlebot over the Internet.

You can find some more details about ROSLink in this page

Also, you can read our paper which is to appear in the upcoming Springer book on Robot Operating System (ROS) The Complete Reference (Volume 2)



How does this compare with what you can do with ? What can you achieve with your software that you could not do with ?

Can you briefly compare both?



This is a good question, which we addressed in our paper.

RoboWebTools are based on ROSBridge and ROSJS.
ROSBRIDGE deploys a weboscket server inside the robot, and then clients can connect to it through websockets client, using different technologies, such as ROSJS in JS, and other programming languages. In this case, it is a client server application, where the server is located in the robot, and the robot is located in the user machine.

The problem with this approach we observed is that the server in the robot needs to have a public IP address to be accessed by the client through Internet, or using Port Forwarding if it is behind a NAT. The latter is not always obvious and is network dependent.

ROSLink addresses this gap, by considering a client installed in the robot, and a client installed in the user machine and they communication through a public server using the ROSLink messaging protocol. As such, it is possible to control and monitor any robots through the Internet. Also, ROSLink is a complete protocol that define messages, and these messages can be extended by developers to add their own.

This is a basic summary of the difference and more details can be found in the paper.



Little note: rosbridge needs to run on an internet accessible computer in the same network as the robot, which is reachable via internet, not necessarily the robot itself.


Yes, I understand. In ROSLink, you do not need to do so. We use a cloud server that links between the robot and the user. It is a matter of a different design approach, and I consider both solutions are complementary.
Basically, the idea of ROSLink is derived from MAVLink protocol.


In this video there are some details about ROSLink from minutes 11:40 to 15:00


There is also cloud extension to Robot Management System:


We have been using a VPN to access robots from outside of the network. We use Tinc VPN but I’ve also seen a lot of people using OpenVPN. Its very nice because you get full access to the robots through SSH, not just what has been exposed via ROSBridge.

What advantages does ROSLink have over using a VPN?


With ROSLink, no need of any VPN which typically slow down the connection, in particular in large scale systems.
With ROSLink, the cloud server that governs access between users and robots is available on a public IP address, so, fully accessible anywhere anytime without need of proxies or VPNs