The Robot Operating System
The Robot Operating System
28 January 2013
Learning ROS
Learning ROS
Day 1 Intro
Day 1
Day 2 Practising
Presenter: Murilo F. M.
An Introduction to ROS
1
What is ROS?
Getting started
ROS filesystem
Case Study 1
Case Study 2
Hackathon
Day 1 Intro
Day 2 Practising
Case Study 1
Tutorial I
Case Study 2
Hackathon
Day 1 Intro
Day 2 Practising
Case Study 1
Case Study 2
Tutorial II
Hackathon
Day 1 Intro
Day 2 Practising
Case Study 1
Case Study 2
Hackathon
Presenter: Murilo F. M.
Day 1 Intro
Day 2 Practising
Case Study 1
Case Study 2
Hackathon
Day 1 Intro
Day 2 Practising
Case Study 1
Day 5: Hackathon!
Group project
We need ideas. . . Have you got any?
Case Study 2
Hackathon
What is ROS?
Getting started
Supported operating systems
Supported hardware
Installation
Setting up VM
ROS filesystem
What is ROS?
Getting started
Setting up VM
ROS filesystem
What is ROS?
What is ROS?
Fuerte Turtle
23 April 2012
Electric Emys
30 August 2011
Diamondback
02 March 2011
C Turtle
02 August 2010
Box Turtle
02 March 2010
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
What is ROS?
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
What is ROS?
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Python
c++
Lua
Lisp
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Experimental
Arch
Mac OS X
Debian
OpenSuse
Fedora
Windows
Gentoo
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
The end
Supported hardware
Supported robots
Nao
Willowgarage PR2
Baxter
Care-o-Bot
Toyota Helper
Gostai Jazz
Robonaut
Peoplebot
Kuka YouBot
Guardian
Husky A200
Summit
Turtlebot
Erratic
Qbo
AR.Drone
Miabot
AscTec
Lego NXT
Pioneer
SIA 10D
What is ROS?
Getting started
Setting up VM
ROS filesystem
Supported hardware
1 Video
available at http://youtu.be/7cslPMzklVo
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Supported hardware
2 Video
available at http://youtu.be/PGaXiLZD2KQ
The end
What is ROS?
Getting started
Setting up VM
Supported hardware
Sensors
ROS filesystem
The end
What is ROS?
Getting started
Setting up VM
Supported hardware
Sensors
ROS filesystem
The end
What is ROS?
Getting started
Setting up VM
Supported hardware
Sensors
1D/2D/3D range finders
Cameras
Force/torque/touch sensors
Motion capture systems
Pose estimation (IMU/GPS)
Audio/Speech recognition
RFID
Sensor/actuator interfaces
Dynamixel
Phidgets
Arduino
Arbotix
Lego NXT
ROS filesystem
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Supported hardware
Simulators
Stage
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Supported hardware
Simulators
Gazebo
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Supported hardware
Simulators
Webots
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Installation
Installation
Setup sources.list
sudo sh -c echo deb http://packages.ros.org/ros/ubuntu precise main > /etc/apt/sources.list.d/ros-latest.list
Setup keys
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Set a password!
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Setting up ROS
Open up a terminal
Press windows key, then type terminal, then press Enter
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Setting up ROS
echo s o u r c e / o p t / r o s / f u e r t e / s e t u p . bash
source
/. bashrc
>>
/. bashrc
3
4
5
mkdir
rosws
/ f u e r t e w o r k s p a c e
init
/ f u e r t e w o r k s p a c e
/ opt / r o s / f u e r t e
6
7
8
echo s o u r c e / f u e r t e w o r k s p a c e / s e t u p . bash
s o u r c e / f u e r t e w o r k s p a c e / s e t u p . b a s h
9
10
11
12
m k d i r / f u e r t e w o r k s p a c e / s a n d b o x
rosws
s e t / f u e r t e w o r k s p a c e / s a n d b o x
s o u r c e / f u e r t e w o r k s p a c e / s e t u p . b a s h
13
14
echo
>>
/. bashrc
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Setting up ROS
Add the command (in double quotes) to the end of the file /.bashrc
3
4
6
7
9
10
11
12
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
ROS filesystem
ROS filesystem
Overview
Package
Lowest level of ROS software organisation
Dedicated to a single functionality (e.g., data acquisition from a
laser scanner)
Manifest: description (metadata) of a package, which main role is to
define dependencies between packages (manifest.xml)
Stack
Collection of packages forming a higher level library
Stack Manifest: same as in packages, but for stacks (stack.xml)
Stacks do not exist in Groovy anymore (fear not, now there are
meta-packages!)
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
ROS filesystem
Example
ROS filesystem
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
ROS filesystem
ROS filesystem
Package structure
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
rosbash
Open up a terminal
Press windows key, then type terminal, then press Enter
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
rosbash
rospack
rospack
rospack
rospack
list
find
turtlesim
depends
turtlesim
profile
roscd
roscd
turtlesim
ls
( standard linux
s h e l l command )
roscd
rosls
( return to workspace d i r e c t o r y )
turtlesim
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
echo $EDITOR ( i f b l a n k , d e f a u l t
e x p o r t EDITOR=g e d i t
rosed
turtlesim
m a n i f e s t . xml
is
vi )
roscd
cd s a n d b o x
r o s c r e a t e pkg
myPkg
std msgs
rospy
roscpp
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
rospack
f i n d myPkg
r o s c d myPkg
rospack
d e p e n d s 1 myPkg
r o s e d myPkg m a n i f e s t . xml
rosmake
myPkg
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Nodes
Nodes
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Master
Master
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Parameter server
Parameter server
Shared, multi-variate dictionary which is acessible via network APIs
Currently runs inside ROS Master
Nodes use this server to store and retrieve parameters at runtime
Not designed for high performance, and hence. . .
Better suited for configuration parameters
Follows ROS naming convention, having a hierarchy meant to
protect parameters from conflicting (namespaces)
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Parameter server
Parameter server
Open up a terminal, then run ROS Master node
1
roscore
rosparam
rosparam
rosparam
list
get / r o s d i s t r o
get / r o s v e r s i o n
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Messages
Messages
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Topics
Topics
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Topics
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Services
Services
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
Services
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
rosmsg
rosmsg
rosmsg
list
show g e o m e t r y m s g s / V e c t o r 3
show g e o m e t r y m s g s / T w i s t
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
rossrv
rossrv
list
show
t u r t l e s i m /Spawn
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
ROS filesystem
The end
What is ROS?
Getting started
Setting up VM
ROS filesystem
The end