Documente Academic
Documente Profesional
Documente Cultură
2/27/2012
2/27/2012
Image Message
Camera
Obstacle Detection
Laser Scanner
Map Building
Topic: /kinect/cloud
Hardware-Independent Software
Face Detection
Device-Specific Drivers
Image Message
Camera
Obstacle Detection
Laser Scanner
Obstacle
Map Building
Interface
6
2/27/2012
PR2
Roomba
Care-O-bot 3
Summary so Far
(1) Sequential Programming
Callbacks
(2) Complex, multifunction software
Separate processes that communicate through a
messaging interface
(3)Hardware-dependent software
Messaging interface helps avoid hardware
dependencies
ROS : Sets up this software structure for you.
8
2/27/2012
What is ROS?
Message Passing
Debugging tools
Visualization tools
Software Management (compiling, packaging)
Libraries
Hardware Abstraction for all of these items
Hardware Agnostic:
Peer-to-Peer
Tools-based
Multiple Languages
Lightweight: Only at the edges of your program
Free + Open Source
Good for large-scale research
10
2/27/2012
Outline
Introduction
3 Software problems
ROS Goals
ROS Design
Tools-Based
Multiple Languages
Lightweight
Peer-to-peer
Free + Open Source
11
Carnegie Mellon
Node 5
Node 4
Node 1
Laser Scanning
Node 2:
Map Building
Node 3:
Planning
Node 6
Node7
(C) File system Level: ROS Tools for managing source code,
build instructions, and message definitions.
12
2/27/2012
Tools-Based
ROS Community
Small Tools for:
Building ROS nodes
Carnegie
Mellon
Computation Graph
Viewing network topology
Monitoring network traffic
Not a single, monolithic program
Instead: lots of small processes
13
Multiple Languages
ROS Community
C++ Node :
Map Building
Python Node:
Laser Scanner
Carnegie
Mellon
Topic:
LaserData
Computation Graph
2/27/2012
Lightweight
ROS Community
Carnegie
Mellon
Computation Graph
15
Peer-To-Peer Messaging
ROS Community
Carnegie
Mellon
Computation Graph
2/27/2012
Messaging Demo
ROS Community
Kinect Driver
Carnegie
Mellon
/camera/rgb/points
Computation Graph
Plane
Segmentation
File system Level
Peer-To-Peer Messaging
Master: Lookup information, think DNS
ROS Community
Carnegie
Mellon
Computation Graph
18
2/27/2012
Computation Graph
19
Outline
Introduction
3 Software problems
ROS Goals
ROS Design
Tools-Based
Multiple Languages
Lightweight
Peer-to-peer
Free + Open Source
Developing Software with ROS
Debugging
Visualizing
Transforming Coordinate Frames
Packages : ROS and External
Perception
Manipulation
Navigation
20
10
2/27/2012
Kinect Driver
Object
Recognition
Laser Scanner
Logger
Playback
Logger Playback
Object
Recognition
21
rostopic echo
[topic name] prints messages to console
rostopic list
prints active topics
(several more commands)
rxplot : Plot data from one or more ROS topic fields using matplotlib.
rxplot /turtle1/pose/x,/turtle1/pose/y graph data from 2 topics in 1 plot
11
2/27/2012
roslaunch :
23
DEMO
24
12
2/27/2012
25
Outline
Introduction
3 Software problems
ROS Goals
ROS Design
Tools-Based
Multiple Languages
Lightweight
Peer-to-peer
Free + Open Source
Developing Software with ROS
Debugging
Visualizing
Transforming Coordinate Frames
Packages : ROS and External
Perception
Manipulation
Navigation
26
13
2/27/2012
Packages: Perception
Point Cloud Library (PCL)
OpenCV
Kinect / OpenNI :
27
ROSs Design:
Asynchronous callbacks
Complexity management
Hardware agnostic
Debugging, Visualizing
Packages
28
14
2/27/2012
References:
29
15