Toward open-source robotics – ROS use case in industrial and mobile robotics
Nikola Knežević1, David Seničić2, Kosta Jovanović1
1 University of Belgrade – School of Electrical Engineering, Belgrade, Serbia
2 Htec, Belgrade, Serbia
knezevic@[Link], [Link]@[Link], kostaj@[Link]
Abstract: Many industrial facilities use robots daily, ROS (Robot Operating System) community is trying
for a variety of tasks. Besides this, service robots are to overcome all these obstacles to introduce open-source
playing an increasing role in our lives, starting from concepts to robotics [6]. The main concept of ROS,
vacuum cleaning robots to robots that serve as hosts in besides being open-source, is modular and reusable
many hotels nowadays or robots that assist people in software in order to make robot programming accessible
recovery of injuries. Increasing demand in the market for to everyone [7]. In this way, ROS promotes flexibility
the number of robots is also occurring in a large number and accelerates deploy time. Because of its good features
of robot manufacturers. Each of them has its closed ROS is a part of academic research for a while. For it to
architecture and software. In this way, manufacturers become a part of an industrial environment
provide specified characteristics, but also limiting end- standardization is very important. ROS community
users and force them to use specific software solutions. In recently released ROS 2.0 that has increased safety and
the past decade, great effort has been made by the open- synchronization being one step closer to real-time
source community to make robotics available to a wider framework [8]. ROS community is trying to become
range of users. To this end, a Robot Operating System open-source middleware for robotics systems that will be
(ROS) was developed. ROS is a meta operating system running in factories, homes, hotels, etc.
that provides developers a large number of libraries and In section II, basic ROS tools and libraries for fast
tools for easy and fast development of robotic prototyping are presented. Section III and Section IV
applications. In this paper, the main concepts of ROS and point out an industrial robot and a mobile robot ROS use
how it can be used in industrial and mobile robots will be cases respectively while concluding remarks are given in
presented. Section V.
Keywords: open-source; Robot Operating System;
robotics; industrial robots; mobile robots. II. ROS tools and packages
ROS provides a set of software libraries and tools to
I. Introduction help developers to build robot applications. Since it is an
In 2017, robot sales increased by 30% to 381,335 open-source platform, the main goal of the community is
units. Robot sales in the automotive industry increased by to introduce ROS as a standard in robotics. ROS allows
22% and remain still the major customer of industrial researchers and developers to use different programming
robots with a share of 33%. The electrical/electronics languages for creating their applications. ROS works with
industry has been catching up with 32% of the total share C++, Python, and Lisp. There is a beta version of client
[1]. Many of these robots use commercial softwares. The libraries that supports Java, C#, R, and other languages.
reason for this is safety features that robot manufacturers ROS program is called a node. Nodes can
can guarantee by remaining close to end-users. Open- communicate with each other. Communication between
source software today doesn't offer real safety features, ROS nodes is peer-to-peer. There are three methods of
and developers/end-users need to develop their safety communication: through topics, services, and action
systems. Without these safety systems, robots can not be services.
part of the factory.
When it comes to service robots, there are a lot of A. ROS tools
these robots, but still, we aren't seeing many of them in The main tools ROS provides are rviz, rosbag,
our homes and in our everyday use. This type of robot rqt_bag, rqt_plot, rqt_graph, command-line tool, and
must deal with the unstructured human environment. If other. For 3D visualization rviz is used as presented in
they are capable of dealing with these conditions, they Figure 1. This tool can let you combine sensor data, robot
can perform tasks like vacuum cleaning, cooking, or models, and for example work cell 3D model for a better
hosting people in hotels [2][3]. A technological understanding of the ongoing scenario. For data logging
breakthrough, especially in the field of artificial and visualization of sensor data, ROS use rosabg and
intelligence (AI), gives robots a possibility to work in the rqt_bag. The tool for making plots is rqt_plot. By
human's environment [4]. Besides technology readiness, selecting the desired topic, this tool automatically
robots need to be cheaper and more open to users in order generates a plot from its data. And to see what nodes,
to be widely adopted. topics, and services are running on the system rqt_graph
Nowadays, modern factories work on the popular is needed. Gazebo software can be used to run physics
concept of Smart Industry or Industry 4.0 that focuses on simulation on the ROS platform.
flexible and smart automatization [5].
DOI: 10.5281/zenodo.3466748 29
odometry, sensor streams, and tries to compute safe
velocity commands. These commands use as input to the
move_base package. Because of noise, slippage, and
incorrect modeling of robot geometry odometry might not
give a correct robot position. The robot_pose_ekf package
applies Extended Kalman Filtrar (EKF) to sensor data to
improve “the belief” of robot position. In the end, the
robot needs to know the environment and use gmapping
package for map building. This package uses OpenSlam
Gmapping algorithm for mapping. As the output from this
package user gets 2-D occupation grid map.
Most robotic applications have demands for image
processing. In order to provide a real-time computer
Figure 1: Rviz UI.
vision, vision_opencv package is implemented for ROS.
The Gazebo provides a necessary interface between This package provides a popular OpenCV library for
simulations and robots. Weall know that in every robotic ROS. Also, nowadays AI algorithms are common part of
application good and precise simulations are precious for robotics applications. ROS provides openai_ros package
fast and accurate prototyping and algorithm testing. Also, with complete infrastructure for Reinforcement Learning.
without simulations, practically most of the AI robotic This package can execute learning algorithms using
tasks can not be trained. Therefore, in reinforcement Gazebo simulator in order to collect data necessary for
learning, you need to let robot to explore the learning algorithms.
environment. This action for real robot can lead to robot
damage. III. Industrial use case for ROS
A. ROS packages Industrial robotics has always been tied to
manufacturer of industrial robots. Robotics solutions were
ROS software is organized in packages. A package primarily implemented via the framework provided by
might contain nodes, independent libraries, configuration manufacturers. System integrators, main users of these
files, third-party software, or anything else that frameworks, made programs per clients specifications.
constitutes a useful module. The main goal of organizing ROS - Industrial, ROS - I for short, offered open-source
software in packages is to provide easy-to-consume and based framework with the idea to replace the
reusable software. ROS packages follow a “Goldilocks” manufacturer‘s one. Main idea is to create a framework
principle: enough functionality to be useful, but not too that should work on all industrial robots regardless of size
much that the package is heavy-weight and difficult to and type of the controller. Additional support for this idea
use from other software. came from research that showed the main focus for
In order to control a robot from ROS, appropriate industrial robotics in the last 24 years was welding and
drivers need to be installed. Also, all drivers for any material handling [9]. Figure 2 shows distribution from
device are organized in packages. research.
One of the most valuable ROS packages for industrial Industry lacked flexibility, an adaptation of new
robots is ros_control. The ros_control is a set of packages technologies, lacking vision systems, and connectivity to
that includes controller interface, controller managers, Industry 4.0. Additional problem for ROS came in a form
transmissions, and hardware interface. The package takes of standardization and real-time ROS for control. All of
as input joint state data form the robot’s encoders and an these problems will be solved from ground up in ROS2
input set point. It uses a generic control loop feedback which will strongly emphasize on real-time part of robot
mechanism to control the output sent to actuators. Also, operations.
tracking of coordinate frames is very important in The use case for ROS in the industry is presented
robotics. The package that lets users keep tracking of through H2020 project RAMPup [10]. The main idea of
multiple coordinate frames over time is tf. In a robotic
system, there are many 3D coordinate frames that change
over time, such as a world frame, base frame, gripper
frame, etc. This is very important if there is a need, in an
application, for calculating pose of the object in robot
gripper relative to its base. Or if information about the
current pose of the base frame in the map frame is
needed.
For mobile robotics, there are a couple of important
packages, such as move_base, navigation,
robot_pose_ekf, gmapping, etc. The move_base provides
an implementation of the algorithm that, for a given goal
in the world, will try to reach it with a mobile robot base.
The navigation package combines information from Figure 2: Industrie use of robots.
30
this 4-year project is to develop complete solution for ROS2 will be the next step towards real-time
common industrial tasks, screwing, riveting, gripping, constraint systems and industrial standard for the future.
and gluing for example. Each of these tasks will be - Links 1 and 2 are video demonstration of RAMPup
constructed as a module. This included hardware as well current progress, and Link 3 provides demonstration of
as software and it needs to be ROS centered. An enforcement learning.
additional task is to enable easy to use and safe - Link 1 - basic functionality
programming for the robot with this RAMPup module. - Link 2 - RAMPup demonstrations
Main users and testers will be SME which have small - Link 3 - Demonstration of enforcement Learning on
batches, 50 - 1000 units per batch, of a similar product High-Precision Assembly Tasks with ROS - Industrial
and need to reprogram industrial robot with RAMPup ROS-I needs to become a stable base for research as
module on a weekly basis. This will empower SMEs to well as industry so that use of industrial robots can be
use industrial robots as easy to use and safe tools to offloaded to ROS and only solving one problem. Open-
accelerate production and improve quality. The subtask of source community had many issues because lack of
this project is a force-based insertion. Robot task is to availability of industrial robots. ROS-I is collaborating
pick up an object on a known location and carry it to the with robot manufacturers to enable simulating robot as
area of insertion. The area is roughly known. Robot task much as possible.
is to probe the area with object and measure force and
torques to get an idea about the hole location. The second IV. Mobile robots use case for ROS
stage is to guide object into a hole. The object can have
multiple pegs for multiple holes. A task can be opposite, The mobile robotics use case is closely related to an
the object can have holes and needs to be fitted onto ongoing course at the University of Belgrade, School of
multiple pegs. This was a task for SME which tested this Electrical Engineering on Autonomous Mobile Robots. In
module. this course, students learn how to develop their nodes and
Future goals of the force based were to: how to exchange data through topics. Also, they learn
1) Create plug-and-play module that provides force how to control differential drive robot, how to use lidar
based insertion which will be tested in real factory data to detect walls, and how to implement EKF for
production line. correction of localization estimation. For this course
2) Modul should be agnostic toward type of robot as TurtleBot3 is used, presented in Figure 3. Designed by
well as type of force-torque sensors attached to robot ROBOTIS, this robot uses as an educational platform for
flange. Configurations should be available and easy to learning ROS and Autonomous Mobile Robot basic
use. This is the main power of ROS. principles.
3) Simulation of work should be available before TurtleBot3 is a differential drive robot equipped with
testing on real robot workcell. This is valuable for testing cost-effective and small-size Single Board Computer
real-life simulations of workcell, debugging possible (SBC) that is suitable for the robust embedded system,
solutions, and testing how force sensor should interact. lidar sensor, and 3D printed technology. The core
4) End users can program and modify robot’s task technologies are SLAM, Navigation, and Manipulation,
enabling modularity. making this robot suitable for home service tasks. With
5) Modul should be independent of its hardware as appropriate ROS packages, this robot can be controlled
much as possible. If user needs different piece of using PC, joypad, gamepad, and any wifi or Bluetooth
equipment, for example larger gripper. Software side is controller. Because of the modularity of ROS packages
constructed for modularity in mind. and the topic principle of communication, this is possible.
ROS proved to be a useful tool in handling different Firstly, students need to establish communication
sensors. Module main sensing of force and torque came between the robot and their PC. Applying the correct
from force and torque sensor attached to the robot end configuration of the network parameters, communication
flange. Three industrial grade sensors were used, Robotiq can be automatically established. That means if any of the
FT300, Optoforce HEX – E model, and ATI sensor Delta nodes is publishing some data, collecting that data can be
SI 330 – 30. Robotic sensor had ROS enabled driver by performed from any device that is part of ROS network.
manufacturer, Optoforce and Delta had their driver Using one command, ROS allows running every service
written by community for community. Because ROS is that will bring up the robot. At that moment, users can
built upon nodes, changes were needed to be done only in collect data from the actuator encoders, a point cloud of
one node that published on topics /sensor/force and lidar data, IMU data, and robot status information.
/sensor/torque. The second thing that needed change is
correction in orientation of coordinate system of force
sensor as well new dimensions of end tool point. ROS
provided drivers to communicate to KUKA controller
which controlled KUKA Agilus KR10. This
communication provided critical information about robot
current status, for example internal coordinates of robot
motors. Sending points of trajectory was also done via Figure 3: TurtleBot 3, left: Burger, center: Waffle, right: Waffle PI.
this open-source experimental ROS KUKA packet.
31
Also, the user can send commands to the robot to ROS community is showing that in the future ROS
manipulate them. The second thing that students need to might become a robotic standard for industrial and mobile
learn is how to develop an algorithm for moving robot robots. Also, they are making efforts to introduce robotic
around. Using proper drivers, there is no need to worry programming as easy to learn and modular.
about motor control or to think about how communication
works. Students only need to focus on the algorithm that References
they develop.
Following link demonstrates TurtleBot3 performing [1] [Link]
Executive_Summary_WR_2018_Industrial_Robots.pdf [Assessed on Sep.
SLAM: Link 4 – TurtleBot3 SLAM. 15, 2019]
If you need to focus on research of a new algorithm [2] J. Forlizzi and C. DiSalvo, "Service robots in the domestic environment: a
for robot control or testing algorithm for processing of study of the roomba vacuum in the home," in Proceedings of the 1st ACM
point cloud data, the ROS packages provide an interface SIGCHI/SIGART conference on Human-robot interaction (HRI '06), New
York, NY, USA, 2006, pp. 258-265, doi:
for your robotics project. [Link]
[3] I. P. Tussyadiah, and S. Park, "Consumer Evaluation of Hotel Service
V. Conclusion Robots," Information and Communication Technologies in Tourism pp.
308–320, 2018, doi: [Link]
This paper presented how ROS can lead to open- [4] W. Burgard, M. Moors, D. Fox, R. Simmons and S. Thrun, "Collaborative
source robotics. Although, ROS is not on a level like a multi-robot exploration," in Proceedings of the IEEE International
Conference on Robotics and Automation ICRA, San Francisco, CA, USA,
commercial manufacturer, because of safety standards 2000, pp. 476-781, doi: [Link]
and real-time features, the ROS community is making [5] M. A. K. Bahrin, M. F. Othman, N. N. Azli and M. F. Talib, "Industry 4.0:
efforts to overcome these problems. This paper also A review on industrial automation and robotic," Jurnal Teknologi, vol. 78,
presented basic tools and packages that can accelerate the no. 6-13, pp. 137-143, 2016.
process of developing and deploying. Use case for [6] [Link] [Assessed on Sep. 15, 2019]
industrial robots shown that ROS poses capabilities for [7] J. Kerr and K. Nickels, "Robot operating systems: Bridging the gap between
human and robot," in Proceedings of the 44th Southeastern Symposium on
running applications in which a force/torque sensor
System Theory (SSST), Jacksonville, FL, USA, 2012, pp. 99-104, doi:
integration. In the case of mobile robots, it has been [Link]
shown that students can easily learn basic postulates with [8] [Link] [Assessed on Sep. 15, 2019]
ROS. Using ROS packages developing specific [9] [Link] [Assessed on Sep. 15.2019]
algorithms becomes an independent task. [10] [Link] [Assessed on Sep. 15, 2019]
32