Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm...
Transcript of Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm...
![Page 1: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/1.jpg)
Gerald Steinbauer
Institute for Software Technology
1
Mobile Robots - ROS
Mobile Robots Robot Operating System (ROS)
Gerald Steinbauer
Institute for Software Technology
![Page 2: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/2.jpg)
Gerald Steinbauer
Institute for Software Technology
2
Mobile Robots - ROS
Motivation
Beer me
https://www.youtube.com/watch?v=c3Cq0sy4TBs
![Page 3: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/3.jpg)
Gerald Steinbauer
Institute for Software Technology
3
Mobile Robots - ROS
Robotics is Easy …
environment/world
sensing
information
extraction
raw data
acting
path
execution
actuator
commands
domain
model
environment
model
path
planning
navigation
perc
eption
modelli
ng
behavio
r contr
ol
planning reasoning
cognition
task
![Page 4: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/4.jpg)
Gerald Steinbauer
Institute for Software Technology
4
Mobile Robots - ROS
Course Outline
1. Robot Operating System
2. Locomotion
3. Sensors
4. Localization
5. Environment Modelling - Mapping
6. Reactive Navigation
![Page 5: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/5.jpg)
Gerald Steinbauer
Institute for Software Technology
5
Mobile Robots - ROS
Literature
Introduction to Autonomous
Mobile Robots. 2nd Edition.
Roland Siegwart, Illah Reza
Nourbakhsh, Davide
Scaramuzza. MIT Press.
2011.
![Page 6: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/6.jpg)
Gerald Steinbauer
Institute for Software Technology
6
Mobile Robots - ROS
Function versus Operation
Function
Artificial Intelligence View
How to organize:
• Knowledge Representation
• Decision Making
• Problem Abstraction
• Behavior Execution
• Control
• Temporal Issues
Operation
Software Engineering View
How to organize:
• Data Transport
• Interfaces and Objects
• Program Execution
• Configuration
• Programming
• Development
two sides of the same medal Today
![Page 7: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/7.jpg)
Gerald Steinbauer
Institute for Software Technology
7
Mobile Robots - ROS
Operation Architectures
Structure and Support
of Software Operation and
Data/Command Exchange
Support Operation and
Experiments
Support Development
Support for Functional
Architectures
![Page 8: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/8.jpg)
Gerald Steinbauer
Institute for Software Technology
8
Mobile Robots - ROS
Robot Operating System (ROS)
• framework for the development of robot
software
• provides OS-like functionality
• originally developed by Stanford AI Lab
(SAIL) and Willow Garage
• meanwhile maintained by the Open
Source Robotics Foundation
• open source robotics framework
• used by several leading robotics labs
• provides a lot of functionality on various
levels
![Page 9: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/9.jpg)
Gerald Steinbauer
Institute for Software Technology
9
Mobile Robots - ROS
runs on several robot platforms
![Page 10: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/10.jpg)
Gerald Steinbauer
Institute for Software Technology
10
Mobile Robots - ROS
provides a lot of functionality
• many research groups provide their results as open
source ROS packages: • motion planning and navigation
• localization
• exploration and mapping
• arm navigation and object manipulation
• 3D perception and object manipulation
• high-level control and knowledge representation
• …
![Page 11: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/11.jpg)
Gerald Steinbauer
Institute for Software Technology
11
Mobile Robots - ROS
Design Principles of ROS
• peer-to-peer – several independent processes and hosts
• multi-lingual – communication is based on XML-RPC
– supports C++, Phyton, Octave, LISP
– defined data types, proprietary message definition files (IDL)
• tool-based – Linux philosophy with small building blocks
• thin – functionality is packed in stand-alone libraries, also 3rd party
– uses its own build system
• open-source
![Page 12: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/12.jpg)
Gerald Steinbauer
Institute for Software Technology
12
Mobile Robots - ROS
OS
ROS
Message
Passing
Word
Processing
Web Browser
GUI Memory
Management
File System Scheduler Drivers
Visualization
Navigation Task Executive
Simulation Manipulation
Client
Libratries
![Page 13: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/13.jpg)
Gerald Steinbauer
Institute for Software Technology
13
Mobile Robots - ROS
ROS - Operation
• ROS is definitely on the operational side
• supports message transport • publisher/subscriber (nodes, messages, topics)
• client/server (services, action-server)
• runtime execution • threads and related techniques
• (re-)configuration
• supports development • reusable classes and libraries
• definition of interfaces
• debugging, logging and visualization tools
• build system
• …
![Page 14: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/14.jpg)
Gerald Steinbauer
Institute for Software Technology
14
Mobile Robots - ROS
ROS Eco-System I
universe
main
robot centric
general
![Page 15: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/15.jpg)
Gerald Steinbauer
Institute for Software Technology
15
Mobile Robots - ROS
ROS Eco-System II
capabilities
middleware
navigation, arm, grasping
tools universe
main
libs
apps fetch beer
tf, pcl, opencv, bullet, eigen
rqt_graph, rostopic, roslaunch
rosmaster, roscpp, rosbuild
![Page 16: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/16.jpg)
Gerald Steinbauer
Institute for Software Technology
16
Mobile Robots - ROS
Beer Me (Bottom Up)
middleware
capabilities
tools
libs
apps Beer
Me
![Page 17: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/17.jpg)
Gerald Steinbauer
Institute for Software Technology
17
Mobile Robots - ROS
Beer Me (Top Down)
Beer
Me
Open Fridge Delivery
Face
Recognition Beer
Identification
PCL
TF
navigation OpenCV SMACH
arm navigation web interface collision space
roscpp common_msg rospy rosmaster actionlib
![Page 18: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/18.jpg)
Gerald Steinbauer
Institute for Software Technology
18
Mobile Robots - ROS
ROS Versions • ROS Box Turtle (March 2010)
• ROS C Turtle (August 2010)
• ROS Diamondback (March 2011)
• ROS Electric Emys (August 2011)
• ROS Fuerte Turtle (April 2012)
• ROS Groovy Galapagos (December 2012)
• ROS Hydro Medusa (April 2013)
• ROS Indigo Igloo (July 2014)
• ROS Jade Turtle (May 2015)
• ROS Kinetic Kame (May 2016)
![Page 19: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/19.jpg)
Gerald Steinbauer
Institute for Software Technology
19
Mobile Robots - ROS
Building Blocks of ROS
a node is an executable that uses ROS to
communicate with other nodes and does
computation
nodes can publish messages to a topic as
well subscribe to a topic to receive
messages (one-to-many communication)
messages are ROS data type used when
subscribing or publishing to a topic
a service is a node with one defined input
and one defined output message type
the master is a node that is the name
service for ROS
it helps nodes find other nodes
rosout is the decentralized ROS
equivalent of stdout/stderr
the parameter server provides and
manages parameter across the network
roscore is master + rosout + parameter
server
concept:
com
puta
tion g
raph
basic
infr
astr
uctu
re
![Page 20: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/20.jpg)
Gerald Steinbauer
Institute for Software Technology
20
Mobile Robots - ROS
File Organization in ROS
a bag is a file format in ROS for recording
and replaying ROS message data
a package is an organization unit in ROS
the goal is to provide functionality
it can contain nodes, libraries, data,
messages, configurations …
![Page 21: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/21.jpg)
Gerald Steinbauer
Institute for Software Technology
21
Mobile Robots - ROS
Naming in ROS
• hierarchical naming structure
• used for all resources • nodes
• parameter
• topics
• services
• nodes may have a name space /node_name/topic_name
• parameter are hierarchically organized as well /p3at/odometry/frequency
• can be used like a Linux file system (relative, global)
![Page 22: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/22.jpg)
Gerald Steinbauer
Institute for Software Technology
22
Mobile Robots - ROS
Navigation the ROS File System
• a number of command-line tools makes live easier
• changing into a package directory • roscd package_name
• building packages (own build system) • catkin_make
• Running a node • rosrun package_name node_name
• running a larger project • roslaunch package_name launch_file
![Page 23: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/23.jpg)
Gerald Steinbauer
Institute for Software Technology
23
Mobile Robots - ROS
Transport Mechanisms
• all architectures comprise different modules
• they need to exchange commands and data
• Client-Server • components directly talk to each other
• components are aware of each other
• remote method invocation (RPC, CORBA, ROS services)
+ explicit return value
• Publisher-Subscriber • messages are broadcasted – multiple recipients
• components are usually not aware of each other
• central message routing (IPC, ROS topics)
single point of failure
![Page 24: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/24.jpg)
Gerald Steinbauer
Institute for Software Technology
24
Mobile Robots - ROS
Publisher – Subscriber Communication
![Page 25: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/25.jpg)
Gerald Steinbauer
Institute for Software Technology
25
Mobile Robots - ROS
Synchronous Service (Blocking)
![Page 26: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/26.jpg)
Gerald Steinbauer
Institute for Software Technology
26
Mobile Robots - ROS
Actions (Non-Blocking)
![Page 27: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/27.jpg)
Gerald Steinbauer
Institute for Software Technology
27
Mobile Robots - ROS
Action Interface
Action
Client
Action
Server
goal
cancel
status
status
feedback
from client
from server
action protocol relies on ROS topics to transport messages (publisher/subscriber)
![Page 28: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/28.jpg)
Gerald Steinbauer
Institute for Software Technology
28
Mobile Robots - ROS
Simple Messages
• simple data structures that are passed between nodes
• defined in package-name/msg/*.msg files, sent over topics
• basic data types: • int{8,16,32,64}
• float{32,64}
• string
• time
• Duration
• array[]
• Example: Point:msg • float64 x
• float64 y
• float64 z
• messages can be nested • Point p
![Page 29: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/29.jpg)
Gerald Steinbauer
Institute for Software Technology
29
Mobile Robots - ROS
ROS Service Definitions
• used for ROS Services
• defined in package-name/srv/*.srv
• Service = Request msg + Response msg
• messages are auto-generated from the definition
int64 A
int64 B
---
int64 Sum
![Page 30: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/30.jpg)
Gerald Steinbauer
Institute for Software Technology
30
Mobile Robots - ROS
ROS Action Definitions
• used for ROS Actions
• defined in package-name/action/*.action
• Action = Goal msg + Result msg + Status msg +
Chancel msg
• messages are auto-generated from the definition # Define the goal
uint32 dishwasher_id
# Specify which dishwasher we want to use
---
# Define the result
uint32 total_dishes_cleaned
---
# Define a feedback message
float32 percent_complete
![Page 31: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/31.jpg)
Gerald Steinbauer
Institute for Software Technology
31
Mobile Robots - ROS
Parameters
• have unique names
• can represent primitive data types: • integers
• floats
• boolean
• dictionaries
• maps, etc
• can be set and remapped at runtime
• stored on the parameter server
• dynamic re-configuration – notify nodes about
parameter changes
![Page 32: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/32.jpg)
Gerald Steinbauer
Institute for Software Technology
32
Mobile Robots - ROS
Parameter Setting
• nodes can set parameters on the server
• any other nodes can read them
• also command-line tool
Talker Listener
ROS
Master
![Page 33: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/33.jpg)
Gerald Steinbauer
Institute for Software Technology
33
Mobile Robots - ROS
Working with Topics
• the command-line tools rostopic makes live easier
• list all available topics • rostopic list
• showing messages on a topic • rostopic echo topic_name
• showing message type of a topic • rostopic type topic_name
• …
![Page 34: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/34.jpg)
Gerald Steinbauer
Institute for Software Technology
34
Mobile Robots - ROS
Computation Graph – Localization Example
robot laser imu map
localization
path
planner
![Page 35: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/35.jpg)
Gerald Steinbauer
Institute for Software Technology
35
Mobile Robots - ROS
Tools in ROS
rqt_graph display a visualization of a ROS
computation graph
client library supports the development of
nodes
allows easy access to topics, paramter, …
C++ & Phyton
rviz is a 3d visualization tool
it is online configurable and is able to
display sensor data, point clouds, paths,
coordinate systems
ROS is able to record and playback all
topics in an transparent way and in the
proper timing
![Page 36: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/36.jpg)
Gerald Steinbauer
Institute for Software Technology
36
Mobile Robots - ROS
ROS - Function
• ROS supports the functional view to some extent
• behavioral control • local path planner
• obstacle avoidance
• trajectory generation
• executive • global path planner
• SMACH – state machine for task-level control
• planning • Cognitive Robot Abstract Machine (CARM) by TUM
• Knowledge Processing for Autonomous Personal Robots
(KnowRob) by TUM
![Page 37: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/37.jpg)
Gerald Steinbauer
Institute for Software Technology
37
Mobile Robots - ROS
Launch Files
• it’s a pain to start up larger project form scratch at the
command-line
• the tool roslaunch allows to script start up procedures
• allows to specify nodes, configurations, renaming …
• follows a XML-syntax <launch>
<param name="foo" value="$(optenv NUM_CPUS 1)" />
<param name=“foofile" value="$(find foo_pkg)/foo.xml" />
<node name=“foo" pkg=“foo_pkg" type=“foo.py" />
<node name=“bar" pkg=“bar_pkg" type=“bar" />
</launch>
![Page 38: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/38.jpg)
Gerald Steinbauer
Institute for Software Technology
38
Mobile Robots - ROS
tf
• robots usually have a number of
data (2D and 3D senor data, poses,
…) in various static and variable
coordinate systems
• data in ROS are relative to a
coordinate system called “frame”
• data stay in their producing frame
• data are transformed in a target
frame on purpose only
• the tf library and a set of tools take
care about transformations
![Page 39: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/39.jpg)
Gerald Steinbauer
Institute for Software Technology
39
Mobile Robots - ROS
Transformation Basics
+X
+Y
+Z
roll
pitch
yaw
right hand rule
roll, pitch, yaw
Euler angles
[x,y,z,w]
ROS uses Quarterions
![Page 40: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/40.jpg)
Gerald Steinbauer
Institute for Software Technology
40
Mobile Robots - ROS
Transform Chains
• frames can build transformation chains
• tree-like structure
• transformation between any frames automatically
calculated by tf – if connected by a tree (a forest is
possible too)
[Andreasson et al. 2008]
map kinect
frame
laser
frame
plate
frame
base
frame odometry
frame
![Page 41: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/41.jpg)
Gerald Steinbauer
Institute for Software Technology
41
Mobile Robots - ROS
Transformation Tree
odom base_link
laser_base_link
kinect_base_link
map
plate_link
odom
kinect:_base_link laser_base_link
base_link
map plate_link
![Page 42: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/42.jpg)
Gerald Steinbauer
Institute for Software Technology
42
Mobile Robots - ROS
Transformation Transport
![Page 43: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/43.jpg)
Gerald Steinbauer
Institute for Software Technology
43
Mobile Robots - ROS
tf tools • in program code
• instantiate a transform listener
• retrieve transformation for particular frames and time stamps
• transform data
• you may also provide transformations using a transform broadcaster
• numerous helper functions to deal with transformations
• tf_echo • command-line tool to display transformation messages for particular frames
• tf_monitor • command-line tool to display all transformation messages
• view_frames • listens to tf topic for some time and
generates a transformation tree with
some statisitcs
• rviz • graphical tool to visualize all kind of data and
robots
![Page 44: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/44.jpg)
Gerald Steinbauer
Institute for Software Technology
44
Mobile Robots - ROS
Useful Features in ROS
• coordination transformation with tf
– manage several reference frames
– automated conversion
• unified data types for similar
sensors and actuators
– e.g. point clouds for laser scanner
– e.g. velocity_command for robot
platforms
• remote access from other hosts
– transparent network
![Page 45: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/45.jpg)
Gerald Steinbauer
Institute for Software Technology
45
Mobile Robots - ROS
Supported Hardware
• ROS provides a huge and continuously growing set
of standard nodes for robots und sensors – Willow Garage PR2
– Pioneer Robot Family
– Aldebaran Nao
– Lego NXT
– Festo Robotino
– Sick Laser Scanner Family
– Hokuyo Laser Scanner
– GPS (NMEA)
– Katana Arm
– Cameras with various interface
– Microsoft Kinect
– ….
![Page 46: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/46.jpg)
Gerald Steinbauer
Institute for Software Technology
46
Mobile Robots - ROS
Functionality in ROS
• mapping (gmapping) – based on the free gmapping
– simple generation of 2d maps
• navigation – complete navigation stack
– allows autonomous navigation
• arm navigation (MoveIt!) based on OMPL
• organization of behaviors – standard templates for behaviors
(actionlib)
• decision making – finite state machine (SMACH)
![Page 47: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/47.jpg)
Gerald Steinbauer
Institute for Software Technology
47
Mobile Robots - ROS
ROS Build System - catkin
catkin
– official build system of ROS
– Cmake with some custom Cmake macros and Python scripts
– supports for automatic 'find package' infrastructure and
building multiple, dependent projects at the same time
– simplifies the build process of ROS’s large, complex, and
highly heterogeneous code ecosystem
advantages of using catkin
– enables to use packages after building (without installation)
– generates find_package() code for your package
– generates pkg-config files for your package
– handles build order of multiple packages
– handles transitive dependencies
![Page 48: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/48.jpg)
Gerald Steinbauer
Institute for Software Technology
48
Mobile Robots - ROS
catkin workspace
• one central folder for your packages
• holds your packages as sources • in the standard subfolder src
• one subfolder per package
• packages can be grouped together under a common subfolder
• creates a temporary build and install folder
• central point for building your packages
• tool support to initialize your workspace
• multiple workspaces are possible
![Page 49: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/49.jpg)
Gerald Steinbauer
Institute for Software Technology
49
Mobile Robots - ROS
Overview of a catkin package
package.xml
– contains the meta information of a package
• name, description, version, maintainer(s), license
• opt. authors, url's, dependencies, plugins, etc...
CMakeLists.txt
– the main CMake file to build the package
– calls catkin-specific functions/macros
• “read" the package.xml
• find other catkin packages to access libraries / include directories
• export items for other packages depending on you
![Page 50: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/50.jpg)
Gerald Steinbauer
Institute for Software Technology
50
Mobile Robots - ROS
Dependency Management: package.xml
(c) ETH Zürich http://wiki.ros.org/catkin/package.xml
![Page 51: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/51.jpg)
Gerald Steinbauer
Institute for Software Technology
51
Mobile Robots - ROS
Dependency Management: CMakeLists.txt
(c) ETH Zürich http://wiki.ros.org/catkin/CMakeLists.txt
![Page 52: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/52.jpg)
Gerald Steinbauer
Institute for Software Technology
52
Mobile Robots - ROS
Other common files in a package
Common source layout – include/PkgNamespace/
– src/
– setup.py
ROS specific subfolders – msg/
– srv/
– launch/
– scripts/
the recommended folder name equals the package
name
![Page 53: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/53.jpg)
Gerald Steinbauer
Institute for Software Technology
53
Mobile Robots - ROS
Additional Information
• ROS wiki (http://www.ros.org/wiki/)
• ROS answers (http://answers.ros.org)
• ROS tutorials (http://www.ros.org/wiki/ROS/Tutorials)
![Page 54: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/54.jpg)
Gerald Steinbauer
Institute for Software Technology
54
Mobile Robots - ROS
Other Robotic Software Frameworks
• represent the other operation architecture
• some also implement some parts of the function
architecture
• hot topic since decades
• the holy grail not yet found
• examples • Player
• ORCA
• Miro
• Fawkes
• IDEA
• ROS
![Page 55: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/55.jpg)
Gerald Steinbauer
Institute for Software Technology
55
Mobile Robots - ROS
Middleware for Robots (Miro)
• open-source robotics framework
• initiated by University of Ulm
• strong focus on software development issues
• use ACE and TAO (CORBA) mechanisms
• provides • a lot of basic functionality for operation
• hardware abstraction
• some tool support for developers
• supports behavior and executive level
• language and OS independence
• too complicated and small community
• still used by NASA Ames for rover prototypes
![Page 56: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/56.jpg)
Gerald Steinbauer
Institute for Software Technology
56
Mobile Robots - ROS
Player
• popular open-source robotics middleware
• provides mainly simple interfaces to actors and
sensors
• allows for hardware abstraction
• client/server architecture
• communication over sockets
• OS and language independent
• good simulation tools: stage (2d) and gazebo (3d)
![Page 57: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/57.jpg)
Gerald Steinbauer
Institute for Software Technology
57
Mobile Robots - ROS
Fawkes
• open-source robotic framework
• driven by RWTH Aachen
• strong focus on software development
• component-based software (plug-ins)
• blackboard architecture
• looks for • simplicity and integration
• low overhead
• scalability
• clear concepts and styles
• somehow integration of function components
![Page 58: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/58.jpg)
Gerald Steinbauer
Institute for Software Technology
58
Mobile Robots - ROS
Fawkes - Main Control Loop
• monolith control loop
• hooks are executed in
an known given order
• within hooks concurrent
threads
• strict timing (i.e. 20-
40Hz)
• less flexible
• but allows some soft
guarantees on
execution [Niemüller et. al SIMPAR 10]
![Page 59: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/59.jpg)
Gerald Steinbauer
Institute for Software Technology
59
Mobile Robots - ROS
Literature
• Niemüller, T., A. Ferrein, D. Beck, and G. Lakemeyer . Design Principles of the
Component-Based Robot Software Framework FawkeS. Simulation, Modeling,
and Programming for Autonomous Robots Proceedings of the 2nd International
Conference on Simulation, Modeling and Programming for Autonomous Robots
(SIMPAR 2010). vol. 6472. Lecture Notes in Computer Science. Springer, pp.
300–311. 2010.
![Page 60: Robot Operating System (ROS) - ist. · PDF fileRobot Operating System (ROS) ... • arm navigation and object manipulation • 3D perception and object manipulation ... Recognition](https://reader033.fdocuments.net/reader033/viewer/2022051203/5aa2ab6a7f8b9aa0108d83ab/html5/thumbnails/60.jpg)
Gerald Steinbauer
Institute for Software Technology
60
Mobile Robots - ROS
Questions?
Thank you!