Roslink Paper Springer
Roslink Paper Springer
net/publication/317318127
CITATIONS READS
60 6,063
3 authors:
Basit Qureshi
Prince Sultan University
95 PUBLICATIONS 1,520 CITATIONS
SEE PROFILE
All content following this page was uploaded by Anis Koubaa on 22 January 2018.
1 Introduction
Cloud Robotics [1] [2] [3] is a recent and emerging trend in robotics that aims
at levering the use of Internet-of-Things (IoT) and cloud computing technolo-
gies to promote robotics applications from two perspectives: (i.) Virtualization:
providing seamless access to robots through Web and Web services technologies,
(ii.) Remote Brain: offloading intensive computations from robots to the cloud
resources to overcome the computation, storage and energy limitations of robots.
Nowadays, Robot Operating System (ROS) [4] represents a defacto standard
for the development of robotics applications. ROS as a middleware, provides
several levels of software abstraction to hardware and robotics resources (i.e.
2 Anis Koubâa, Maram Alajlan, Basit Qureshi
sensor and actuators) in addition to the reuse of open source project libraries.
It has been designed to overcome difficulties when developing large-scale ser-
vice robots reducing the complexity of robotics software construction. Although
widely used in developing applications for service robots, ROS lacks the native
support for control and monitoring of robots through the Internet. It is possible
to write ROS nodes (i.e. programs) in a remote workstation on the same local
area network (LAN), where both the robot machine and the workstation use the
ROS Master Uniform Resource Identifier (URI)., however controlling the ROS
nodes from a remote location is challenging. To address this limitation many
research works have been proposed focusing on client-server based architecture
[5][6][7][8][9][10].
A milestone work that addressed this issues is the ROSBridge protocol [11].
It is based on Websockets server installed on the robot side that allows to send
the internal status of the robot based on ROS topics and services and receives
commands to Websockets clients to process them. This approach enabled the
effective integration of ROS with the Internet; however, the fact that the Web-
sockets server is running on the robot machine requires the robot to have a public
IP address to be accessible by Websockets clients, which is not possible for every
robot, or being on the same local area networks. Network address translation
(NAT) could also be used when the robot is behind a NAT domain, but still
this option may be cumbersome in deployment. In [12], the author proposed a
ROS as a Web service which allow to define a Web service server in the robot
to access through the Internet. However, this solution share the same limitation
as ROSBridge as the server is located at the robot side.
This paper fills the gap and proposes ROSLink, a communication protocol that
overcomes the aforementioned limitations by (i.) implementing specifications of
client in the robot side, (ii.) manifestation of a proxy server located at a public
IP server machine, such a cloud server. The idea is inspired by the MAVLink
protocol [13], where the robot sends its data in serialized messages through a
network client to a ground station that acts as a server which in turn, receives
these messages, processes them and sends control commands to the robot. As
such, it is no longer needed for a robot to have a public IP address, whereas it
will still be accessible behind the proxy server.
The contribution of this paper are two folded. First, we propose ROSLink a
new communication protocol that defines a 3-tier architecture. The ROSLink
Bridge client executes in the robot side; the ROSLink Proxy acts as a server
in the ground station, and a client application at the user side that interacts
with the robot through the ROSLink protocol. Second, we validate the proposed
ROSLink protocol through an experimental study on the ground Turtlebot robot
as well as the aerial AR.Parrot drone. We demonstrate the effectiveness and
feasibility of ROSLink.
The remainder of this paper is organized as follows. Section II presents mo-
tivating examples and objectives behind the design of ROSLink. Section III
presents the ROSLink communication protocol. Section IV presents the exper-
ROSLink: Bridging ROS with the Internet-of-Things for Cloud Robotics 3
and robots through the cloud, (3) provide effective management of robots, users
and underlying services.
2.2 Overview
ROS Master
ROS Master
ROS Master
Possible Solution
(a) Standard Approach:Typical connection between ROS
robots and ROS users. A user is connected to the ROS Mas-
ter of the robot to control and monitor its status, typically, in a
local area network.
ROS Master
Approach
(b) Centralized Approach: One central ROS Master to which
all robots and users connected. This solution is not scalable, does
not provide effective management of robots and users.
ROSLink Bridge
ROSLink
Message ROSLink
Message
ROS Master
ROSLink
Message
ROSLink ROSLink
Message
Cloud Proxy ROSLink Bridge
ROS Master
ROSLink
Message ROSLink
Message
ROSLink Bridge
ROS Master
ROSLink
Cloud
Robot HW
– The ROSLink Bridge: this is the main component of the system. It is the
interface between ROS and the ROSLink protocol. This bridge has two main
functionalities: (1) it reads data from messages of ROS topics and services,
serializes the data in JSON format according to ROSLink protocol specifi-
cation, and sends to a ground station, a proxy server or a client application,
(2) receives JSON serialized data through a network interface from a ground
station or a client application, deserializes it from the JSON string, parse
the command, and executes it through ROS.
– The ROSLink Proxy and Cloud: it acts as a proxy server between the
ROSLink Bridge (embedded in the robot) and the user client application.
Its role is to link a user client application to a ROS-enabled robot through
its ROSLink Bridge. The ROSLink proxy is mainly a forwarder of ROSLink
messages between the robot and user. It allows to keep the user updated with
the robot status, and also forward control commands from the user to the
robot. In addition ROSProxy interact with ROSLink Cloud component, to
maintain and manages the list of robots and users, create a mapping between
them, and perform all management functionality, including security, quality-
of-service monitoring, etc.
– The ROSLink Client Application: it basically represents a control and
monitoring application of the robot. This application is intended to monitor
the status of the robot that it receives through ROSLink messages via the
ROSLink Proxy from the robot. In addition, it sends commands through
ROSLink messages to control the robot activities.
opted for the UDP connection because it is better and lighter weight choice for
real-time and loss-tolerant streaming applications as compared to TCP, as it is
the case with ROSLink data exchange model. In fact, the robot will be streaming
its internal status (e.g. position, odomtery, velocities, etc.) in real-time to the
proxy server, which will deliver it to the ROSLink client application. On the
other hand, the Websockets interface also provide an idea protocol for more
reliable transport of data streams as compared to UDP, while meeting real-time
requirements. In fact, Websockets is a connection-based protocol that opens the
connections between the two communicating ends before data exchanges, and
ensure connection to remain open all along the message exchange sessions. The
connection is closed when any of the two ends terminate the sessions, which
make it more reliable. It is also possible to think of using a TCP connection for
better reliability of transfer, but in our context, the lost of data occasionally is
not that critical. It might be critical in case of closed-control loop applications,
which is out of our scope at this stage.
Payload
ROSLink Message Header : The total header size is 128 bits. The roslink version
is encoded as a short int on 8 bits and specifies the version of ROSLink protocol.
This is because in the future, new ROSLink versions would be released and it
is important to specify which version a message belongs to for correct parsing.
The ros version specifies the ROS version (e.g. Indigo). The system id is an
int encoded into 16 bits and specifies the ID of the robot. It helps in differen-
tiating robots from each other at the server side. It is possible to encode the
system id in 8 bits to reduce the header size, but the problem this restricts the
scalability of the system to only 256 robots ID. The message id specifies the
type of message received. It helps in correctly parsing the incoming message and
extract underlying information. The sequence number denotes the sequence of
the packet, identifies a single packet, and avoid processing duplicate packets.
Finally, the key field is encoded on 24 bits and is used to identify a robot, and
to map it to a user. A user that would like to have access to a robot, must use
the same key that the robot is using in its Heartbeat message.
ROSLink Message Payload : The payload carries out data relevant for
each ROSLink message type. ROSLink defines several state message and com-
mand types. In what follows, we give an overview of the most common state and
command messages. For a complete set of messages, the reader may refer to [16].
The most basic ROSLink message is the Heartbeat message, which is sent
periodically from the robot to the ROSLink proxy server, and vice-versa. Every
ROSLink Bridge should implement the periodic transmission of the Heartbeat
message. The objective of the Heartbeat message is for the proxy server to
ensure that the robot is active and connected, upon reception of that message.
In the same way, a robot that receives a Heartbeat message from the ROSLink
10 Anis Koubâa, Maram Alajlan, Basit Qureshi
Proxy server ensures that the server is alive. This message increases the reliability
of the system when it uses a UDP connectionless protocol, such that both ends
make sure of the activity of the other end. Failsafe operations can be designed
when the robot loses reception of Heartbeat messages from the user such as
stopping motion or returning to start location until connectivity is resumed.
The Heartbeat message structure is defined in JSON representation in List-
ing 1.1. In the ROSlink protocol, the message id of the Heatbeat message is set
to zero.
The Robot Status message contains the general system state, like which
onboard controllers and sensors are present and enabled in addition to informa-
tion related to the battery state. Listing 1.2 presents the Robot Status message
structure, which has a message id equal to 1.
The Global motion message represents the position of the robot and its
linear and angular velocities. This information is sent to the ROSLink client at
high frequency to keep track of robot motion state in real-time. An instance of
the Global motion message structure is expressed in Listing 1.3:
ROSLink: Bridging ROS with the Internet-of-Things for Cloud Robotics 11
Listing 1.4 presents the Range Finder Data message, which carries out
information and data about laser scanners attached to the robot. The Range
Finder Data sensor information enables to develop control application on the
client through the cloud, such as obstacle avoidance reactive navigation, SLAM,
etc.
The most basic command message is the Twist command message, which con-
trols the linear and angular velocities of the robot, and ins illustrated in Listing
1.5. This ROSLink Twist message maps directly with the Twist message defined
in ROS. Once the ROSLink Twist command reaches the ROSLink Bridge, it is
first deserialized from the JSON wrapper, then extract velocity commands and
publishes them as a ROS Twist message to make the robot move.
To stop the robot, it simply requires to send a Twist command message with
all velocities set to zeros. In the same way, the Go to Waypoint command
message defines a command to send the robot to a specific goal location. The
parameters x, y and z represent the 3D coordinates of the goal location. The
frame type field represents the world frame if it is set to true, and the robot
frame is it is set to false.
Several other commands and state messages were also defined like the takeof-
f/land command messages in the context of drones, and the GPS state message
that provides information of the GPS sensor, etc.
ROSLink: Bridging ROS with the Internet-of-Things for Cloud Robotics 13
4 Experimental validation
the cloud server is located in the same localhost as ROS (ROSLinkLH), (iii)
two scenarios with ROSLink (ROSLinkCL1 and ROSLinkCL2) where the cloud
server is located on the DreamCompute cloud instance machine, while being ac-
cessed from two different networks. Table I presents the average values, standard
deviations and coefficient of variations for the jitter.
The ROSLinkLH scenario allows to investigate the impact of cloud processing
without networking delays as ROS and ROSLink are in the same machine. On the
other hand, ROSLinkCL1 and ROSLinkCL2 capture the impacts of both cloud
processing and networking over the Internet. As anticipated, in the presence of
the jitter, ROS is much stable compared with ROSLink scenarios. In fact, the
average jitters with ROSLink scenarios are around 1000 times larger compared
to ROS, as can be observed in Table I. This provides an explanation for the
discrepancies between the two spiral trajectories. However, the jitters remain
in order of tens of microseconds, which is acceptable and provides no threat of
compromising the real-time control of the robot through the cloud. Furthermore,
16 Anis Koubâa, Maram Alajlan, Basit Qureshi
Jitter (Seconds)
0.03
0.02
0.01
-0.01
-0.02
-0.03
we observe that the network has an additional impact to the cloud processing on
the jitter, when comparing the jitter of ROSLink cloud server when deployed on
Localhost, against ROSLink cloud server which is deployed over the Internet. The
unpredictable network delays on the communication channel contribute naturally
to a larger jitter. Results shown in Table 1 confirm this observation, where the
standard deviation of coefficient of variation reach upwards of up to 5 to 6 six
times increase in case of the Internet deployment of the ROSLink cloud.
It must be noted that although these jitters exist, they do not compromise
the quality of control and similarity of trajectories. To verify the similarity and
correlation between the generated trajectories, we applied chi-square test sta-
tistical method for assessing the goodness of fit between the time series of the
ROSLink: Bridging ROS with the Internet-of-Things for Cloud Robotics 17
trajectories at a significance level of 5%. It has been found that all trajectories
are correlated based on the chi-square goodness of fit.
The results presented here illustrate the effectiveness of robot control through
the cloud with reasonable real-time constraints. The quality of control could be
improved using a feedback-control, which we will investigate further in future
work. In addition, ROSLink could also be effectively used for request-response
communication pattern between the client and the robot by for example using it
to send goal points to be executed by the ROS navigation services of the robot.
5 Related Work
Over the past few years the robotics community has made quite a few forays
into using robots over the Internet Earlier contributions in remote access and
control of the robots over the Internet were made by on-line robotics labs. The
remote robotics labs allows users to address research and engineering problems
in physical laboratories which are made available over the Internet Examples of
such labs include the UWA Telerobot [19], UJI on-line robot [20], Lego robots
lab [5], PR2 Remote Lab [6] among many others. Previous endeavors focused
on executing simple experiments remotely supporting on-line learning but did
not address shared control of remote robots through middle-ware The PR2 Lab
[6] introduced a middle-ware that allows developing web based robots appli-
cations using the open-source Robot Web Tools (RWT) [14] interfacing robots
running the ROS. Further works in developing and using middle-ware involving
web accessibility of ROS based applications includes Robotic Programming Net-
work (RPN) presented in [7], which allows users to execute programs through
a client in a browser window using python. While RPN is a viable solution for
remote learning, users of the system need to be familiar with ROS packages and
programming interfaces which could be complex for new learners.
Esteller-Curto in [8] provide a REST-based architecture server to control a
ROS enabled robot using the client server approach where the robot executes
the client application connecting to the server. The communication between the
client and the server is done using HTTP headers and in XML. Although an
implementation is provided, the work lacks a high level architecture to store in-
formation from various clients so as to avoid collision at the server. The DAvinCi
project presented in [9] introduced a cloud robotics framework that allows mul-
tiple client applications executing on ROS enabled robots to communicate to the
DAvinCi server over the Internet The server maintains the state of collabora-
tive work completed by the clients. For large number of clients, the intermediate
server can be exposed to network congestion thus needing further work in re-
liability and scalability of the service. This project provided a foray extending
the robot-to-robot communications over the Internet to the cloud based robotics
middle-ware. Narita et.al. in [10] present a reliable cloud based robot services
platform extending their earlier work on Robot Service Network Protocol. The
suggested protocol adopts push communication and a reliable messaging mech-
anism in order to perform reliable communication on robot services based on
18 Anis Koubâa, Maram Alajlan, Basit Qureshi
web service technologies. Authors in [14] present rosjs, a Javascript library for
ROS, that allows developers to expose robot functionality as web services. The
rosjs allows developers to create robot applications that can be used in the web
browser and extends ROS to provide security and data logging mechanisms.
The ROSBridge protocol in [11] uses a Websockets server installed on the
robot side that allows to send the internal status of the robot based on ROS
topics and services and receives commands to Websockets clients to process
them. This approach enabled the effective integration of ROS with the Internet;
however, the fact that the Websockets server is running on the robot machine
requires the robot to have a public IP address to be accessible by Websockets
clients, which may not be possible for all robots. In [12], the author proposed
ROS-as-a-web-service which allows to define a Web service server in the robot
to access through the Internet. However, this solution share the same limitation
as ROSBridge as the server is located at the robot side.
6 Conclusion
Acknowledgments
References
1. J. Kuffner, “Cloud-enabled robots,” in IEEE-RAS International Conference on
Humanoid Robots. IEEE, 2010.
2. R. Chaari, F. Ellouze, A. Koubaa, B. Qureshi, N. Pereira, H. Youssef, and
E. Tovar, “Cyber-physical systems clouds: A survey,” Computer Networks, vol.
108, pp. 260 – 278, 2016. [Online]. Available: http://www.sciencedirect.com/
science/article/pii/S1389128616302699
3. B. Qureshi and A. Koubaa, “Five traits of performance enhancement using
cloud robotics: A survey,” Procedia Computer Science, vol. 37, pp. 220 –
227, 2014. [Online]. Available: http://www.sciencedirect.com/science/article/pii/
S1877050914009983
4. M. Quigley, K. Conley, B. P. Gerkey, J. Faust, T. Foote, J. Leibs, R. Wheeler, and
A. Y. Ng, “Ros: an open-source robot operating system,” in ICRA Workshop on
Open Source Software, 2009.
5. M. Casini, A. Garulli, A. Giannitrapani, and A. Vicino, “A remote lab for experi-
ments with a team of mobile robots,” Sensors, pp. 16 486–16 507, 2014.
6. B. Pitzer, S. Osentoski, G. Jay, C. Crick, and O. C. Jenkins, “Pr2 remote lab: An
environment for remote development and experimentation,” in IEEE International
Conference on Robotics and Automation (ICRA),, 2012.
7. G. A. Casañ, E. Cervera, A. A. Moughlbay, J. Alemany, and P. Martinet, “Ros-
based online robot programming for remote education and training,,” in 2015 IEEE
International Conference on Robotics and Automation (ICRA), May 2015, pp.
6101–6106.
8. R. Esteller-Curto, E. Cervera, A. P. del Pobil, and R. Marin, “Proposal of a rest-
based architecture server to control a robot,” in 2012 Sixth International Confer-
ence on Innovative Mobile and Internet Services in Ubiquitous Computing, July
2012, pp. 708–710.
9. R. Arumugam, V. R. Enti, L. Bingbing, W. Xiaojun, K. Baskaran, F. F. Kong,
A. S. Kumar, K. D. Meng, and G. W. Kit, “Davinci: A cloud computing frame-
work for service robots,” in 2010 IEEE International Conference on Robotics and
Automation, May 2010, pp. 3084–3089.
10. M. Narita, S. Okabe, Y. Kato, Y. Murakwa, K. Okabayashi, and S. Kanda, “Reli-
able cloud-based robot services,” in 39th Annual Conference of the IEEE Industrial
Electronics Society,, 2013.
11. C. Crick, G. T. Jay, S. Osentoski, B. Pitzer, and O. C. Jenkins, “rosbridge: ROS for
Non-ROS Users,” in International Symposium on Robotics Research (ISRR 2011),
Flagstaff, AZ, USA, August 2011.
20 Anis Koubâa, Maram Alajlan, Basit Qureshi
12. A. Koubâa, “ROS As a Service: Web Services for Robot Operating System,” Jour-
nal of Software Engineering for Robotics, vol. 6, no. 1, 2015.
13. “MAVLink Micro Air Vehicle Communication Protocol,”
http://qgroundcontrol.org/mavlink/start, accessed: 2016-8-7.
14. S. Osentoski, G. Jay, C. Crick, B. Pitzer, C. DuHadway, and O. C. Jenkins, “Robots
as web services: Reproducible experimentation and application development us-
ing rosjs,” in 2011 IEEE International Conference on Robotics and Automation
(ICRA), May 2011, pp. 6078–6083.
15. The JSON Data Interchange Format, First edition ed. ECMA International, Oc-
tober 2013. [Online]. Available: http://www.ecma-international.org/publications/
files/ECMA-ST/ECMA-404.pdf
16. “ROSLink Message Specification Set,” http://wiki.coins-
lab.org/roslink/ROSLINKCommonMessageSet.pdf, accessed: 2016-10-22.
17. A. Koubaa, B. Qureshi, M.-F. Sriti, Y. Javed, and E. Tovar, “Dronemap planner:
A service-oriented cloud-based management system for the internet-of-drones,” in
The 32nd ACM Symposium on Applied Computing, 2016.
18. “Dronemap Planner Demos,” http://wiki.coins-
lab.org/index.php?title=Dronemap, accessed: 2016-11-6.
19. “Telerobot,” http://telerobot.mech.uwa.edu.au/Telerobot/index.html, accessed:
2016-5-10.
20. R. Marı́n, P. Sanz, and A. del Pobil, “The uji online robot: An education and
training experience,” Autonomous Robots, vol. 15, no. 3, pp. 283–297, 2003.
[Online]. Available: http://dx.doi.org/10.1023/A:1026220621431