0% found this document useful (0 votes)
110 views58 pages

Ros Overview Slides - Key

ROS (Robot Operating System) evolved from the Logo programming language used to program robotic turtles. It is now widely used for programming robots with sensors and actuators. ROS provides standard message passing between processes and package management. It has a large user and developer community and supports many robots through packages.

Uploaded by

TUFAIL Bhat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
110 views58 pages

Ros Overview Slides - Key

ROS (Robot Operating System) evolved from the Logo programming language used to program robotic turtles. It is now widely used for programming robots with sensors and actuators. ROS provides standard message passing between processes and package management. It has a large user and developer community and supports many robots through packages.

Uploaded by

TUFAIL Bhat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 58

OVERVIEW OF ROS

ANIS KOUBAA

What is and Why ROS?


https://www.udemy.com/user/anis-koubaa/

2020
ROBOT OPERATING SYSTEM (ROS) COURSE

My Udemy Courses

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Learning Path ROS BASICS

MOTION WITH ROS

PERCEPTION I:
PERCEPTION I: OPENCV
LASERSCANNER

ROSSERIAL ARDUINO

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Learning Path ROS TRANSFORMATIONS

REACTIVE NAVIGATION

MAP-BASED NAVIGATION

AERIAL ROBOTS

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Learning Path

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

LEARNING OUTCOMES
Anis Koubaa
http://www.riotu-lab.org
ROBOT OPERATING SYSTEM (ROS) COURSE

Learning Outcome
▸ Understand ROS Ecosystem (topics, nodes, messages, services,
actionlib)

▸ Develop simple applications to control robot motion

▸ Understand how a position and orientation are represented in


ROS

▸ Recognize how to develop a C++/Python ROS project

▸ Develop simple computer vision programs with ROS and OpenCV

▸ Develop application for robot navigation

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Development Environment

▸ ROS Melodic on Ubuntu 18.04 (VM or Physical Machine)

▸ Laptop recommended requirements

▸ 8 GB of RAM

▸ SSD Hard drive

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

WHY ROS?
Anis Koubaa
http://www.riotu-lab.org
ROBOT OPERATING SYSTEM (ROS) COURSE

Robot Path Planning

2010

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Robot Navigation

2010

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Flying a Drone

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Robot Process Cycle

SENSE THINK ACT

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Sense
CAMERA

LASERS

ULTRASONIC
SENSE

GPS

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Think
ARTIFICIAL INTELLIGENCE

MACHINE LEARNING

THINK
SIGNAL PROCESSING

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Act BRUSHLESS MOTORS

UAV MOTORS

ACTUATORS
ACT

SERVOS

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Self-Driving Car

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

ROS Impact

2M Page View per Month


120000 new users per month

SOURCE http://download.ros.org/downloads/metrics/metrics-report-2019-07.pdf

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

ROS Impact

SOURCE: https://metrics.ros.org/analytics_pageviews.html

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

WHAT IS ROS?
Anis Koubaa
http://www.riotu-lab.org
ROBOT OPERATING SYSTEM (ROS) COURSE

ROS (1) Evolution


- May 23, 2018 - ROS Melodic


16 17

19

■ 18
20


21

■ 16 https://en.wikipedia.org/wiki/Logo_(programming_language)
17 http://el.media.mit.edu/logo-foundation/what_is_logo/index.html
■ 18 http://spectrum.ieee.org/automaton/robotics/diy/interview-turtlebot-inventors-tell-us-everything-about-the-robot


18 ROS Robot Programming

16 17


18

Reference Book: ROS Robot Programming (in English). Authors: Yoonseok Pyo, Hancheol Cho, Leon Jung, Darby Lim

Anis Koubaa
16 https://en.wikipedia.org/wiki/Logo_(programming_language)
19 https://www.worldturtleday.org/
17 http://el.media.mit.edu/logo-foundation/what_is_logo/index.html
20 https://wiki.ubuntu.com/LTS
18 http://spectrum.ieee.org/automaton/robotics/diy/interview-turtlebot-inventors-tell-us-everything-about-the-robot
17 21 http://wiki.ros.org/Distributions
ROBOT OPERATING SYSTEM (ROS) COURSE

ROS (1) Evolution


- May 23, 2018 - ROS Melodic


16 17

19

■ 18
20


21

■ 16 https://en.wikipedia.org/wiki/Logo_(programming_language)
17 http://el.media.mit.edu/logo-foundation/what_is_logo/index.html
■ 18 http://spectrum.ieee.org/automaton/robotics/diy/interview-turtlebot-inventors-tell-us-everything-about-the-robot


18 ROS Robot Programming

16 17


18

Reference Book: ROS Robot Programming (in English). Authors: Yoonseok Pyo, Hancheol Cho, Leon Jung, Darby Lim

Anis Koubaa
16 https://en.wikipedia.org/wiki/Logo_(programming_language)
19 https://www.worldturtleday.org/
17 http://el.media.mit.edu/logo-foundation/what_is_logo/index.html
20 https://wiki.ubuntu.com/LTS
18 http://spectrum.ieee.org/automaton/robotics/diy/interview-turtlebot-inventors-tell-us-everything-about-the-robot
17 21 http://wiki.ros.org/Distributions
ROBOT OPERATING SYSTEM (ROS) COURSE

ROS Distribution over Time


ROS ROS 2.0

ROS2
ROS
SOURCE: https://metrics.ros.org/packages_rosdistro.html

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

ROS Archiecture

Node 1 Node 2

ROS
Master

Client Libraries
(rospy, roscpp)

TCPROS/UDPROS

Linux

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

ROS Concepts

Reference Book: ROS Robot Programming (in English).


Authors: Yoonseok Pyo, Hancheol Cho, Leon Jung, Darby Lim

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

ROS Concepts

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

ROS Publisher/Subscriber

Reference Book: ROS Robot Programming (in English).


Authors: Yoonseok Pyo, Hancheol Cho, Leon Jung, Darby Lim

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

ROS Services

Reference Book: ROS Robot Programming (in English).


Authors: Yoonseok Pyo, Hancheol Cho, Leon Jung, Darby Lim
29

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

ROS ActionLib

Reference Book: ROS Robot Programming (in English).


Authors: Yoonseok Pyo, Hancheol Cho, Leon Jung, Darby Lim

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Path Planning

Global Path Planner


Local Path Planner

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

LIMITATIONS OF ROS
Anis Koubaa
http://www.riotu-lab.org
ROBOT OPERATING SYSTEM (ROS) COURSE

ROS Limitations

Not Real-Time Need Reliable Network


Single Robot Single Point of Failure

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

ROS vs ROS 2.0

Node 1 Node 2

Node 1 Node 2 Node 3


ROS
Master

Client Libraries
Client Libraries
(rclpy, rclcpp)
(rospy, roscpp)
Abstract DDS
TCPROS/UDPROS
DDS Intra-Process API

Linux Linux/Windows/Mac-OS

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

ROS2 Use Cases Cross-Platform

Fast Prototyping 

Robotics Swarm QoS and Real-Time to Production

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

What Middleware to Choose?

Two options

Build new middleware based


Improve ROS 1.x Transport
on existing solutions

Protocol
ZeroMQ
Buffers

DDS
ZeroConf

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Data Distribution Service


▸ An industry-standard communication system
“The DCPS model described in this
▸ Designed by Object Management Group chapter extends the publish-subscribe
model to address the specific needs of
real-time, data-critical applications.”
▸ Data-Centric Publish Subscribe (DCPS) system

▸ Real-time machine-to-machine (middleware) communication

▸ Uses publish-subscribe pattern

▸ Used in: financial trading, air-traffic control, smart grid management, big
data and IoT applications

▸ Started in 2001 with two vendors: RTI in the US and Thales group in France

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Data Distribution Service

https://www.youtube.com/
watch?v=u-saogMmKOo

2011
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Why DDS? Discovery Message


▸ DDS is a networking middleware ▸ DDS replaces the ROS ▸ ROS2 maintains the same
message definitions as in ROS1
▸ Simplifies complex network master discovery system
programming ▸ ROS 1.x .msg files are
▸ DDS API provides converted into .idl files to be
▸  Implements a publish–subscribe
pattern for sending and receiving
information on nodes used by DDS transport layer
data, events, and commands topics, services, etc. ▸ Experiments show that cost of
among the nodes.  message conversion is non
▸ Users are prevented from significant as compared to cost
▸ Similar to ROS, (publishers)
create "topics" (e.g., temperature,
direct access to DDS of serialization.
location, pressure) and publish (hidden behind ROS
“samples" APIs)
▸ DDS allows the user to
specify quality of service (QoS) ▸ Fully distributed
parameters (QoS Profiles in discovery process (no
ROS2) single point of failure)

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

No Vendor Lock
There is currently support for eProsima FastRTPS, ADLINK’s
OpenSplice, RTI’s Connext DDS and CycloneDDS.

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

ROS2 Distribution/Learning ROS 2


loquent Elusor
Nov 22nd, 2019
Foxy Fitzroy
June 5th, 2020

Dashing Diademata
May 31st, 2019

Crystal Clemmys http://emanual.robotis.com/


December 14th, 2018

Bouncy Bolson
July 2nd, 2018

Ardent Apalone
December 8th, 2017

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

CONTRIBUTIONS TO ROS
Anis Koubaa
http://www.riotu-lab.org
ROBOT OPERATING SYSTEM (ROS) COURSE

CONTRIBUTIONS TO ROS
Anis Koubaa
http://www.riotu-lab.org
ROBOT OPERATING SYSTEM (ROS) COURSE

Using ROS in Education

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Using ROS in Education

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Using ROS in Education

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Using ROS in Education

http://edu.gaitech.hk/

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Springer Books

SUBMISSION OPEN
https://www.riotu-lab.org/rosbook/

Anis Koubaa
native to client applications to interact with ROS ecosystem. In ROSJAVA
particular, the Web service layer allows a user to subscribe to

ROBOT OPERATING SYSTEM (ROS) COURSE


AbstractNodeMain
or publish any ROS topic, action or service, and thus delivering +public GraphName getDefaultNodeName()
+public void onStart(ConnectedNode connectedNode)
ROS messages to client subscribed to a particular topic.
To integrate Web services into ROS, we faced the challenge
RobotSubscribersNode RobotPublishersNode
of choosing the most appropriate technology to build the +topicSubscriber: Subscriber<TopicType> +topicPublisher: Publisher<TopicType>

software system and design its architecture. We have opted +RobotSubscribersNode()


+onStart(ConnectedNode cn): void
+RobotPublishersNode()
+onStart(ConnectedNode cn): void

for the use of Java as a Web service programming lan-

Service Robot
guage, as it provides a native and advanced support of SOAP
and REST Web services, although they are programming-
language-independent and platform-independent. However,
RobotResource_1
REST Web Services

+robotSubscribersNode: RobotSubscribersNode
RobotResource_N
+robotSubscribersNode: RobotSubscribersNode

end Java EE provides standard APIs for SOAP and REST Web
+robotPublishersNode: RobotPublishersNodes
+connectedNode:
+getXML(): String
ConnectedNode
+robotPublishersNode: RobotPublishersNode
+connectedNode:
+getXML(): String
ConnectedNode

Services, known as JAX-WS and JAX-RS specifications, re-


ace spectively. Python also provides REST Web service support,
+getJSON(): String
+getPlain(): String
+postResource(): void
+getJson(): String
+getPlain(): String
+postResource(): void

ces but much less than Java for SOAP Web services.
This choice wouldn’t have been possible without the use Fig. 4. UML Class Diagram of REST Web Services for ROS
ion >2)?##

!"#$%&'%()#*+
of ROSJAVA, which is a Java API that defines a ROS client

,--./012)%(#
6%@2.)A%1)#

(##
ces library that allows ROS developers to write ROS programs

3"#4%1/#*+,%
#

,--./012)%(#
in the Java language and interact with the ROS Master. It to the Web services that are be defined in the SOAP and REST
that has to be noted that ROS mainly relies on its C++ (roscpp) Web services packages. The objective of the classes in this
5"#4%1/#6%708%.9##
5"
and Pyhton (rospy) client APIs>201#B277# for developing ROS programs. package is to create publishers and subscribers of all ROS

,%(##
user ROSJAVA is relatively recent and its purpose was mainly to ex-
:"#;<%,')%#='%.9# $ %
$%&'%()#)-#$*4#
topics and ROS services that will later be exposes as services.
oid tend ROS capabilities to be integrated into mobile applications, SOAP Web services ros-ws package: This
through the android_core API that extends C2D%#ROSJAVA to package *+,%# contains classes that wrap the exposed ROS
lo- write ROS client programs for Android devices. *+,%#
functionalities as SOAP Web services. The Web
QL We took advantage of all these capabilities to develop Web services are defined through generic Java interfaces for
Services’ interfaces using the powerful features of Java EE in both subscribers and publishers Web services, namely
nd- combination with ROSJAVA that allows us to integrate Web
E2F(#
RobotSubscribersWebServiceInterface and
Services with ROS in an elegant fashion. The UML class RobotPublishersWebServiceInterface. These
on diagrams of SOAP Web Services (ros-ws) and REST Web Java interfaces are used to define the contract of the
ates Services (ros-rs) for ROS are presented in Figures 3 and SOAP Web services and help in generating a WSDL
4. document independent of the implementation details.
hich These interfaces are implemented by the Web Services
native to client applications to interact with ROS ecosystem. In concrete classes RobotSubscribersWebService and
ped
particular, the Web service layer ROSJAVA
allows Fig. a user 7. to Courier
subscribe to DeliveryRobotPublishersWebService.
Scenario
ROSJAVA
These classes provide
AbstractNodeMain AbstractNodeMain
or publish any ROS+public topic, action or service, and thus delivering
GraphName getDefaultNodeName()
the implementation of the
+public GraphName Web methods that are exposed to
getDefaultNodeName()
+public void onStart(ConnectedNode connectedNode)
ROS messages to client subscribed to a particular topic.
+public void onStart(ConnectedNode connectedNode)
and invoked by the Web services’ clients.
Web To integrate Web services into ROS, we faced the challenge REST Web services ros-rs package: This package
RobotSubscribersNode RobotPublishersNode
of choosing RobotSubscribersNode
hod the most appropriate technology to build the
+topicSubscriber: Subscriber<TopicType>
software +RobotSubscribersNode()
system and design its architecture.
A
RobotPublishersNode
CKNOWLEDGMENTS
+topicPublisher: Publisher<TopicType>
We have opted
defines
(topic,
a class
+topicSubscriber:

action or
for each particular
Subscriber<TopicType>

service) that must


resource.
+topicPublisher:

be exposed
Any ROS resource
Publisher<TopicType>

cn): voidas a REST Web


+RobotSubscribersNode() +RobotPublishersNode()
+RobotPublishersNode() +onStart(ConnectedNode
+onStart(ConnectedNode cn): void

ase +onStart(ConnectedNode cn): void


for the use of Java as a Web service programming lan-
+onStart(ConnectedNode cn): void

This work is supported by the myBot project entitled service must be defined into a specific class that represents
guage, as it provides a native and advanced support of SOAP this particular resource. ForServices
this reason, there will be as many
hod “MyBot: A Personal Assistant Robot Case Study for Elderly
and REST Web services, although SOAP Web Services
they are programming- classes as the number
REST Web
of resources that must be exposed to
RobotSubscribersWebServiceInterface RobotPublishersWebServiceInterface RobotResource_1 RobotResource_N

will
language-independent and platform-independent. However,
People Care” under the grant from King AbdulAziz City for public. Typical
+robotSubscribersNode: HTTP
RobotSubscribersNode
+robotPublishersNode: RobotPublishersNodes
operations namely
+robotSubscribersNode: GET, POST, PUT,
RobotSubscribersNode
+robotPublishersNode: RobotPublishersNode
Java EE provides standard APIs for SOAP
RobotSubscribersWebService and REST Web
RobotPublishersWebService and DELETE are
+connectedNode: ConnectedNode
used to access the exposes
+connectedNode: ConnectedNode
resources. The
+connectedNode: ConnectedNode +getXML(): String +getXML(): String

Science and Technology (KACST). This work is partially


Services,+connectedNode:
known ConnectedNode
as RobotSubscribersNode
+robotSubscribersNode: JAX-WS and JAX-RS specifications,
+robotPublishersNode: re-
RobotPublishersNode
+RobotPublishersWebService(ConnectedNode cn)
output
+getJSON():canString be in any user-defined
+getPlain(): String
format
+getJson(): String
+getPlain(): String
including plain text,
spectively. Python also provides REST
+RobotSubscribersWebService(ConnectedNode cn)
Web service support, JSON or XML.
+postResource(): void +postResource(): void
on supported by Prince Sultan University.
ROSJAVA-SOAP API ROSJAVA-REST API
but much less than Java for SOAP Web services.
re-This choiceFig. 3. wouldn’t
UML Class Diagram
have beenof possible
SOAP Webwithout Services for theROS use Fig. V.4. EXPERIMENTATION
UML Class Diagram of RESTAND Web ServicesDEPLOYMENT for ROS
of ROSJAVA, which is a Java API that defines a ROS R client
EFERENCES We implemented several services and functionalities in
her
library The
that UML allowsclass ROSdiagram developers to write
for REST alsoROS followsprograms a similar our service robot using the COROS architecture and Web

Anis Koubaa
om-
in the Java [1]
software language M. Waibel, M. Beetz, J. Civera,Itmain
decomposition. and interact
Basically,with we the ROS
distinguish Master. two R. to the
D’Andrea,Web services
services.
WebUniversity
services packages.
We that are bethis
J. Elfring,
deployed
The
D.defined
Galvez-
service
objective
in the
of
robot
the
SOAP at and
classes
Prince REST
in
Sultan
this
packages
has to be noted in that
Figure ROS 3: mainly relies on its C++ (roscpp) to deliver courier between offices and also to bring
vice
and Pyhton
rosjava (rospy) Lopez,
package:client The APIs K.rosjava
forHaussermann,
developing package ROScontainsR. Janssen,
programs. J. M.is M.
classes package to createMontiel, publishers A. and Perzylo, subscribers of among
all ROSother
coffee from the central cafe of the University
writtenisin
ROSJAVA ROSJAVA
relatively B. recentSchiessle,
withand noitsWeb M.services
purpose Tenorth, mainlyO.
wasfunctionality. to ex- Zweigle,
This topics and
and ROS R. services
van de that Molengraft,
will Inlaterwhatbefollows, exposes we as services.
o a “RoboEarth,” Robotics to linkAutomation
ROS ecosystemMagazine,
applications
IEEE,
implemented.
vol. 18, pp. 69–
present the
tend is
ROSan abstraction
capabilities layer
to be that will be
integrated usedmobile
into applications, SOAPmain implemented services, and the challenges andThis
Web services ros-ws package: lessons
ROBOT OPERATING SYSTEM (ROS) COURSE

COROS: Multi-Robot Collaboration

Architecture Global and local interactions COROS components

Anis Koubaa
of maximum range. We also tried with the the Hokuyo 04-LX laser scanner, with a beam
ROBOT
withOPERATING SYSTEM
of 180 degrees and 4(ROS)
metersCOURSE
of maximum range, but the results did not improve a
lot. It seems that the odometry sensor inaccuracy was a major handicap. However, we
note that the Turtlebot platform provide excellent results for mapping small and medium-
Range Limitation of WLAN
scale environment such as room or small apartments. In the case of a large University
floor, results were not satisfactory.

Figure 16. Map of the CCIS First Floor Environment at PSU

AnisTo
Koubaa
overcome this issue, we used the PeopleBot robot that has a SICK LMS-500 laser
sensor with a high resolution and a maximum range of 30 meters. The resulting map of
ROBOT OPERATING SYSTEM (ROS) COURSE

Moving ROS to the Cloud

Robot
drone

Cloud
Sin

Leverage the use of cloud computing and IoT


Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

The Single Robot Problem

ROS Master

ROS Master

ROS Master

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Scalability issue with ROS Master

ROS Master

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

ROSLink Bridge
ROSLink Archiecture
ROSLink ROS Master
Message ROSLink
Message

ROSLink Bridge
ROSLink
Message
ROSLink ROSLink
Message
Cloud Proxy ROS Master

ROSLink Bridge
ROSLink
Message ROSLink
Message
ROS Master

Anis Koubaa
ROBOT OPERATING SYSTEM
3 The (ROS)Protocol
ROSLink COURSE
In what follows, we present an overview of system and software architecture.

ROSLink3.1 ROSLink System Architecture


The general architecture of ROSLink is presented in Fig 2.

ROSLink
Cloud

ROSLink ROSLink ROSLink


Client Proxy Bridge
Control,
ROSLink
Monitor ROS
Cloud
App
drivers

Robot HW

Fig. 2: ROSLink Architecture

The system is composed of three main parts:

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Controlling a drone over the Internet

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

5G Robot Teleop using ROS

Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE

Platooning using ROS

Anis Koubaa

You might also like