SlideShare a Scribd company logo
1 of 45
Download to read offline
ROS: An open source platform for
robotics software developers
Amine BENDAHMANE
02 April 2021
Summary
2
1. What is ROS?
2. How ROS works?
3. Why to use ROS?
4. ROS2
5. Requirements to use ROS
6. Examples (moving a robot using ROS & python)
Context: Why I’m talking about this?
3
I pursued a multi-disciplinary career:
• Computer Science degree from USTO-MB
university
• Worked as Web Developer
• Studied Electronics for ~2 years (actually 1.5 years!)
• Pursuing a PhD degree in Artificial Intelligence & Robotics
• Teaching programming, robotics, and AI for several years
Context: What does robotics software do?
4
Collect data from sensors
Extract information
Send orders to actuators
Sense-Think-Act paradigm
1. What is ROS?
5
ROS is not:
Robot Operating System
1. What is ROS?
6
ROS is not:
• An operating system
Robot Operating System
1. What is ROS?
7
ROS is not:
• An operating system
• A library
Robot Operating System
1. What is ROS?
8
ROS is not:
• An operating system
• A library
• A simulator Robot Operating System
1. What is ROS?
9
ROS is not:
• An operating system
• A library
• A simulator
• An AI framework
Robot Operating System
1. What is ROS?
10
ROS is:
• A middleware
Operating System (OS)
Robot Hardware
ROS Ecosystem
User Software
1. What is ROS?
11
ROS is:
• A middleware
• A distributed platform
1. What is ROS?
12
ROS is:
• A middleware
• A distributed platform
• A set of libraires and tools
Visualization
Simulation
Messaging
Debugging
Packaging
Logging
Navigation, Mapping, Path
Planning…
1. What is ROS?
13
ROS is:
• A middleware
• A distributed platform
• A set of libraires and tools
• Open Source (BSD license)
2. How ROS works?
15
Laser Node
Camera Node
Node
Node
Other nodes
Motors Node
Battery Node
2. How ROS works?
16
Laser Topic
Laser Node
Camera Node
Publish
Node
Subscribe
Node
Other nodes
Motors Node
Battery Node
2. How ROS works?
17
Laser Topic
Laser Node
Camera Node
Publish
Node
Subscribe
Node
Other nodes
Motors Node
Battery Node
2. How ROS works?
Service
2. How ROS works?
18
Topics allow continuous asynchronous communication
2. How ROS works?
19
Services allow one-time synchronous communication
2. How ROS works?
20
The core concepts of ROS are:
• Nodes
• Topics
• Services
• Packages
• Messages
• Other (actions, parameters,
launch files, nodelets…)
3. Why ROS?
3. Why ROS?
22
ROS abstracts the Hardware (motors, sensors…)
• Example: When you want to move the motors, just send a
velocity message to the corresponding topic.
The same code works on
different robots
3. Why ROS?
23
ROS takes care of network layer
• We don’t need to think about
RPC, TCP/UDP, Socket…
24
Designed to increase reusability
• With a set of libraries for path planning, mapping,
visualization…
3. Why ROS?
25
Language independent communication
• A node can run in python and another in C++, with smooth
communication
3. Why ROS?
Topic
Node 1 (C++)
Publisher
Subscriber
Node 2 (python)
26
• Fast prototyping using simulators
• Easy transferring from simulated to real world
robots
3. Why ROS?
27
• Handles transforms between coordinate frames
3. Why ROS?
28
3. Why ROS?
• Visualization and debugging tools
4. Why ROS 2?
4. Why ROS 2?
30
31
• Fully distributed (no ROS master)
• Allows real time programming
• Supports Linux, Windows, MacOS & RTOS
• Supports python >=3.5 & C++11/14 (C++17 soon)
• Allows multiple nodes in the same process
• Python & C++ APIs has the same base API
• …(more)
4. Why ROS 2?
32
4. Why ROS 2?
ROS1 & ROS2 are evolving together:
• The last distribution of ROS1
(Noetic Ninjemys) will still be
supported until May 2025
33
4. Why ROS 2?
Should I switch to ROS 2 now?
• 80% of ROS packages are based
on ROS 1 (as of January 2021)
https://metrics.ros.org/packages_rosdistro.html
• Stick to ROS 1 if you have legacy code or a large
ROS 1 code base already on production (do the
transition gradually)
34
4. Why ROS 2?
• Most of the packages are based on distributions ≤ melodic
• It means most packages are based on C++03 or python 2.7
35
You can use both versions at the same time:
• A node in ROS 1 can communicate with a node in ROS2
through ROS1_bridge package
• Requires more
CPU and RAM
4. Why ROS 2?
5. Requirements to use ROS?
5. Requirements to use ROS
37
You need to know:
• Basic Linux commands
• Basic programming in Python or C++
• Basic knowledge about robot hardware (what’s a
sensor, type of sensors, what’s an actuator…)
• More skills depending on what you want to do
(kinematics, geometry, objects-oriented programming…)
6. Examples
6. Examples
39
/cmd_vel
Our program
Publisher
Subscriber
Topic
Objective:
• create a ROS node to move the robot forward
Velocity commands:
(Moving forward => linear velocity)
6. Examples
40
import rospy, time
from geometry_msgs.msg import Twist
rospy.init_node('robot_mover') # initialize ROS node
pub = rospy.Publisher('cmd_vel', Twist) # create a topic publisher to
control the motors
twist = Twist() # create a Twist message to send velocity commands
twist.linear.x = 0.2 # set linear velocity to 20% of max motor’s speed
moving_time = 0
t0 = time.time()
while moving_time < 3: # repeat the following actions for 3 seconds
pub.publish(twist) # publish to the topic (execute the velocity command)
moving_time = time.time() - t0
twist.linear.x = 0 # set linear velocity to 0 (to stop the motors)
pub.publish(twist) # publish the command
6. Examples
41
Executing the same code on simulation and real robot:
Testing on P3DX at LARESI laboratory, USTO-MB
Testing on Turtlebot3 Gazebo simulation
7. Conclusion
7. Conclusion
43
• ROS is an open-source middleware for robotics
applications
• It is widely used in research & industry
• It abstracts the hardware and network layers
• It increases reusability, and allows easy transfer
from simulation to real robots
• ROS 1 & ROS 2 are evolving together until 2025
Thank you
AmineHorseman
https://github.com/amineHorseman/my-talks
https://linkedin.com/in/amine-bendahmane
Figures references
Page 11: https://www.slideshare.net/pibgeus/21-distributed-architecture-
deploymentinstrospection
Page 18: https://docs.ros.org/en/foxy/Tutorials/Topics/Understanding-ROS2-Topics.html
Page 19: https://docs.ros.org/en/foxy/Tutorials/Services/Understanding-ROS2-Services.html
Page 22: https://slideshare.net/takasehideki/ros-and-mros-how-to-accelerate-the-development-
of-robot-systems-and-integrate-embedded-devices
Page 23: “Message Encryption in Robot Operating System: Collateral Effects of Hardening Mobile
Robots”, Rodríguez Lera et al., Frontiers in ICT 5, 2018
Page 24: https://answers.ros.org/question/262417/amcl-not-localizing-in-pre-built-map
Page 26: (1) https://docs.fetchrobotics.com/gazebo.html (2) https://shuzhiduo.com/A/obzbYBW1dE
Page 27: (1) http://library.isr.ist.utl.pt/docs/roswiki/nao_description.html (2) “Singularity Avoidance
Control of a Non-Holonomic Mobile Manipulator for Intuitive Hand Guidance”, Weyrer et al.,
Robotics 8(1):14, 2019
Page 28: http://fontysarcr.blogspot.com/2016/06/progress-with-multi-robot-exploration.html
Page 30: “Exploring the performance of ROS2”, EMSOFT ‘16, Maruyama et al., 2016
Page 34: https://metrics.ros.org/packages_rosdistro.html
Page 35: https://github.com/m-yuya/ros1_evaluation/tree/master/evaluation

More Related Content

What's hot

ROS 2 Foxy with Eclipse Cyclone DDS | Philly ROS Meetup July 20th 2020
ROS 2 Foxy with Eclipse Cyclone DDS | Philly ROS Meetup July 20th 2020ROS 2 Foxy with Eclipse Cyclone DDS | Philly ROS Meetup July 20th 2020
ROS 2 Foxy with Eclipse Cyclone DDS | Philly ROS Meetup July 20th 2020Joe Speed
 
Basic of Robotics and application
Basic of Robotics and application  Basic of Robotics and application
Basic of Robotics and application abhijeet saxena
 
Robot operating system [ROS]
Robot operating system [ROS]Robot operating system [ROS]
Robot operating system [ROS]Abrar Mohamed
 
Lentin joseph learning robotics using python design, simulate, program, an...
Lentin joseph   learning robotics using python  design, simulate, program, an...Lentin joseph   learning robotics using python  design, simulate, program, an...
Lentin joseph learning robotics using python design, simulate, program, an...Rajmeet Singh
 
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワークElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワークHideki Takase
 
20150708 ros seminar_in_busan_korea
20150708 ros seminar_in_busan_korea20150708 ros seminar_in_busan_korea
20150708 ros seminar_in_busan_koreaYoonseok Pyo
 
第 1 回 Jetson ユーザー勉強会
第 1 回 Jetson ユーザー勉強会第 1 回 Jetson ユーザー勉強会
第 1 回 Jetson ユーザー勉強会NVIDIA Japan
 
FIWARE Robotics: ROS2 & micro-ROS
FIWARE Robotics: ROS2 & micro-ROSFIWARE Robotics: ROS2 & micro-ROS
FIWARE Robotics: ROS2 & micro-ROSJaime Martin Losa
 
micro-ROS: bringing ROS 2 to MCUs
micro-ROS: bringing ROS 2 to MCUsmicro-ROS: bringing ROS 2 to MCUs
micro-ROS: bringing ROS 2 to MCUseProsima
 
Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Piyush Chand
 
Line follower Robot using PID algorithm
Line follower Robot using PID algorithmLine follower Robot using PID algorithm
Line follower Robot using PID algorithmIfaz Ahmed Aflan
 
Robotics workshop PPT
Robotics  workshop PPTRobotics  workshop PPT
Robotics workshop PPTavikdhupar
 
Presentation on robotics
Presentation on roboticsPresentation on robotics
Presentation on roboticsTushar Aneyrao
 
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉Mori Ken
 
First steps with Gazebo simulation for ROS
First steps with Gazebo simulation for ROSFirst steps with Gazebo simulation for ROS
First steps with Gazebo simulation for ROSSergey Matyunin
 

What's hot (20)

ROS vs ROS2
ROS vs ROS2ROS vs ROS2
ROS vs ROS2
 
FPGAX2019
FPGAX2019FPGAX2019
FPGAX2019
 
Ros platform overview
Ros platform overviewRos platform overview
Ros platform overview
 
ROS 2 Foxy with Eclipse Cyclone DDS | Philly ROS Meetup July 20th 2020
ROS 2 Foxy with Eclipse Cyclone DDS | Philly ROS Meetup July 20th 2020ROS 2 Foxy with Eclipse Cyclone DDS | Philly ROS Meetup July 20th 2020
ROS 2 Foxy with Eclipse Cyclone DDS | Philly ROS Meetup July 20th 2020
 
Robotics and ROS
Robotics and  ROSRobotics and  ROS
Robotics and ROS
 
Basic of Robotics and application
Basic of Robotics and application  Basic of Robotics and application
Basic of Robotics and application
 
Robot operating system [ROS]
Robot operating system [ROS]Robot operating system [ROS]
Robot operating system [ROS]
 
Lentin joseph learning robotics using python design, simulate, program, an...
Lentin joseph   learning robotics using python  design, simulate, program, an...Lentin joseph   learning robotics using python  design, simulate, program, an...
Lentin joseph learning robotics using python design, simulate, program, an...
 
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワークElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
 
20150708 ros seminar_in_busan_korea
20150708 ros seminar_in_busan_korea20150708 ros seminar_in_busan_korea
20150708 ros seminar_in_busan_korea
 
第 1 回 Jetson ユーザー勉強会
第 1 回 Jetson ユーザー勉強会第 1 回 Jetson ユーザー勉強会
第 1 回 Jetson ユーザー勉強会
 
FIWARE Robotics: ROS2 & micro-ROS
FIWARE Robotics: ROS2 & micro-ROSFIWARE Robotics: ROS2 & micro-ROS
FIWARE Robotics: ROS2 & micro-ROS
 
My ROS Experience
My ROS ExperienceMy ROS Experience
My ROS Experience
 
micro-ROS: bringing ROS 2 to MCUs
micro-ROS: bringing ROS 2 to MCUsmicro-ROS: bringing ROS 2 to MCUs
micro-ROS: bringing ROS 2 to MCUs
 
Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)
 
Line follower Robot using PID algorithm
Line follower Robot using PID algorithmLine follower Robot using PID algorithm
Line follower Robot using PID algorithm
 
Robotics workshop PPT
Robotics  workshop PPTRobotics  workshop PPT
Robotics workshop PPT
 
Presentation on robotics
Presentation on roboticsPresentation on robotics
Presentation on robotics
 
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
 
First steps with Gazebo simulation for ROS
First steps with Gazebo simulation for ROSFirst steps with Gazebo simulation for ROS
First steps with Gazebo simulation for ROS
 

Similar to ROS - An open source platform for robotics software developers (lecture).pdf

Rclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet ElixirRclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet ElixirHideki Takase
 
ROS Based Programming and Visualization of Quadrotor Helicopters
ROS Based Programming and Visualization of Quadrotor HelicoptersROS Based Programming and Visualization of Quadrotor Helicopters
ROS Based Programming and Visualization of Quadrotor HelicoptersAtılay Mayadağ
 
FIWARE Robotics
FIWARE RoboticsFIWARE Robotics
FIWARE RoboticseProsima
 
Lab-1-ROS-Intro.pdf
Lab-1-ROS-Intro.pdfLab-1-ROS-Intro.pdf
Lab-1-ROS-Intro.pdfcQuach1
 
Automatic ROS2 systems generation via model-driven engineering (MDE) software...
Automatic ROS2 systems generation via model-driven engineering (MDE) software...Automatic ROS2 systems generation via model-driven engineering (MDE) software...
Automatic ROS2 systems generation via model-driven engineering (MDE) software...ISSEL
 
Αυτόματη παραγωγή συστημάτων ROS 2 με χρήση μοντελο-κεντρικών τεχνικών μηχανι...
Αυτόματη παραγωγή συστημάτων ROS 2 με χρήση μοντελο-κεντρικών τεχνικών μηχανι...Αυτόματη παραγωγή συστημάτων ROS 2 με χρήση μοντελο-κεντρικών τεχνικών μηχανι...
Αυτόματη παραγωγή συστημάτων ROS 2 με χρήση μοντελο-κεντρικών τεχνικών μηχανι...ISSEL
 
Lec 01 Introduction.pptx
Lec  01 Introduction.pptxLec  01 Introduction.pptx
Lec 01 Introduction.pptxAhmadMahmood62
 
ORTC Library - Introduction
ORTC Library - IntroductionORTC Library - Introduction
ORTC Library - IntroductionErik Lagerway
 
cReComp : Automated Design Tool for ROS-Compliant FPGA Component
cReComp : Automated Design Tool  for ROS-Compliant FPGA Component cReComp : Automated Design Tool  for ROS-Compliant FPGA Component
cReComp : Automated Design Tool for ROS-Compliant FPGA Component Kazushi Yamashina
 
Let's build a robot with ROS - Internet of Things, Hardware & Robotics meetup...
Let's build a robot with ROS - Internet of Things, Hardware & Robotics meetup...Let's build a robot with ROS - Internet of Things, Hardware & Robotics meetup...
Let's build a robot with ROS - Internet of Things, Hardware & Robotics meetup...Marcin Bielak
 
Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...
Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...
Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...eProsima
 
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdfCyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdfZettaScaleTechnology
 
Embodiment of a neural simulation
Embodiment of a neural simulationEmbodiment of a neural simulation
Embodiment of a neural simulationDave Jilk
 
Master-Master Replication and Scaling of an Application Between Each of the I...
Master-Master Replication and Scaling of an Application Between Each of the I...Master-Master Replication and Scaling of an Application Between Each of the I...
Master-Master Replication and Scaling of an Application Between Each of the I...vsoshnikov
 
ITCamp 2017 - Raffaele Rialdi - Adopting .NET Core in Mainstream Projects
ITCamp 2017 - Raffaele Rialdi - Adopting .NET Core in Mainstream ProjectsITCamp 2017 - Raffaele Rialdi - Adopting .NET Core in Mainstream Projects
ITCamp 2017 - Raffaele Rialdi - Adopting .NET Core in Mainstream ProjectsITCamp
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTStéphanie Roger
 
1. RINA motivation - TF Workshop
1. RINA motivation - TF Workshop1. RINA motivation - TF Workshop
1. RINA motivation - TF WorkshopARCFIRE ICT
 
RubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on RailsRubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on Railselliando dias
 

Similar to ROS - An open source platform for robotics software developers (lecture).pdf (20)

Rclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet ElixirRclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet Elixir
 
ROS Based Programming and Visualization of Quadrotor Helicopters
ROS Based Programming and Visualization of Quadrotor HelicoptersROS Based Programming and Visualization of Quadrotor Helicopters
ROS Based Programming and Visualization of Quadrotor Helicopters
 
FIWARE Robotics
FIWARE RoboticsFIWARE Robotics
FIWARE Robotics
 
Rafail Brouzos thesis
Rafail Brouzos thesisRafail Brouzos thesis
Rafail Brouzos thesis
 
Lab-1-ROS-Intro.pdf
Lab-1-ROS-Intro.pdfLab-1-ROS-Intro.pdf
Lab-1-ROS-Intro.pdf
 
Automatic ROS2 systems generation via model-driven engineering (MDE) software...
Automatic ROS2 systems generation via model-driven engineering (MDE) software...Automatic ROS2 systems generation via model-driven engineering (MDE) software...
Automatic ROS2 systems generation via model-driven engineering (MDE) software...
 
Αυτόματη παραγωγή συστημάτων ROS 2 με χρήση μοντελο-κεντρικών τεχνικών μηχανι...
Αυτόματη παραγωγή συστημάτων ROS 2 με χρήση μοντελο-κεντρικών τεχνικών μηχανι...Αυτόματη παραγωγή συστημάτων ROS 2 με χρήση μοντελο-κεντρικών τεχνικών μηχανι...
Αυτόματη παραγωγή συστημάτων ROS 2 με χρήση μοντελο-κεντρικών τεχνικών μηχανι...
 
Lec 01 Introduction.pptx
Lec  01 Introduction.pptxLec  01 Introduction.pptx
Lec 01 Introduction.pptx
 
ORTC Library - Introduction
ORTC Library - IntroductionORTC Library - Introduction
ORTC Library - Introduction
 
cReComp : Automated Design Tool for ROS-Compliant FPGA Component
cReComp : Automated Design Tool  for ROS-Compliant FPGA Component cReComp : Automated Design Tool  for ROS-Compliant FPGA Component
cReComp : Automated Design Tool for ROS-Compliant FPGA Component
 
Let's build a robot with ROS - Internet of Things, Hardware & Robotics meetup...
Let's build a robot with ROS - Internet of Things, Hardware & Robotics meetup...Let's build a robot with ROS - Internet of Things, Hardware & Robotics meetup...
Let's build a robot with ROS - Internet of Things, Hardware & Robotics meetup...
 
Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...
Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...
Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...
 
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdfCyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
 
Embodiment of a neural simulation
Embodiment of a neural simulationEmbodiment of a neural simulation
Embodiment of a neural simulation
 
Master-Master Replication and Scaling of an Application Between Each of the I...
Master-Master Replication and Scaling of an Application Between Each of the I...Master-Master Replication and Scaling of an Application Between Each of the I...
Master-Master Replication and Scaling of an Application Between Each of the I...
 
ITCamp 2017 - Raffaele Rialdi - Adopting .NET Core in Mainstream Projects
ITCamp 2017 - Raffaele Rialdi - Adopting .NET Core in Mainstream ProjectsITCamp 2017 - Raffaele Rialdi - Adopting .NET Core in Mainstream Projects
ITCamp 2017 - Raffaele Rialdi - Adopting .NET Core in Mainstream Projects
 
ROS ROS
ROS ROSROS ROS
ROS ROS
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
 
1. RINA motivation - TF Workshop
1. RINA motivation - TF Workshop1. RINA motivation - TF Workshop
1. RINA motivation - TF Workshop
 
RubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on RailsRubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on Rails
 

Recently uploaded

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?Watsoo Telematics
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 

Recently uploaded (20)

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 

ROS - An open source platform for robotics software developers (lecture).pdf

  • 1. ROS: An open source platform for robotics software developers Amine BENDAHMANE 02 April 2021
  • 2. Summary 2 1. What is ROS? 2. How ROS works? 3. Why to use ROS? 4. ROS2 5. Requirements to use ROS 6. Examples (moving a robot using ROS & python)
  • 3. Context: Why I’m talking about this? 3 I pursued a multi-disciplinary career: • Computer Science degree from USTO-MB university • Worked as Web Developer • Studied Electronics for ~2 years (actually 1.5 years!) • Pursuing a PhD degree in Artificial Intelligence & Robotics • Teaching programming, robotics, and AI for several years
  • 4. Context: What does robotics software do? 4 Collect data from sensors Extract information Send orders to actuators Sense-Think-Act paradigm
  • 5. 1. What is ROS? 5 ROS is not: Robot Operating System
  • 6. 1. What is ROS? 6 ROS is not: • An operating system Robot Operating System
  • 7. 1. What is ROS? 7 ROS is not: • An operating system • A library Robot Operating System
  • 8. 1. What is ROS? 8 ROS is not: • An operating system • A library • A simulator Robot Operating System
  • 9. 1. What is ROS? 9 ROS is not: • An operating system • A library • A simulator • An AI framework Robot Operating System
  • 10. 1. What is ROS? 10 ROS is: • A middleware Operating System (OS) Robot Hardware ROS Ecosystem User Software
  • 11. 1. What is ROS? 11 ROS is: • A middleware • A distributed platform
  • 12. 1. What is ROS? 12 ROS is: • A middleware • A distributed platform • A set of libraires and tools Visualization Simulation Messaging Debugging Packaging Logging Navigation, Mapping, Path Planning…
  • 13. 1. What is ROS? 13 ROS is: • A middleware • A distributed platform • A set of libraires and tools • Open Source (BSD license)
  • 14. 2. How ROS works?
  • 15. 15 Laser Node Camera Node Node Node Other nodes Motors Node Battery Node 2. How ROS works?
  • 16. 16 Laser Topic Laser Node Camera Node Publish Node Subscribe Node Other nodes Motors Node Battery Node 2. How ROS works?
  • 17. 17 Laser Topic Laser Node Camera Node Publish Node Subscribe Node Other nodes Motors Node Battery Node 2. How ROS works? Service
  • 18. 2. How ROS works? 18 Topics allow continuous asynchronous communication
  • 19. 2. How ROS works? 19 Services allow one-time synchronous communication
  • 20. 2. How ROS works? 20 The core concepts of ROS are: • Nodes • Topics • Services • Packages • Messages • Other (actions, parameters, launch files, nodelets…)
  • 22. 3. Why ROS? 22 ROS abstracts the Hardware (motors, sensors…) • Example: When you want to move the motors, just send a velocity message to the corresponding topic. The same code works on different robots
  • 23. 3. Why ROS? 23 ROS takes care of network layer • We don’t need to think about RPC, TCP/UDP, Socket…
  • 24. 24 Designed to increase reusability • With a set of libraries for path planning, mapping, visualization… 3. Why ROS?
  • 25. 25 Language independent communication • A node can run in python and another in C++, with smooth communication 3. Why ROS? Topic Node 1 (C++) Publisher Subscriber Node 2 (python)
  • 26. 26 • Fast prototyping using simulators • Easy transferring from simulated to real world robots 3. Why ROS?
  • 27. 27 • Handles transforms between coordinate frames 3. Why ROS?
  • 28. 28 3. Why ROS? • Visualization and debugging tools
  • 30. 4. Why ROS 2? 30
  • 31. 31 • Fully distributed (no ROS master) • Allows real time programming • Supports Linux, Windows, MacOS & RTOS • Supports python >=3.5 & C++11/14 (C++17 soon) • Allows multiple nodes in the same process • Python & C++ APIs has the same base API • …(more) 4. Why ROS 2?
  • 32. 32 4. Why ROS 2? ROS1 & ROS2 are evolving together: • The last distribution of ROS1 (Noetic Ninjemys) will still be supported until May 2025
  • 33. 33 4. Why ROS 2? Should I switch to ROS 2 now? • 80% of ROS packages are based on ROS 1 (as of January 2021) https://metrics.ros.org/packages_rosdistro.html • Stick to ROS 1 if you have legacy code or a large ROS 1 code base already on production (do the transition gradually)
  • 34. 34 4. Why ROS 2? • Most of the packages are based on distributions ≤ melodic • It means most packages are based on C++03 or python 2.7
  • 35. 35 You can use both versions at the same time: • A node in ROS 1 can communicate with a node in ROS2 through ROS1_bridge package • Requires more CPU and RAM 4. Why ROS 2?
  • 36. 5. Requirements to use ROS?
  • 37. 5. Requirements to use ROS 37 You need to know: • Basic Linux commands • Basic programming in Python or C++ • Basic knowledge about robot hardware (what’s a sensor, type of sensors, what’s an actuator…) • More skills depending on what you want to do (kinematics, geometry, objects-oriented programming…)
  • 39. 6. Examples 39 /cmd_vel Our program Publisher Subscriber Topic Objective: • create a ROS node to move the robot forward Velocity commands: (Moving forward => linear velocity)
  • 40. 6. Examples 40 import rospy, time from geometry_msgs.msg import Twist rospy.init_node('robot_mover') # initialize ROS node pub = rospy.Publisher('cmd_vel', Twist) # create a topic publisher to control the motors twist = Twist() # create a Twist message to send velocity commands twist.linear.x = 0.2 # set linear velocity to 20% of max motor’s speed moving_time = 0 t0 = time.time() while moving_time < 3: # repeat the following actions for 3 seconds pub.publish(twist) # publish to the topic (execute the velocity command) moving_time = time.time() - t0 twist.linear.x = 0 # set linear velocity to 0 (to stop the motors) pub.publish(twist) # publish the command
  • 41. 6. Examples 41 Executing the same code on simulation and real robot: Testing on P3DX at LARESI laboratory, USTO-MB Testing on Turtlebot3 Gazebo simulation
  • 43. 7. Conclusion 43 • ROS is an open-source middleware for robotics applications • It is widely used in research & industry • It abstracts the hardware and network layers • It increases reusability, and allows easy transfer from simulation to real robots • ROS 1 & ROS 2 are evolving together until 2025
  • 45. Figures references Page 11: https://www.slideshare.net/pibgeus/21-distributed-architecture- deploymentinstrospection Page 18: https://docs.ros.org/en/foxy/Tutorials/Topics/Understanding-ROS2-Topics.html Page 19: https://docs.ros.org/en/foxy/Tutorials/Services/Understanding-ROS2-Services.html Page 22: https://slideshare.net/takasehideki/ros-and-mros-how-to-accelerate-the-development- of-robot-systems-and-integrate-embedded-devices Page 23: “Message Encryption in Robot Operating System: Collateral Effects of Hardening Mobile Robots”, Rodríguez Lera et al., Frontiers in ICT 5, 2018 Page 24: https://answers.ros.org/question/262417/amcl-not-localizing-in-pre-built-map Page 26: (1) https://docs.fetchrobotics.com/gazebo.html (2) https://shuzhiduo.com/A/obzbYBW1dE Page 27: (1) http://library.isr.ist.utl.pt/docs/roswiki/nao_description.html (2) “Singularity Avoidance Control of a Non-Holonomic Mobile Manipulator for Intuitive Hand Guidance”, Weyrer et al., Robotics 8(1):14, 2019 Page 28: http://fontysarcr.blogspot.com/2016/06/progress-with-multi-robot-exploration.html Page 30: “Exploring the performance of ROS2”, EMSOFT ‘16, Maruyama et al., 2016 Page 34: https://metrics.ros.org/packages_rosdistro.html Page 35: https://github.com/m-yuya/ros1_evaluation/tree/master/evaluation