ROS Course Slides Course 1
ROS Course Slides Course 1
Introduction to ROS
Course 1
▪ Course 2 ▪ Course 4
▪ ROS package structure Tom Lankhorst ▪ ROS services Tom Lankhorst
▪ Integration and programming with Eclipse ▪ ROS actions (actionlib)
▪ ROS C++ client library (roscpp) ▪ ROS time
▪ ROS subscribers and publishers ▪ ROS bags
▪ ROS parameter server ▪ Intro to ROS2
▪ RViz visualization
▪ Exercises are checked by the teaching assistants when you are ready, but latest
the following course day in the grading sessions
▪ Grading sessions (08:00 – 08:45, 08:00-09:15 except for exercise 5)
▪ The TA will take you in a separate breakout room
▪ After that you leave the grading session
▪ Let the teaching assistant know once you are ready to present your results
05.03.2021 at 08:00
ros.org
▪ Peer to peer
Individual programs communicate over defined API (ROS messages, services, etc.).
▪ Distributed
Programs can be run on multiple computers and communicate over the network.
▪ Multi-lingual
ROS modules can be written in any language for which a client library exists (C++, Python,
MATLAB, Java, etc.).
▪ Light-weight
Stand-alone libraries are wrapped around with a thin ROS layer.
▪ Free and open-source
Most ROS software is open-source and free to use.
More info
http://wiki.ros.org/Master
geometry_msgs/Point.msg geometry_msgs/PoseStamped.msg
float64 x std_msgs/Header header
float64 y uint32 seq
float64 z time stamp
sensor_msgs/Image.msg string frame_id
std_msgs/Header header geometry_msgs/Pose pose
uint32 seq geometry_msgs/Point position
time stamp float64 x
string frame_id float64 y
uint32 height float64 z
uint32 width geometry_msgs/Quaternion orientation
string encoding float64 x
uint8 is_bigendian float64 y
uint32 step float64 z
uint8[] data float64 w
More info
http://wiki.ros.org/nodelet
Whenever you build a new package, update your environment More info
The source space contains The build space is where The development (devel)
the source code. This is where CMake is invoked to build the space is where built targets
you can clone, create, and packages in the source space. are placed (prior to being
edit source code for the Cache information and other installed).
packages you want to build. intermediate files are kept
here.
Already
setup in the
More info provided
http://catkin-tools.readthedocs.io/en/latest/verbs/catkin_config.html
http://catkin-tools.readthedocs.io/en/latest/cheat_sheet.html installation.
More info
http://wiki.ros.org/roslaunch
talker_listener.launch ! Attention when copy & pasting code from the internet
More info
http://wiki.ros.org/roslaunch/XML/arg
Edo Jelavic | 22.02.2021 | 33
ROS Launch
Including Other Launch Files
range_world.launch (simplified)
<?xml version="1.0"?>
<launch>
<arg name="use_sim_time" default="true"/>
<arg name="world" default="gazebo_ros_range"/>
▪ Include other launch files with <include> tag to <arg name="debug" default="false"/>
organize large projects <arg name="physics" default="ode"/>
More info
http://wiki.ros.org/roslaunch/XML/include
Edo Jelavic | 22.02.2021 | 34
Gazebo Simulator
Object tree Toolbar (to navigate and new objects)
▪ Simulate 3d rigid-body dynamics
▪ Simulate a variety of sensors including noise
▪ 3d visualization and user interaction
▪ Includes a database of many robots and
environments (Gazebo worlds)
▪ Provides a ROS interface
▪ Extensible with plugins
More info:
https://robotics-summerschool.ethz.ch/
Su 04 Mo 05 Tu 06 We 07 Th 08 Fr 09
9:00
Intro to RSS Localization & Mapping Visual Recognition
10:00
Robot time Robot time
Tutorial Tutorial
Intro to Robots
11:00
http://www.rsl.ethz.ch