Ros Overview Slides - Key
Ros Overview Slides - Key
ANIS KOUBAA
2020
ROBOT OPERATING SYSTEM (ROS) COURSE
My Udemy Courses
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
PERCEPTION I:
PERCEPTION I: OPENCV
LASERSCANNER
ROSSERIAL ARDUINO
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
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)
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
Development Environment
▸ 8 GB of RAM
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
WHY ROS?
Anis Koubaa
http://www.riotu-lab.org
ROBOT OPERATING SYSTEM (ROS) COURSE
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
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
UAV MOTORS
ACTUATORS
ACT
SERVOS
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
Self-Driving Car
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
ROS Impact
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
■
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
■
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
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
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
ROS Concepts
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
ROS Publisher/Subscriber
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
ROS Services
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
ROS ActionLib
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
Path Planning
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
LIMITATIONS OF ROS
Anis Koubaa
http://www.riotu-lab.org
ROBOT OPERATING SYSTEM (ROS) COURSE
ROS Limitations
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
Node 1 Node 2
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
Fast Prototyping
Robotics Swarm QoS and Real-Time to Production
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
Two options
Protocol
ZeroMQ
Buffers
DDS
ZeroConf
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
▸ 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
https://www.youtube.com/
watch?v=u-saogMmKOo
2011
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
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
Dashing Diademata
May 31st, 2019
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
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
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
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
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>
be exposed
Any ROS resource
Publisher<TopicType>
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
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
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.
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
Robot
drone
Cloud
Sin
ROS Master
ROS Master
ROS Master
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
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.
ROSLink
Cloud
Robot HW
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
Anis Koubaa
ROBOT OPERATING SYSTEM (ROS) COURSE
Anis Koubaa