SlideShare a Scribd company logo
LAB LECTURE 1:
INTRODUCTION TO ROS
INSTRUCTOR:
GIANNI A. DI CARO
16-311-Q INTRODUCTION TO ROBOTICS
2
PROBLEM(S) IN ROBOTICS DEVELOPMENT
• Lack of standards
• Little code reusability
• Keeping reinventing (or rewriting) device drivers,
access to robot’s interfaces, management of on-
board processes, inter-process communication
protocols, …
• Keeping re-coding standard algorithms
• New robot in the lab (or in the factory) 
start re-coding (mostly) from scratch
In Robotics, before ROS
ROBOT OPERATING SYSTEM (ROS)
3
http://www.ros.org
WHAT IS ROS?
 ROS is an open-source robot operating system
 A set of software libraries and tools that help you build
robot applications that work across a wide variety of
robotic platforms
 Originally developed in 2007 at the Stanford Artificial
Intelligence Laboratory and development continued at
Willow Garage
 Since 2013 managed by OSRF (Open Source
Robotics Foundation)
4
Note: Some of the following slides are adapted from
Roi Yehoshua
ROS MAIN FEATURES
ROS has two "sides"
 The operating system side, which provides standard
operating system services such as:
o hardware abstraction
o low-level device control
o implementation of commonly used functionality
o message-passing between processes
o package management
 A suite of user contributed packages that implement
common robot functionality such as SLAM, planning,
perception, vision, manipulation, etc.
5
ROS MAIN FEATURES
6
ROS PHILOSOPHY
 Peer to Peer
o ROS systems consist of many small programs (nodes) which
connect to each other and continuously exchange messages
 Tools-based
o There are many small, generic programs that perform tasks such as
visualization, logging, plotting data streams, etc.
 Multi-Lingual
o ROS software modules can be written in any language for which a
client library has been written. Currently client libraries exist for C++,
Python, LISP, Java, JavaScript, MATLAB, Ruby, and more.
 Thin
o The ROS conventions encourage contributors to create stand-alone
libraries/packages and then wrap those libraries so they send and
receive messages to/from other ROS modules.
 Free & open source, community-based, repositories
7
ROS WIKI
 http://wiki.ros.org/
8
SOME ROBOTS USING ROS ( > 125)
http://wiki.ros.org/Robots
9
ROS CORE CONCEPTS
Nodes
Messages and Topics
Services
Actions
ROS Master
Parameters
Packages and Stacks
10
ROS NODES
 Single-purposed executable programs
oe.g. sensor driver(s), actuator driver(s),
map building, planner, UI, etc.
 Individually compiled, executed, and managed
 Nodes are written using a ROS client library
o roscpp – C++ client library
o rospy – python client library
 Nodes can publish or subscribe to a Topic
 Nodes can also provide or use a Service or
an Action
11
ROS NODES
12
ROS TOPICS AND ROS MESSAGES
 Topic: named stream of messages with a defined type
o Data from a range-finder might be sent on a topic
called scan, with a message of type LaserScan
 Nodes communicate with each other by
publishing messages to topics
 Publish/Subscribe model:
1-to-N broadcasting
13
 Messages: Strictly-typed data structures for inter-
node communication
o geometry_msgs/Twist is used to express
velocity commands: Vector3 linear
Vector3 angular
ROS TOPICS AND ROS MESSAGES
14
Vector3 linear
Vector3 angular
float64 x
float64 y
float64 z
geometry_msgs/Twist
Vector3
ROS SERVICES
 Synchronous inter-node transactions
(blocking RPC): ask for something and wait for it
 Service/Client model: 1-to-1 request-response
 Service roles:
o carry out remote computation
o trigger functionality / behavior
o map_server/static_map – retrieves the
current grid map used for navigation
15
ROS MASTER
 Provides connection information to nodes so that they can transmit
messages to each other
o When activated, every node connects to a specified master to
register details of the message streams they publish, services
and actions that they provide, and streams, services, an
actions to which that they to subscribe
o When a new node appears, the master provides it with the
information that it needs to form a direct peer-to-peer TCP-
based connection with other nodes publishing and subscribing
to the same message topics and services
16
ROS MASTER
17
ROS MASTER
 We have two nodes: a Camera node and an
Image_viewer node
Typically the camera node would start first
notifying the master that it wants to publish
images on the topic "images":
18
ROS MASTER
 Image_viewer wants to subscribe to the topic
"images" to get and display images obtained with
the camera:
19
ROS MASTER
 Now that the topic "images" has both a publisher
and a subscriber, the master node notifies Camera
and Image_viewer about each others existence, so
that they can start transferring images to one
another:
20
21
ROS MASTER
 The scenario can be made even more modular
by adding an Image processing node, from
which the Image viewer gets its data
PARAMETER SERVER
 A shared, multi-variate dictionary that is accessible via
network APIs
 Best used for static, non-binary data such as configuration
parameters
 Runs inside the ROS master
22
ROS BAGS
 Bags are the primary mechanism in ROS for
data logging
 Bags subscribe to one or more ROS topics,
and store the serialized message data in a file
as it is received.
 Bag files can also be played back in ROS to
the same topics they were recorded from, or
even remapped to new topics.
23
ROS COMPUTATION GRAPH LEVEL
24
ROS SUPPORTED PLATFORMS
 ROS is currently supported only on Ubuntu
o other variants such as Windows, Mac OS X, and
Android are considered experimental
 Current ROS Kinetic Kame runs on Ubuntu 16.04
(Xenial) and will support Ubuntu 15.10 (Willy)
25
ROS ENVIRONMENT
 ROS is fully integrated in the Linux environment: the
rosbash package contains useful bash functions and
adds tab-completion to a large number of ROS utilities
 After installing, ROS, setup.*sh files in '/opt/ros/<distro>/',
need to be sourced to start rosbash:
 This command needs to be run on every new shell to
have access to the ros commands: an easy way to do it
is to add the line to the bash startup file (~/.bashrc)
$ source /opt/ros/indigo/setup.bash
26
ROS PACKAGES
 Software in ROS is organized in packages.
 A package contains one or more nodes,
documentation, and provides a ROS interface
 Most of ROS packages are hosted in GitHub
27
ROS PACKAGE SYSTEM
28
29
ROS PACKAGE AND CATKIN WORKSPACE
 Packages are the most atomic unit of build and the
unit of release
 A package contains the source files for one node or
more and configuration files
 A ROS package is a directory inside a catkin
workspace that has a package.xml file in it
 A catkin workspace is a set of directories in which a
set of related ROS code/packages live (catkin ~
ROS build system: CMake + Python scripts)
 It’s possible to have multiple workspaces, but work
can performed on only one-at-a-time
CATKIN WORKSPACE LAYOUT
30
CATKIN WORKSPACE FOLDERS
31
 Source space: workspace_folder/src
 Build space: workspace_folder/build
 Development space: workspace_folder/devel
 Install space: workspace_folder/install
ROS PACKAGE FILES
 Source files implement nodes, can be written in multiple languages
 Nodes are launched individually or in groups, using launch files
32
 Layout of the src/my_package folder in a catkin workspace:
ROS FILE SYSTEM LEVEL
33
ROS COMMUNITY LEVEL
34

More Related Content

What's hot

Security for io t apr 29th mentor embedded hangout
Security for io t apr 29th mentor embedded hangoutSecurity for io t apr 29th mentor embedded hangout
Security for io t apr 29th mentor embedded hangout
mentoresd
 
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
eProsima
 
An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-Industrial
Clay Flannigan
 
PART-2 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
PART-2 : Mastering RTOS FreeRTOS and STM32Fx with DebuggingPART-2 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
PART-2 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
FastBit Embedded Brain Academy
 
Robot Control using ROS: an Introduction
Robot Control using ROS: an IntroductionRobot Control using ROS: an Introduction
Robot Control using ROS: an Introduction
Jago Robotika Indonesia
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
eShikshak
 
ROS+GAZEBO
ROS+GAZEBOROS+GAZEBO
ROS+GAZEBO
icmike
 
Rasberry pi
 Rasberry pi Rasberry pi
Rasberry pi
GANESH GOVIND BHOR
 
ROBOTICS & DESIGN (Introduction of Robots) EEN-429
ROBOTICS & DESIGN (Introduction of Robots) EEN-429ROBOTICS & DESIGN (Introduction of Robots) EEN-429
ROBOTICS & DESIGN (Introduction of Robots) EEN-429
foyez ahammad
 
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
Sergey Matyunin
 
Embedded systems ppt
Embedded systems pptEmbedded systems ppt
Embedded systems ppt
Bhavana Sharma
 
Space robots
Space robotsSpace robots
Space robots
harini rai
 
MOBILE ROBOT NAVIGATION SYSTEM
MOBILE ROBOT NAVIGATION SYSTEMMOBILE ROBOT NAVIGATION SYSTEM
MOBILE ROBOT NAVIGATION SYSTEM
narendraanath
 
Robotics.pptx
Robotics.pptxRobotics.pptx
Robotics.pptx
ssuser80dd96
 
BeRTOS: Free Embedded RTOS
BeRTOS: Free Embedded RTOSBeRTOS: Free Embedded RTOS
BeRTOS: Free Embedded RTOS
Develer S.r.l.
 
Humanoid robot
Humanoid robotHumanoid robot
Humanoid robot
Hetram Prajapati
 
AUTONOMOUS MAZE SOLVING ROBOT
AUTONOMOUS MAZE SOLVING ROBOTAUTONOMOUS MAZE SOLVING ROBOT
AUTONOMOUS MAZE SOLVING ROBOT
Musfiqur Rahman
 
Vxworks
VxworksVxworks
Arm cortex R(real time)processor series
Arm cortex R(real time)processor series Arm cortex R(real time)processor series
Arm cortex R(real time)processor series
Ronak047
 
Hands on OpenCL
Hands on OpenCLHands on OpenCL
Hands on OpenCL
Vladimir Starostenkov
 

What's hot (20)

Security for io t apr 29th mentor embedded hangout
Security for io t apr 29th mentor embedded hangoutSecurity for io t apr 29th mentor embedded hangout
Security for io t apr 29th mentor embedded hangout
 
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
 
An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-Industrial
 
PART-2 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
PART-2 : Mastering RTOS FreeRTOS and STM32Fx with DebuggingPART-2 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
PART-2 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
 
Robot Control using ROS: an Introduction
Robot Control using ROS: an IntroductionRobot Control using ROS: an Introduction
Robot Control using ROS: an Introduction
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
ROS+GAZEBO
ROS+GAZEBOROS+GAZEBO
ROS+GAZEBO
 
Rasberry pi
 Rasberry pi Rasberry pi
Rasberry pi
 
ROBOTICS & DESIGN (Introduction of Robots) EEN-429
ROBOTICS & DESIGN (Introduction of Robots) EEN-429ROBOTICS & DESIGN (Introduction of Robots) EEN-429
ROBOTICS & DESIGN (Introduction of Robots) EEN-429
 
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
 
Embedded systems ppt
Embedded systems pptEmbedded systems ppt
Embedded systems ppt
 
Space robots
Space robotsSpace robots
Space robots
 
MOBILE ROBOT NAVIGATION SYSTEM
MOBILE ROBOT NAVIGATION SYSTEMMOBILE ROBOT NAVIGATION SYSTEM
MOBILE ROBOT NAVIGATION SYSTEM
 
Robotics.pptx
Robotics.pptxRobotics.pptx
Robotics.pptx
 
BeRTOS: Free Embedded RTOS
BeRTOS: Free Embedded RTOSBeRTOS: Free Embedded RTOS
BeRTOS: Free Embedded RTOS
 
Humanoid robot
Humanoid robotHumanoid robot
Humanoid robot
 
AUTONOMOUS MAZE SOLVING ROBOT
AUTONOMOUS MAZE SOLVING ROBOTAUTONOMOUS MAZE SOLVING ROBOT
AUTONOMOUS MAZE SOLVING ROBOT
 
Vxworks
VxworksVxworks
Vxworks
 
Arm cortex R(real time)processor series
Arm cortex R(real time)processor series Arm cortex R(real time)processor series
Arm cortex R(real time)processor series
 
Hands on OpenCL
Hands on OpenCLHands on OpenCL
Hands on OpenCL
 

Similar to Lab-1-ROS-Intro.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 Elixir
Hideki Takase
 
ORTC Library - Introduction
ORTC Library - IntroductionORTC Library - Introduction
ORTC Library - Introduction
Erik Lagerway
 
Devoxx 2016: A Developer's Guide to OCI and runC
Devoxx 2016: A Developer's Guide to OCI and runCDevoxx 2016: A Developer's Guide to OCI and runC
Devoxx 2016: A Developer's Guide to OCI and runC
Phil Estes
 
Ros Kd
Ros KdRos Kd
Ros Kd
Kashif Dayo
 
ROS (Robot Operating System) Comparison
ROS (Robot Operating System) ComparisonROS (Robot Operating System) Comparison
ROS (Robot Operating System) Comparison
Engr Nayab Bukhari Syed
 
6202942
62029426202942
Containers for Lawyers Richard Fontana
Containers for Lawyers  Richard FontanaContainers for Lawyers  Richard Fontana
Containers for Lawyers Richard Fontana
Black Duck by Synopsys
 
Robot Operating Systems (Ros) Overview &amp; (1)
Robot Operating Systems (Ros) Overview &amp; (1)Robot Operating Systems (Ros) Overview &amp; (1)
Robot Operating Systems (Ros) Overview &amp; (1)
Piyush Chand
 
Linux internals v4
Linux internals v4Linux internals v4
Linux internals v4
Liran Ben Haim
 
IPMI is dead, Long live Redfish
IPMI is dead, Long live RedfishIPMI is dead, Long live Redfish
IPMI is dead, Long live Redfish
Bruno Cornec
 
ROS and Unity.pdf
ROS and Unity.pdfROS and Unity.pdf
ROS and Unity.pdf
FauziAbdurrohim
 
ROS ROS
ROS ROSROS ROS
libdash 2.0
libdash 2.0libdash 2.0
libdash 2.0
Christopher Mueller
 
Copmuter Languages
Copmuter LanguagesCopmuter Languages
Copmuter Languages
actanimation
 
Communication between matlab ros toolbox and ros network
Communication between matlab ros toolbox and ros networkCommunication between matlab ros toolbox and ros network
Communication between matlab ros toolbox and ros network
MuaHoaTieu
 
Building robots with Robot Operating System (ROS)
Building robots with Robot Operating System (ROS)Building robots with Robot Operating System (ROS)
Building robots with Robot Operating System (ROS)
fsxflyer789Productio
 
Socket Programming In Python
Socket Programming In PythonSocket Programming In Python
Socket Programming In Python
didip
 
Linux Containers and Docker SHARE.ORG Seattle 2015
Linux Containers and Docker SHARE.ORG Seattle 2015Linux Containers and Docker SHARE.ORG Seattle 2015
Linux Containers and Docker SHARE.ORG Seattle 2015
Filipe Miranda
 
Socket programming-in-python
Socket programming-in-pythonSocket programming-in-python
Socket programming-in-python
Yuvaraja Ravi
 
runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...
Docker, Inc.
 

Similar to Lab-1-ROS-Intro.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
 
ORTC Library - Introduction
ORTC Library - IntroductionORTC Library - Introduction
ORTC Library - Introduction
 
Devoxx 2016: A Developer's Guide to OCI and runC
Devoxx 2016: A Developer's Guide to OCI and runCDevoxx 2016: A Developer's Guide to OCI and runC
Devoxx 2016: A Developer's Guide to OCI and runC
 
Ros Kd
Ros KdRos Kd
Ros Kd
 
ROS (Robot Operating System) Comparison
ROS (Robot Operating System) ComparisonROS (Robot Operating System) Comparison
ROS (Robot Operating System) Comparison
 
6202942
62029426202942
6202942
 
Containers for Lawyers Richard Fontana
Containers for Lawyers  Richard FontanaContainers for Lawyers  Richard Fontana
Containers for Lawyers Richard Fontana
 
Robot Operating Systems (Ros) Overview &amp; (1)
Robot Operating Systems (Ros) Overview &amp; (1)Robot Operating Systems (Ros) Overview &amp; (1)
Robot Operating Systems (Ros) Overview &amp; (1)
 
Linux internals v4
Linux internals v4Linux internals v4
Linux internals v4
 
IPMI is dead, Long live Redfish
IPMI is dead, Long live RedfishIPMI is dead, Long live Redfish
IPMI is dead, Long live Redfish
 
ROS and Unity.pdf
ROS and Unity.pdfROS and Unity.pdf
ROS and Unity.pdf
 
ROS ROS
ROS ROSROS ROS
ROS ROS
 
libdash 2.0
libdash 2.0libdash 2.0
libdash 2.0
 
Copmuter Languages
Copmuter LanguagesCopmuter Languages
Copmuter Languages
 
Communication between matlab ros toolbox and ros network
Communication between matlab ros toolbox and ros networkCommunication between matlab ros toolbox and ros network
Communication between matlab ros toolbox and ros network
 
Building robots with Robot Operating System (ROS)
Building robots with Robot Operating System (ROS)Building robots with Robot Operating System (ROS)
Building robots with Robot Operating System (ROS)
 
Socket Programming In Python
Socket Programming In PythonSocket Programming In Python
Socket Programming In Python
 
Linux Containers and Docker SHARE.ORG Seattle 2015
Linux Containers and Docker SHARE.ORG Seattle 2015Linux Containers and Docker SHARE.ORG Seattle 2015
Linux Containers and Docker SHARE.ORG Seattle 2015
 
Socket programming-in-python
Socket programming-in-pythonSocket programming-in-python
Socket programming-in-python
 
runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...
 

Recently uploaded

KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
Victor Morales
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
Las Vegas Warehouse
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
kandramariana6
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
IJECEIAES
 
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
insn4465
 
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
171ticu
 
basic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdfbasic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdf
NidhalKahouli2
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
jpsjournal1
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
IJECEIAES
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
IJECEIAES
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
MDSABBIROJJAMANPAYEL
 
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEMTIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
HODECEDSIET
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
VICTOR MAESTRE RAMIREZ
 
New techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdfNew techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdf
wisnuprabawa3
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
Dr Ramhari Poudyal
 
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.pptUnit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
KrishnaveniKrishnara1
 
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball playEric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
enizeyimana36
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
Yasser Mahgoub
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
rpskprasana
 
Recycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part IIRecycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part II
Aditya Rajan Patra
 

Recently uploaded (20)

KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
 
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
 
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
 
basic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdfbasic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdf
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
 
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEMTIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
 
New techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdfNew techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdf
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
 
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.pptUnit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
 
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball playEric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
 
Recycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part IIRecycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part II
 

Lab-1-ROS-Intro.pdf

  • 1. LAB LECTURE 1: INTRODUCTION TO ROS INSTRUCTOR: GIANNI A. DI CARO 16-311-Q INTRODUCTION TO ROBOTICS
  • 2. 2 PROBLEM(S) IN ROBOTICS DEVELOPMENT • Lack of standards • Little code reusability • Keeping reinventing (or rewriting) device drivers, access to robot’s interfaces, management of on- board processes, inter-process communication protocols, … • Keeping re-coding standard algorithms • New robot in the lab (or in the factory)  start re-coding (mostly) from scratch In Robotics, before ROS
  • 3. ROBOT OPERATING SYSTEM (ROS) 3 http://www.ros.org
  • 4. WHAT IS ROS?  ROS is an open-source robot operating system  A set of software libraries and tools that help you build robot applications that work across a wide variety of robotic platforms  Originally developed in 2007 at the Stanford Artificial Intelligence Laboratory and development continued at Willow Garage  Since 2013 managed by OSRF (Open Source Robotics Foundation) 4 Note: Some of the following slides are adapted from Roi Yehoshua
  • 5. ROS MAIN FEATURES ROS has two "sides"  The operating system side, which provides standard operating system services such as: o hardware abstraction o low-level device control o implementation of commonly used functionality o message-passing between processes o package management  A suite of user contributed packages that implement common robot functionality such as SLAM, planning, perception, vision, manipulation, etc. 5
  • 7. ROS PHILOSOPHY  Peer to Peer o ROS systems consist of many small programs (nodes) which connect to each other and continuously exchange messages  Tools-based o There are many small, generic programs that perform tasks such as visualization, logging, plotting data streams, etc.  Multi-Lingual o ROS software modules can be written in any language for which a client library has been written. Currently client libraries exist for C++, Python, LISP, Java, JavaScript, MATLAB, Ruby, and more.  Thin o The ROS conventions encourage contributors to create stand-alone libraries/packages and then wrap those libraries so they send and receive messages to/from other ROS modules.  Free & open source, community-based, repositories 7
  • 9. SOME ROBOTS USING ROS ( > 125) http://wiki.ros.org/Robots 9
  • 10. ROS CORE CONCEPTS Nodes Messages and Topics Services Actions ROS Master Parameters Packages and Stacks 10
  • 11. ROS NODES  Single-purposed executable programs oe.g. sensor driver(s), actuator driver(s), map building, planner, UI, etc.  Individually compiled, executed, and managed  Nodes are written using a ROS client library o roscpp – C++ client library o rospy – python client library  Nodes can publish or subscribe to a Topic  Nodes can also provide or use a Service or an Action 11
  • 13. ROS TOPICS AND ROS MESSAGES  Topic: named stream of messages with a defined type o Data from a range-finder might be sent on a topic called scan, with a message of type LaserScan  Nodes communicate with each other by publishing messages to topics  Publish/Subscribe model: 1-to-N broadcasting 13  Messages: Strictly-typed data structures for inter- node communication o geometry_msgs/Twist is used to express velocity commands: Vector3 linear Vector3 angular
  • 14. ROS TOPICS AND ROS MESSAGES 14 Vector3 linear Vector3 angular float64 x float64 y float64 z geometry_msgs/Twist Vector3
  • 15. ROS SERVICES  Synchronous inter-node transactions (blocking RPC): ask for something and wait for it  Service/Client model: 1-to-1 request-response  Service roles: o carry out remote computation o trigger functionality / behavior o map_server/static_map – retrieves the current grid map used for navigation 15
  • 16. ROS MASTER  Provides connection information to nodes so that they can transmit messages to each other o When activated, every node connects to a specified master to register details of the message streams they publish, services and actions that they provide, and streams, services, an actions to which that they to subscribe o When a new node appears, the master provides it with the information that it needs to form a direct peer-to-peer TCP- based connection with other nodes publishing and subscribing to the same message topics and services 16
  • 18. ROS MASTER  We have two nodes: a Camera node and an Image_viewer node Typically the camera node would start first notifying the master that it wants to publish images on the topic "images": 18
  • 19. ROS MASTER  Image_viewer wants to subscribe to the topic "images" to get and display images obtained with the camera: 19
  • 20. ROS MASTER  Now that the topic "images" has both a publisher and a subscriber, the master node notifies Camera and Image_viewer about each others existence, so that they can start transferring images to one another: 20
  • 21. 21 ROS MASTER  The scenario can be made even more modular by adding an Image processing node, from which the Image viewer gets its data
  • 22. PARAMETER SERVER  A shared, multi-variate dictionary that is accessible via network APIs  Best used for static, non-binary data such as configuration parameters  Runs inside the ROS master 22
  • 23. ROS BAGS  Bags are the primary mechanism in ROS for data logging  Bags subscribe to one or more ROS topics, and store the serialized message data in a file as it is received.  Bag files can also be played back in ROS to the same topics they were recorded from, or even remapped to new topics. 23
  • 25. ROS SUPPORTED PLATFORMS  ROS is currently supported only on Ubuntu o other variants such as Windows, Mac OS X, and Android are considered experimental  Current ROS Kinetic Kame runs on Ubuntu 16.04 (Xenial) and will support Ubuntu 15.10 (Willy) 25
  • 26. ROS ENVIRONMENT  ROS is fully integrated in the Linux environment: the rosbash package contains useful bash functions and adds tab-completion to a large number of ROS utilities  After installing, ROS, setup.*sh files in '/opt/ros/<distro>/', need to be sourced to start rosbash:  This command needs to be run on every new shell to have access to the ros commands: an easy way to do it is to add the line to the bash startup file (~/.bashrc) $ source /opt/ros/indigo/setup.bash 26
  • 27. ROS PACKAGES  Software in ROS is organized in packages.  A package contains one or more nodes, documentation, and provides a ROS interface  Most of ROS packages are hosted in GitHub 27
  • 29. 29 ROS PACKAGE AND CATKIN WORKSPACE  Packages are the most atomic unit of build and the unit of release  A package contains the source files for one node or more and configuration files  A ROS package is a directory inside a catkin workspace that has a package.xml file in it  A catkin workspace is a set of directories in which a set of related ROS code/packages live (catkin ~ ROS build system: CMake + Python scripts)  It’s possible to have multiple workspaces, but work can performed on only one-at-a-time
  • 31. CATKIN WORKSPACE FOLDERS 31  Source space: workspace_folder/src  Build space: workspace_folder/build  Development space: workspace_folder/devel  Install space: workspace_folder/install
  • 32. ROS PACKAGE FILES  Source files implement nodes, can be written in multiple languages  Nodes are launched individually or in groups, using launch files 32  Layout of the src/my_package folder in a catkin workspace:
  • 33. ROS FILE SYSTEM LEVEL 33