robot operating system tutorial -...

12
Robot Operating System Tutorial David Meger University of British Columbia CRV 2010 – Tutorial Day May 30th, 2010

Upload: others

Post on 07-Oct-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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

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

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

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
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

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

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

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

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

Questions