Computer Vision Group Prof. Daniel Cremers
VisNav Exercise 01
Dr. Jürgen Sturm
Jakob Engel Christian Kerl
Introduction to ROS
What is ROS?
Robot Operating System
Open-Source Middleware for Robotics
Drivers, Communication, Package System, …
Supports C++, Python, …
Dr. Jürgen Sturm, Computer Vision Group, TUM Visual Navigation for Flying Robots 2
ROS in Numbers
175+ organizational/individual contributors
90+ types of robots supported
3699+ packages
Dr. Jürgen Sturm, Computer Vision Group, TUM Visual Navigation for Flying Robots 3
Concepts – Nodes
Every ROS-enabled program is a node
Registers with ROS master
Unique name
Dr. Jürgen Sturm, Computer Vision Group, TUM Visual Navigation for Flying Robots 4
Concepts – Master
Registry for
Nodes
Topics
Services
Parameters
One instance per system
Dr. Jürgen Sturm, Computer Vision Group, TUM Visual Navigation for Flying Robots 5
Concepts – Topics
Message channel between nodes
Unique name
/ardrone/front/image_raw
Fixed type
sensor_msgs/Image
Dr. Jürgen Sturm, Computer Vision Group, TUM Visual Navigation for Flying Robots 6
namespace name
Concepts – Topics
Node sending messages is a publisher
Node receiving messages is a subscriber
Topic has to be advertised beforehand
Multiple publishers/subscribers per topic possible
Dr. Jürgen Sturm, Computer Vision Group, TUM Visual Navigation for Flying Robots 7
Concepts – Bags
Containers to store messages
Supports recording and playback of messages
Good for testing, debugging, logging
Dr. Jürgen Sturm, Computer Vision Group, TUM Visual Navigation for Flying Robots 8
Tools – roscore
Starts the ROS master
Dr. Jürgen Sturm, Computer Vision Group, TUM Visual Navigation for Flying Robots 9
Tools – rosrun/roslaunch
Starts a node
rosrun ardrone_autonomy ardrone_driver
Important environment variable $ROS_PACKAGE_PATH
Dr. Jürgen Sturm, Computer Vision Group, TUM Visual Navigation for Flying Robots 10
package node
Tools – rostopic
rostopic
list – display available topics
info – show details of a topic
hz – measure publishing rate
echo – print messages
Dr. Jürgen Sturm, Computer Vision Group, TUM Visual Navigation for Flying Robots 11
Tools – rosbag+rxbag
rosbag
record – create new bag file
play – playback a bag
info – display details about a bag
rxbag – GUI to view bag files
Dr. Jürgen Sturm, Computer Vision Group, TUM Visual Navigation for Flying Robots 12
Tools – rviz
Visualization tool
Dr. Jürgen Sturm, Computer Vision Group, TUM Visual Navigation for Flying Robots 13