![Page 1: Robot Operating System Tutorial - UPV/EHUlsi.vc.ehu.es/pablogn/investig/ROS/meger_ros_tutorial_slides.pdf · Robot Operating System Tutorial David Meger University of British Columbia](https://reader035.vdocuments.us/reader035/viewer/2022071213/60351fe274608409c96f2321/html5/thumbnails/1.jpg)
Robot Operating System Tutorial
David MegerUniversity of British Columbia
CRV 2010 – Tutorial DayMay 30th, 2010
![Page 2: Robot Operating System Tutorial - UPV/EHUlsi.vc.ehu.es/pablogn/investig/ROS/meger_ros_tutorial_slides.pdf · Robot Operating System Tutorial David Meger University of British Columbia](https://reader035.vdocuments.us/reader035/viewer/2022071213/60351fe274608409c96f2321/html5/thumbnails/2.jpg)
Introduction
![Page 3: Robot Operating System Tutorial - UPV/EHUlsi.vc.ehu.es/pablogn/investig/ROS/meger_ros_tutorial_slides.pdf · Robot Operating System Tutorial David Meger University of British Columbia](https://reader035.vdocuments.us/reader035/viewer/2022071213/60351fe274608409c96f2321/html5/thumbnails/3.jpg)
What is ROS?
● Short: ● A *really* useful collection of software targeted exactly to help those
researching perception, control, and modeling
● Long:● An Open-source, meta-operating system for your robot● Includes hardware abstraction, low-level device control, implementation of
commonly-used functionality, message-passing between processes, and package management
● Also provides tools and libraries for obtaining, building, writing, and running code across multiple computers
● Examples:● (milestone 2 movie)● (towel folding movie)
![Page 4: Robot Operating System Tutorial - UPV/EHUlsi.vc.ehu.es/pablogn/investig/ROS/meger_ros_tutorial_slides.pdf · Robot Operating System Tutorial David Meger University of British Columbia](https://reader035.vdocuments.us/reader035/viewer/2022071213/60351fe274608409c96f2321/html5/thumbnails/4.jpg)
ROS Components (core)
● Middleware● Inter-process communication API● Integration of C/C++, Python, Octave, Java, Lisp● Standardized packaging and build environment
● Debugging and visualization tools
● Open-source implementation of standard robot applications● Robot Control (Player/Stage)● Motion planning (mobile robots and manipulators)● Localization and Mapping (Gmapping, EKF and AMCL)● Computer Vision (OpenCV)● Processing 3D information from lasers, stereo, etc...
![Page 5: Robot Operating System Tutorial - UPV/EHUlsi.vc.ehu.es/pablogn/investig/ROS/meger_ros_tutorial_slides.pdf · Robot Operating System Tutorial David Meger University of British Columbia](https://reader035.vdocuments.us/reader035/viewer/2022071213/60351fe274608409c96f2321/html5/thumbnails/5.jpg)
ROS Components (core)
● (Curious George mapping video)
![Page 6: Robot Operating System Tutorial - UPV/EHUlsi.vc.ehu.es/pablogn/investig/ROS/meger_ros_tutorial_slides.pdf · Robot Operating System Tutorial David Meger University of British Columbia](https://reader035.vdocuments.us/reader035/viewer/2022071213/60351fe274608409c96f2321/html5/thumbnails/6.jpg)
ROS Components (community)
● All institutions using ROS are encouraged to post their application code (and many do!)● CMU, MIT, Stanford, Berkeley, Munich, Bosch, Tokyo,
Georgia Tech, Washington, Leuven, all heavily involved
● Improving the “scientific-ness” of robotics research:● ICRA 2010 include released version of ROS code that was
used to produce their results for repeatability● PR2 beta program has provided 11 institutions with identical
robots / sensors
![Page 7: Robot Operating System Tutorial - UPV/EHUlsi.vc.ehu.es/pablogn/investig/ROS/meger_ros_tutorial_slides.pdf · Robot Operating System Tutorial David Meger University of British Columbia](https://reader035.vdocuments.us/reader035/viewer/2022071213/60351fe274608409c96f2321/html5/thumbnails/7.jpg)
![Page 8: Robot Operating System Tutorial - UPV/EHUlsi.vc.ehu.es/pablogn/investig/ROS/meger_ros_tutorial_slides.pdf · Robot Operating System Tutorial David Meger University of British Columbia](https://reader035.vdocuments.us/reader035/viewer/2022071213/60351fe274608409c96f2321/html5/thumbnails/8.jpg)
Programming ROS - Basics
● Many processes (nodes) communicate via specified message types:● Images● Point Clouds● Laser scans● User specified
● Synchronization using one of 3 specified methods:● Topics (asynchronous publish/subscribe)● Services (synchronous)● Actions (asynchronous with feedback monitoring)
● (usb camera driver example)
● (canon camera driver example... if my luggage arrives)
![Page 9: Robot Operating System Tutorial - UPV/EHUlsi.vc.ehu.es/pablogn/investig/ROS/meger_ros_tutorial_slides.pdf · Robot Operating System Tutorial David Meger University of British Columbia](https://reader035.vdocuments.us/reader035/viewer/2022071213/60351fe274608409c96f2321/html5/thumbnails/9.jpg)
Helpful Commands
● (rostopic {list,echo,info})● (rosservice {list,call})● (rosmsg show)● (rxgraph)● (rviz)
![Page 10: Robot Operating System Tutorial - UPV/EHUlsi.vc.ehu.es/pablogn/investig/ROS/meger_ros_tutorial_slides.pdf · Robot Operating System Tutorial David Meger University of British Columbia](https://reader035.vdocuments.us/reader035/viewer/2022071213/60351fe274608409c96f2321/html5/thumbnails/10.jpg)
ROS for CV
● OpenCV is highly integrated via cv_bridge● ROS Image/CameraInfo types compatible with
all tools● Stores geometric information for the camera via tf
library – excellent for 3D vision● Robust and accurate calibration routines included● (live image example)
![Page 11: Robot Operating System Tutorial - UPV/EHUlsi.vc.ehu.es/pablogn/investig/ROS/meger_ros_tutorial_slides.pdf · Robot Operating System Tutorial David Meger University of British Columbia](https://reader035.vdocuments.us/reader035/viewer/2022071213/60351fe274608409c96f2321/html5/thumbnails/11.jpg)
For more info...
● www.ros.org For many many good tutorials and complete ROS API documentation
● Google “Curious George UBC” to find the numerous object recognition approaches implemented at UBC are available as ROS packages:● SIFT [Lowe IJVC 2004]● Deformable Parts Model [Felzenszwalb et al CVPR 2007]● Contour matching
● See poster tomorrow!
![Page 12: Robot Operating System Tutorial - UPV/EHUlsi.vc.ehu.es/pablogn/investig/ROS/meger_ros_tutorial_slides.pdf · Robot Operating System Tutorial David Meger University of British Columbia](https://reader035.vdocuments.us/reader035/viewer/2022071213/60351fe274608409c96f2321/html5/thumbnails/12.jpg)
Questions