ros_introduction_slides
TRANSCRIPT
-
8/7/2019 ROS_Introduction_Slides
1/16
ROS (Robot Operating
System)
An Introduction
Dr. Rainer Hessmer, February 2011
-
8/7/2019 ROS_Introduction_Slides
2/16
Hobby Robotics Evolution- very simplified :-)
Micro Controller Brain
Sumo
Line follower
Maze solver
Firefighting
...
Higher level logic benefits from PC
Magellan
Robot arm
... Higher level logic requires PC
LEAF
SLAM
from http://www-unix.oit.umass.edu/~blaylock/LegoRobotics/
-
8/7/2019 ROS_Introduction_Slides
3/16
But soon you hit a ceilingsince ...
You develop
Your own logging
You write your own messaging infrastructure
(protocols)Your own coordinate system transformations
Your own joystick driver
Your own basic navigation logic
Your own basic vision system
...
And you never catch up
-
8/7/2019 ROS_Introduction_Slides
4/16
Compare with PC Ecosystem
Standardized Layers
System software
abstracts hardware Applications leverage
other applications (e.g.database, web server)
and huge sets of libraries
Applications
System Software
Application Building Blocks
Hardware
-
8/7/2019 ROS_Introduction_Slides
5/16
ROS Open Source SystemSoftware for Robotics
Robotics Applications
ROS
Hardware(PR2, Texai, etc. & your own)
-
8/7/2019 ROS_Introduction_Slides
6/16
ROS
Headed up by Willow Garage(http://www.willowgarage.com)
Three years old(http://www.willowgarage.com/blog/2010/11/08/happy-3rd-anniversary-ros)
The software basis of Willow GaragesPR2
Exponential adoption
http://www.willowgarage.com/http://www.willowgarage.com/blog/2010/11/08/happy-3rd-anniversary-roshttp://www.willowgarage.com/blog/2010/11/08/happy-3rd-anniversary-roshttp://www.willowgarage.com/ -
8/7/2019 ROS_Introduction_Slides
7/16
So what is it?
A 'Meta' OS. Open Source!
Sits on top of Linux (preferably Ubuntu)
Windows implementation started(http://www.ros.org/wiki/cturtle/Installation/Windows)
Agent based
Message passing
Publish / Subscribe
Service (remote operation) invocation
Package Management
Name and Parameter Services
Programming Language Support
C++
Python
Lisp?
http://www.ros.org/wiki/cturtle/Installation/Windowshttp://www.ros.org/wiki/cturtle/Installation/Windows -
8/7/2019 ROS_Introduction_Slides
8/16
-
8/7/2019 ROS_Introduction_Slides
9/16
ROS Navigation Stack
fromhttp://www.ros.org/wiki/navigation/Tutorials/RobotSetup
-
8/7/2019 ROS_Introduction_Slides
10/16
Where is it used?
More than 50 robots use ROS(http://www.ros.org/wiki/Robots)
Including Hobby and Low-Cost PlatformsROS now runs on many lower-cost, hobby-friendly platforms. 2010 started offwith Andrew Harris providing ROS libraries for the Arduino and was quicklyfollowed by I Heart Robotics'sWowWee Rovio drivers. You can now useLego NXT robots with ROS as well asTaylor Veltrop's drivers for Roboard-equipped humanoids. Companies have also contributed: Vanadium Labsprovided ROS drivers for their ArbotiX line of robocontrollers.
The ROS iRobot Create/Roomba community has also expanded greatly this
year, with many institutions and individuals now providing drivers andlibraries: Brown's RLAB, CU Boulder's Correll Lab, Aptima, Stanford, OTL, andISR - University of Coimbra.
From:http://www.willowgarage.com/blog/2010/11/08/happy-3rd-anniversary-ros
http://www.ros.org/wiki/Robotshttp://www.ros.org/news/2010/01/arduino-and-cmucam3-support-for-ros.htmlhttp://iheartrobotics.com/http://www.ros.org/news/2010/03/rovio-driver-for-ros.htmlhttp://www.ros.org/news/2010/08/robots-using-ros-lego-nxt.htmlhttp://www.ros.org/news/2010/10/ros-repository-for-roboard-and-humanoids-now-available.htmlhttp://www.roboard.com/http://www.vanadiumlabs.com/ros.htmlhttp://code.google.com/p/vanadium-ros-pkg/http://www.ros.org/wiki/vanadium-ros-pkghttp://code.google.com/p/brown-ros-pkg/http://www.ros.org/wiki/prairiedoghttp://code.google.com/p/aptima-ros-pkghttp://www.ros.org/browse/details.php?name=icreatehttp://www.ros.org/wiki/otl-ros-pkghttp://code.google.com/p/isr-uc-ros-pkg/http://www.willowgarage.com/blog/2010/11/08/happy-3rd-anniversary-roshttp://www.willowgarage.com/blog/2010/11/08/happy-3rd-anniversary-roshttp://code.google.com/p/isr-uc-ros-pkg/http://www.ros.org/wiki/otl-ros-pkghttp://www.ros.org/browse/details.php?name=icreatehttp://code.google.com/p/aptima-ros-pkghttp://www.ros.org/wiki/prairiedoghttp://code.google.com/p/brown-ros-pkg/http://www.ros.org/wiki/vanadium-ros-pkghttp://code.google.com/p/vanadium-ros-pkg/http://www.vanadiumlabs.com/ros.htmlhttp://www.roboard.com/http://www.ros.org/news/2010/10/ros-repository-for-roboard-and-humanoids-now-available.htmlhttp://www.ros.org/news/2010/08/robots-using-ros-lego-nxt.htmlhttp://www.ros.org/news/2010/03/rovio-driver-for-ros.htmlhttp://iheartrobotics.com/http://www.ros.org/news/2010/01/arduino-and-cmucam3-support-for-ros.htmlhttp://www.ros.org/wiki/Robots -
8/7/2019 ROS_Introduction_Slides
11/16
Key Concepts
roscore: Name and Parameter server;singleton
Package: A virtual directory holding one or
more executables (nodes) Node: An agent communicating with ROS and
other nodes via
Topics (publish / subscribe) using typed messages
Services: Request / Response paradigm (think ofmethod or operation) via typed messages
-
8/7/2019 ROS_Introduction_Slides
12/16
-
8/7/2019 ROS_Introduction_Slides
13/16
Python ImplementationDemo
Source available at: http://code.google.com/p/drh-robotics-ros/
http://code.google.com/p/drh-robotics-ros/http://code.google.com/p/drh-robotics-ros/ -
8/7/2019 ROS_Introduction_Slides
14/16
Communication Graph
rxgraph
-
8/7/2019 ROS_Introduction_Slides
15/16
-
8/7/2019 ROS_Introduction_Slides
16/16
Questions?