![]() |
ex02_gazebo_simulation package from ros2_tutorial repoex01_first_package ex02_gazebo_simulation ex03_state_estimation ex04_actions ex04_msgs ex04_nav2_client ex05_behavior_trees ex05_bt_plugins |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Tutorials for the KBS robotics labs |
Checkout URI | https://github.com/uos/ros2_tutorial.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-06 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Mock
Authors
- Alexander Mock
ex02_gazebo_simulation
Download
Git-Clone the following packages into your ROS-workspace src
directory using git:
You will need some package to run the simulation of the robot. The same software packages are installed on the robot as well.
- https://github.com/uos/ceres_robot
- https://github.com/uos/uos_tools
- https://github.com/uos/epos2_motor_controller
- https://github.com/uos/volksbot_driver
The current main branch of those software packages should be compatible with ROS2 humble. To make sure, switch all the repositories to “humble” branch instead: Go to a cloned repository folder and run git checkout humble
. After you did that for every repository, compile your workspace. If errors occur:
- ROS-Package is missing:
sudo apt-get install ros-humble-MISSING-PACKAGE
- System package is missing:
sudo apt-get install libftdipp1-dev
What to do when packages are missing?
Let’s assume the package missing_package
is missing from your computer. Try to install it in this order, finish when one command has succeeded:
- Install via apt:
sudo apt install ros-humble-missing-package
- Install via Github: Search for the package on github. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Install via Gitlab: Search for the package on UOS-Gitlab. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Go to Alex
Run the Simulation
ros2 launch ceres_gazebo ceres_gazebo_launch.py
A graphical interface starts with a robot in it, spawned in an office environment. Try to add a cube. Try to move the robot. Make yourself familiar with the functionalities. The simulation, as the name tells, simulates a real robot. So when you learn to control the robot in the simulation, you will be able to control the robot in the real world. The simulation will generate the sensor data and publish them on some topics. Find out which topics. Print out some of the messages that are streamed on those topics.
Control the robot
ros2 launch uos_diffdrive_teleop key.launch
A window will open. As long as it is the activate window you can control the robot via the shown keys. Move the robot through the office world.
Visualize the Sensor Data
ros2 run rviz2 rviz2
or the shortcut:
rviz2
The robot is equipped with a laser scanner. Try to visualize the corresponding topic. Set the fixed frame to ‘base_link’. What a fixed frame is will be explained soon. Move the robot around and see how the sensor data changes. RViz will be used with the real robot to monitor processes. Gazebo not.
Use the sensor data
Write a node that filters noise from the scan. Subscribe to the topic scan
, average the distances with the direct neighboring measurements (average of 3 measurements in total) and publish the results on a new topic scan_filtered
. Visualize the results with RViz.
Point Clouds
Messages on the topic are in polar coordinates. Write a node that converts the LaserScan to a PointCloud2
message and publishes it on the topic scan_cloud
. Don’t use external libraries for the conversions. Copy the header of the LaserScan
message to the header of the PointCloud2
message. After publishing, visualize the results with RViz.
TF
Make yourself familiar with the concept of transformations. Visualize the transformations via RViz. In ROS2 there is a library called tf2 that handles all the transformations. Internally they present all the transformations as a tree. You can visualize it by calling
ros2 run rqt_tf_tree rqt_tf_tree
If it’s not installed you can install it via sudo apt install ros-humble-rqt-tf-tree
.
Read the docs: https://docs.ros.org/en/foxy/Tutorials/Intermediate/Tf2/Introduction-To-Tf2.html
Every piece of sensor data was recorded in a certain reference system at a certain time. Therefore, sensor data messages usually have a field std_msgs/Header
:
...
string frame_id
time stamp
Sometimes messages have the postfix Stamped
if they are extending a message only by a header. For example, there is a message geometry_msgs/Point
:
float64 x
float64 y
float64 z
And the corresponding geometry_msgs/PointStamped
:
std_msgs/Header header
geometry_msgs/Point point
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
std_msgs | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
tf2_ros | |
tf2_eigen |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ex02_gazebo_simulation at Robotics Stack Exchange
![]() |
ex02_gazebo_simulation package from ros2_tutorial repoex01_first_package ex02_gazebo_simulation ex03_state_estimation ex04_actions ex04_msgs ex04_nav2_client ex05_behavior_trees ex05_bt_plugins |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Tutorials for the KBS robotics labs |
Checkout URI | https://github.com/uos/ros2_tutorial.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-06 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Mock
Authors
- Alexander Mock
ex02_gazebo_simulation
Download
Git-Clone the following packages into your ROS-workspace src
directory using git:
You will need some package to run the simulation of the robot. The same software packages are installed on the robot as well.
- https://github.com/uos/ceres_robot
- https://github.com/uos/uos_tools
- https://github.com/uos/epos2_motor_controller
- https://github.com/uos/volksbot_driver
The current main branch of those software packages should be compatible with ROS2 humble. To make sure, switch all the repositories to “humble” branch instead: Go to a cloned repository folder and run git checkout humble
. After you did that for every repository, compile your workspace. If errors occur:
- ROS-Package is missing:
sudo apt-get install ros-humble-MISSING-PACKAGE
- System package is missing:
sudo apt-get install libftdipp1-dev
What to do when packages are missing?
Let’s assume the package missing_package
is missing from your computer. Try to install it in this order, finish when one command has succeeded:
- Install via apt:
sudo apt install ros-humble-missing-package
- Install via Github: Search for the package on github. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Install via Gitlab: Search for the package on UOS-Gitlab. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Go to Alex
Run the Simulation
ros2 launch ceres_gazebo ceres_gazebo_launch.py
A graphical interface starts with a robot in it, spawned in an office environment. Try to add a cube. Try to move the robot. Make yourself familiar with the functionalities. The simulation, as the name tells, simulates a real robot. So when you learn to control the robot in the simulation, you will be able to control the robot in the real world. The simulation will generate the sensor data and publish them on some topics. Find out which topics. Print out some of the messages that are streamed on those topics.
Control the robot
ros2 launch uos_diffdrive_teleop key.launch
A window will open. As long as it is the activate window you can control the robot via the shown keys. Move the robot through the office world.
Visualize the Sensor Data
ros2 run rviz2 rviz2
or the shortcut:
rviz2
The robot is equipped with a laser scanner. Try to visualize the corresponding topic. Set the fixed frame to ‘base_link’. What a fixed frame is will be explained soon. Move the robot around and see how the sensor data changes. RViz will be used with the real robot to monitor processes. Gazebo not.
Use the sensor data
Write a node that filters noise from the scan. Subscribe to the topic scan
, average the distances with the direct neighboring measurements (average of 3 measurements in total) and publish the results on a new topic scan_filtered
. Visualize the results with RViz.
Point Clouds
Messages on the topic are in polar coordinates. Write a node that converts the LaserScan to a PointCloud2
message and publishes it on the topic scan_cloud
. Don’t use external libraries for the conversions. Copy the header of the LaserScan
message to the header of the PointCloud2
message. After publishing, visualize the results with RViz.
TF
Make yourself familiar with the concept of transformations. Visualize the transformations via RViz. In ROS2 there is a library called tf2 that handles all the transformations. Internally they present all the transformations as a tree. You can visualize it by calling
ros2 run rqt_tf_tree rqt_tf_tree
If it’s not installed you can install it via sudo apt install ros-humble-rqt-tf-tree
.
Read the docs: https://docs.ros.org/en/foxy/Tutorials/Intermediate/Tf2/Introduction-To-Tf2.html
Every piece of sensor data was recorded in a certain reference system at a certain time. Therefore, sensor data messages usually have a field std_msgs/Header
:
...
string frame_id
time stamp
Sometimes messages have the postfix Stamped
if they are extending a message only by a header. For example, there is a message geometry_msgs/Point
:
float64 x
float64 y
float64 z
And the corresponding geometry_msgs/PointStamped
:
std_msgs/Header header
geometry_msgs/Point point
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
std_msgs | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
tf2_ros | |
tf2_eigen |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ex02_gazebo_simulation at Robotics Stack Exchange
![]() |
ex02_gazebo_simulation package from ros2_tutorial repoex01_first_package ex02_gazebo_simulation ex03_state_estimation ex04_actions ex04_msgs ex04_nav2_client ex05_behavior_trees ex05_bt_plugins |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Tutorials for the KBS robotics labs |
Checkout URI | https://github.com/uos/ros2_tutorial.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-06 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Mock
Authors
- Alexander Mock
ex02_gazebo_simulation
Download
Git-Clone the following packages into your ROS-workspace src
directory using git:
You will need some package to run the simulation of the robot. The same software packages are installed on the robot as well.
- https://github.com/uos/ceres_robot
- https://github.com/uos/uos_tools
- https://github.com/uos/epos2_motor_controller
- https://github.com/uos/volksbot_driver
The current main branch of those software packages should be compatible with ROS2 humble. To make sure, switch all the repositories to “humble” branch instead: Go to a cloned repository folder and run git checkout humble
. After you did that for every repository, compile your workspace. If errors occur:
- ROS-Package is missing:
sudo apt-get install ros-humble-MISSING-PACKAGE
- System package is missing:
sudo apt-get install libftdipp1-dev
What to do when packages are missing?
Let’s assume the package missing_package
is missing from your computer. Try to install it in this order, finish when one command has succeeded:
- Install via apt:
sudo apt install ros-humble-missing-package
- Install via Github: Search for the package on github. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Install via Gitlab: Search for the package on UOS-Gitlab. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Go to Alex
Run the Simulation
ros2 launch ceres_gazebo ceres_gazebo_launch.py
A graphical interface starts with a robot in it, spawned in an office environment. Try to add a cube. Try to move the robot. Make yourself familiar with the functionalities. The simulation, as the name tells, simulates a real robot. So when you learn to control the robot in the simulation, you will be able to control the robot in the real world. The simulation will generate the sensor data and publish them on some topics. Find out which topics. Print out some of the messages that are streamed on those topics.
Control the robot
ros2 launch uos_diffdrive_teleop key.launch
A window will open. As long as it is the activate window you can control the robot via the shown keys. Move the robot through the office world.
Visualize the Sensor Data
ros2 run rviz2 rviz2
or the shortcut:
rviz2
The robot is equipped with a laser scanner. Try to visualize the corresponding topic. Set the fixed frame to ‘base_link’. What a fixed frame is will be explained soon. Move the robot around and see how the sensor data changes. RViz will be used with the real robot to monitor processes. Gazebo not.
Use the sensor data
Write a node that filters noise from the scan. Subscribe to the topic scan
, average the distances with the direct neighboring measurements (average of 3 measurements in total) and publish the results on a new topic scan_filtered
. Visualize the results with RViz.
Point Clouds
Messages on the topic are in polar coordinates. Write a node that converts the LaserScan to a PointCloud2
message and publishes it on the topic scan_cloud
. Don’t use external libraries for the conversions. Copy the header of the LaserScan
message to the header of the PointCloud2
message. After publishing, visualize the results with RViz.
TF
Make yourself familiar with the concept of transformations. Visualize the transformations via RViz. In ROS2 there is a library called tf2 that handles all the transformations. Internally they present all the transformations as a tree. You can visualize it by calling
ros2 run rqt_tf_tree rqt_tf_tree
If it’s not installed you can install it via sudo apt install ros-humble-rqt-tf-tree
.
Read the docs: https://docs.ros.org/en/foxy/Tutorials/Intermediate/Tf2/Introduction-To-Tf2.html
Every piece of sensor data was recorded in a certain reference system at a certain time. Therefore, sensor data messages usually have a field std_msgs/Header
:
...
string frame_id
time stamp
Sometimes messages have the postfix Stamped
if they are extending a message only by a header. For example, there is a message geometry_msgs/Point
:
float64 x
float64 y
float64 z
And the corresponding geometry_msgs/PointStamped
:
std_msgs/Header header
geometry_msgs/Point point
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
std_msgs | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
tf2_ros | |
tf2_eigen |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ex02_gazebo_simulation at Robotics Stack Exchange
![]() |
ex02_gazebo_simulation package from ros2_tutorial repoex01_first_package ex02_gazebo_simulation ex03_state_estimation ex04_actions ex04_msgs ex04_nav2_client ex05_behavior_trees ex05_bt_plugins |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Tutorials for the KBS robotics labs |
Checkout URI | https://github.com/uos/ros2_tutorial.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-06 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Mock
Authors
- Alexander Mock
ex02_gazebo_simulation
Download
Git-Clone the following packages into your ROS-workspace src
directory using git:
You will need some package to run the simulation of the robot. The same software packages are installed on the robot as well.
- https://github.com/uos/ceres_robot
- https://github.com/uos/uos_tools
- https://github.com/uos/epos2_motor_controller
- https://github.com/uos/volksbot_driver
The current main branch of those software packages should be compatible with ROS2 humble. To make sure, switch all the repositories to “humble” branch instead: Go to a cloned repository folder and run git checkout humble
. After you did that for every repository, compile your workspace. If errors occur:
- ROS-Package is missing:
sudo apt-get install ros-humble-MISSING-PACKAGE
- System package is missing:
sudo apt-get install libftdipp1-dev
What to do when packages are missing?
Let’s assume the package missing_package
is missing from your computer. Try to install it in this order, finish when one command has succeeded:
- Install via apt:
sudo apt install ros-humble-missing-package
- Install via Github: Search for the package on github. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Install via Gitlab: Search for the package on UOS-Gitlab. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Go to Alex
Run the Simulation
ros2 launch ceres_gazebo ceres_gazebo_launch.py
A graphical interface starts with a robot in it, spawned in an office environment. Try to add a cube. Try to move the robot. Make yourself familiar with the functionalities. The simulation, as the name tells, simulates a real robot. So when you learn to control the robot in the simulation, you will be able to control the robot in the real world. The simulation will generate the sensor data and publish them on some topics. Find out which topics. Print out some of the messages that are streamed on those topics.
Control the robot
ros2 launch uos_diffdrive_teleop key.launch
A window will open. As long as it is the activate window you can control the robot via the shown keys. Move the robot through the office world.
Visualize the Sensor Data
ros2 run rviz2 rviz2
or the shortcut:
rviz2
The robot is equipped with a laser scanner. Try to visualize the corresponding topic. Set the fixed frame to ‘base_link’. What a fixed frame is will be explained soon. Move the robot around and see how the sensor data changes. RViz will be used with the real robot to monitor processes. Gazebo not.
Use the sensor data
Write a node that filters noise from the scan. Subscribe to the topic scan
, average the distances with the direct neighboring measurements (average of 3 measurements in total) and publish the results on a new topic scan_filtered
. Visualize the results with RViz.
Point Clouds
Messages on the topic are in polar coordinates. Write a node that converts the LaserScan to a PointCloud2
message and publishes it on the topic scan_cloud
. Don’t use external libraries for the conversions. Copy the header of the LaserScan
message to the header of the PointCloud2
message. After publishing, visualize the results with RViz.
TF
Make yourself familiar with the concept of transformations. Visualize the transformations via RViz. In ROS2 there is a library called tf2 that handles all the transformations. Internally they present all the transformations as a tree. You can visualize it by calling
ros2 run rqt_tf_tree rqt_tf_tree
If it’s not installed you can install it via sudo apt install ros-humble-rqt-tf-tree
.
Read the docs: https://docs.ros.org/en/foxy/Tutorials/Intermediate/Tf2/Introduction-To-Tf2.html
Every piece of sensor data was recorded in a certain reference system at a certain time. Therefore, sensor data messages usually have a field std_msgs/Header
:
...
string frame_id
time stamp
Sometimes messages have the postfix Stamped
if they are extending a message only by a header. For example, there is a message geometry_msgs/Point
:
float64 x
float64 y
float64 z
And the corresponding geometry_msgs/PointStamped
:
std_msgs/Header header
geometry_msgs/Point point
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
std_msgs | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
tf2_ros | |
tf2_eigen |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ex02_gazebo_simulation at Robotics Stack Exchange
![]() |
ex02_gazebo_simulation package from ros2_tutorial repoex01_first_package ex02_gazebo_simulation ex03_state_estimation ex04_actions ex04_msgs ex04_nav2_client ex05_behavior_trees ex05_bt_plugins |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Tutorials for the KBS robotics labs |
Checkout URI | https://github.com/uos/ros2_tutorial.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-06 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Mock
Authors
- Alexander Mock
ex02_gazebo_simulation
Download
Git-Clone the following packages into your ROS-workspace src
directory using git:
You will need some package to run the simulation of the robot. The same software packages are installed on the robot as well.
- https://github.com/uos/ceres_robot
- https://github.com/uos/uos_tools
- https://github.com/uos/epos2_motor_controller
- https://github.com/uos/volksbot_driver
The current main branch of those software packages should be compatible with ROS2 humble. To make sure, switch all the repositories to “humble” branch instead: Go to a cloned repository folder and run git checkout humble
. After you did that for every repository, compile your workspace. If errors occur:
- ROS-Package is missing:
sudo apt-get install ros-humble-MISSING-PACKAGE
- System package is missing:
sudo apt-get install libftdipp1-dev
What to do when packages are missing?
Let’s assume the package missing_package
is missing from your computer. Try to install it in this order, finish when one command has succeeded:
- Install via apt:
sudo apt install ros-humble-missing-package
- Install via Github: Search for the package on github. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Install via Gitlab: Search for the package on UOS-Gitlab. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Go to Alex
Run the Simulation
ros2 launch ceres_gazebo ceres_gazebo_launch.py
A graphical interface starts with a robot in it, spawned in an office environment. Try to add a cube. Try to move the robot. Make yourself familiar with the functionalities. The simulation, as the name tells, simulates a real robot. So when you learn to control the robot in the simulation, you will be able to control the robot in the real world. The simulation will generate the sensor data and publish them on some topics. Find out which topics. Print out some of the messages that are streamed on those topics.
Control the robot
ros2 launch uos_diffdrive_teleop key.launch
A window will open. As long as it is the activate window you can control the robot via the shown keys. Move the robot through the office world.
Visualize the Sensor Data
ros2 run rviz2 rviz2
or the shortcut:
rviz2
The robot is equipped with a laser scanner. Try to visualize the corresponding topic. Set the fixed frame to ‘base_link’. What a fixed frame is will be explained soon. Move the robot around and see how the sensor data changes. RViz will be used with the real robot to monitor processes. Gazebo not.
Use the sensor data
Write a node that filters noise from the scan. Subscribe to the topic scan
, average the distances with the direct neighboring measurements (average of 3 measurements in total) and publish the results on a new topic scan_filtered
. Visualize the results with RViz.
Point Clouds
Messages on the topic are in polar coordinates. Write a node that converts the LaserScan to a PointCloud2
message and publishes it on the topic scan_cloud
. Don’t use external libraries for the conversions. Copy the header of the LaserScan
message to the header of the PointCloud2
message. After publishing, visualize the results with RViz.
TF
Make yourself familiar with the concept of transformations. Visualize the transformations via RViz. In ROS2 there is a library called tf2 that handles all the transformations. Internally they present all the transformations as a tree. You can visualize it by calling
ros2 run rqt_tf_tree rqt_tf_tree
If it’s not installed you can install it via sudo apt install ros-humble-rqt-tf-tree
.
Read the docs: https://docs.ros.org/en/foxy/Tutorials/Intermediate/Tf2/Introduction-To-Tf2.html
Every piece of sensor data was recorded in a certain reference system at a certain time. Therefore, sensor data messages usually have a field std_msgs/Header
:
...
string frame_id
time stamp
Sometimes messages have the postfix Stamped
if they are extending a message only by a header. For example, there is a message geometry_msgs/Point
:
float64 x
float64 y
float64 z
And the corresponding geometry_msgs/PointStamped
:
std_msgs/Header header
geometry_msgs/Point point
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
std_msgs | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
tf2_ros | |
tf2_eigen |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ex02_gazebo_simulation at Robotics Stack Exchange
![]() |
ex02_gazebo_simulation package from ros2_tutorial repoex01_first_package ex02_gazebo_simulation ex03_state_estimation ex04_actions ex04_msgs ex04_nav2_client ex05_behavior_trees ex05_bt_plugins |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Tutorials for the KBS robotics labs |
Checkout URI | https://github.com/uos/ros2_tutorial.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-06 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Mock
Authors
- Alexander Mock
ex02_gazebo_simulation
Download
Git-Clone the following packages into your ROS-workspace src
directory using git:
You will need some package to run the simulation of the robot. The same software packages are installed on the robot as well.
- https://github.com/uos/ceres_robot
- https://github.com/uos/uos_tools
- https://github.com/uos/epos2_motor_controller
- https://github.com/uos/volksbot_driver
The current main branch of those software packages should be compatible with ROS2 humble. To make sure, switch all the repositories to “humble” branch instead: Go to a cloned repository folder and run git checkout humble
. After you did that for every repository, compile your workspace. If errors occur:
- ROS-Package is missing:
sudo apt-get install ros-humble-MISSING-PACKAGE
- System package is missing:
sudo apt-get install libftdipp1-dev
What to do when packages are missing?
Let’s assume the package missing_package
is missing from your computer. Try to install it in this order, finish when one command has succeeded:
- Install via apt:
sudo apt install ros-humble-missing-package
- Install via Github: Search for the package on github. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Install via Gitlab: Search for the package on UOS-Gitlab. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Go to Alex
Run the Simulation
ros2 launch ceres_gazebo ceres_gazebo_launch.py
A graphical interface starts with a robot in it, spawned in an office environment. Try to add a cube. Try to move the robot. Make yourself familiar with the functionalities. The simulation, as the name tells, simulates a real robot. So when you learn to control the robot in the simulation, you will be able to control the robot in the real world. The simulation will generate the sensor data and publish them on some topics. Find out which topics. Print out some of the messages that are streamed on those topics.
Control the robot
ros2 launch uos_diffdrive_teleop key.launch
A window will open. As long as it is the activate window you can control the robot via the shown keys. Move the robot through the office world.
Visualize the Sensor Data
ros2 run rviz2 rviz2
or the shortcut:
rviz2
The robot is equipped with a laser scanner. Try to visualize the corresponding topic. Set the fixed frame to ‘base_link’. What a fixed frame is will be explained soon. Move the robot around and see how the sensor data changes. RViz will be used with the real robot to monitor processes. Gazebo not.
Use the sensor data
Write a node that filters noise from the scan. Subscribe to the topic scan
, average the distances with the direct neighboring measurements (average of 3 measurements in total) and publish the results on a new topic scan_filtered
. Visualize the results with RViz.
Point Clouds
Messages on the topic are in polar coordinates. Write a node that converts the LaserScan to a PointCloud2
message and publishes it on the topic scan_cloud
. Don’t use external libraries for the conversions. Copy the header of the LaserScan
message to the header of the PointCloud2
message. After publishing, visualize the results with RViz.
TF
Make yourself familiar with the concept of transformations. Visualize the transformations via RViz. In ROS2 there is a library called tf2 that handles all the transformations. Internally they present all the transformations as a tree. You can visualize it by calling
ros2 run rqt_tf_tree rqt_tf_tree
If it’s not installed you can install it via sudo apt install ros-humble-rqt-tf-tree
.
Read the docs: https://docs.ros.org/en/foxy/Tutorials/Intermediate/Tf2/Introduction-To-Tf2.html
Every piece of sensor data was recorded in a certain reference system at a certain time. Therefore, sensor data messages usually have a field std_msgs/Header
:
...
string frame_id
time stamp
Sometimes messages have the postfix Stamped
if they are extending a message only by a header. For example, there is a message geometry_msgs/Point
:
float64 x
float64 y
float64 z
And the corresponding geometry_msgs/PointStamped
:
std_msgs/Header header
geometry_msgs/Point point
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
std_msgs | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
tf2_ros | |
tf2_eigen |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ex02_gazebo_simulation at Robotics Stack Exchange
![]() |
ex02_gazebo_simulation package from ros2_tutorial repoex01_first_package ex02_gazebo_simulation ex03_state_estimation ex04_actions ex04_msgs ex04_nav2_client ex05_behavior_trees ex05_bt_plugins |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Tutorials for the KBS robotics labs |
Checkout URI | https://github.com/uos/ros2_tutorial.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-06 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Mock
Authors
- Alexander Mock
ex02_gazebo_simulation
Download
Git-Clone the following packages into your ROS-workspace src
directory using git:
You will need some package to run the simulation of the robot. The same software packages are installed on the robot as well.
- https://github.com/uos/ceres_robot
- https://github.com/uos/uos_tools
- https://github.com/uos/epos2_motor_controller
- https://github.com/uos/volksbot_driver
The current main branch of those software packages should be compatible with ROS2 humble. To make sure, switch all the repositories to “humble” branch instead: Go to a cloned repository folder and run git checkout humble
. After you did that for every repository, compile your workspace. If errors occur:
- ROS-Package is missing:
sudo apt-get install ros-humble-MISSING-PACKAGE
- System package is missing:
sudo apt-get install libftdipp1-dev
What to do when packages are missing?
Let’s assume the package missing_package
is missing from your computer. Try to install it in this order, finish when one command has succeeded:
- Install via apt:
sudo apt install ros-humble-missing-package
- Install via Github: Search for the package on github. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Install via Gitlab: Search for the package on UOS-Gitlab. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Go to Alex
Run the Simulation
ros2 launch ceres_gazebo ceres_gazebo_launch.py
A graphical interface starts with a robot in it, spawned in an office environment. Try to add a cube. Try to move the robot. Make yourself familiar with the functionalities. The simulation, as the name tells, simulates a real robot. So when you learn to control the robot in the simulation, you will be able to control the robot in the real world. The simulation will generate the sensor data and publish them on some topics. Find out which topics. Print out some of the messages that are streamed on those topics.
Control the robot
ros2 launch uos_diffdrive_teleop key.launch
A window will open. As long as it is the activate window you can control the robot via the shown keys. Move the robot through the office world.
Visualize the Sensor Data
ros2 run rviz2 rviz2
or the shortcut:
rviz2
The robot is equipped with a laser scanner. Try to visualize the corresponding topic. Set the fixed frame to ‘base_link’. What a fixed frame is will be explained soon. Move the robot around and see how the sensor data changes. RViz will be used with the real robot to monitor processes. Gazebo not.
Use the sensor data
Write a node that filters noise from the scan. Subscribe to the topic scan
, average the distances with the direct neighboring measurements (average of 3 measurements in total) and publish the results on a new topic scan_filtered
. Visualize the results with RViz.
Point Clouds
Messages on the topic are in polar coordinates. Write a node that converts the LaserScan to a PointCloud2
message and publishes it on the topic scan_cloud
. Don’t use external libraries for the conversions. Copy the header of the LaserScan
message to the header of the PointCloud2
message. After publishing, visualize the results with RViz.
TF
Make yourself familiar with the concept of transformations. Visualize the transformations via RViz. In ROS2 there is a library called tf2 that handles all the transformations. Internally they present all the transformations as a tree. You can visualize it by calling
ros2 run rqt_tf_tree rqt_tf_tree
If it’s not installed you can install it via sudo apt install ros-humble-rqt-tf-tree
.
Read the docs: https://docs.ros.org/en/foxy/Tutorials/Intermediate/Tf2/Introduction-To-Tf2.html
Every piece of sensor data was recorded in a certain reference system at a certain time. Therefore, sensor data messages usually have a field std_msgs/Header
:
...
string frame_id
time stamp
Sometimes messages have the postfix Stamped
if they are extending a message only by a header. For example, there is a message geometry_msgs/Point
:
float64 x
float64 y
float64 z
And the corresponding geometry_msgs/PointStamped
:
std_msgs/Header header
geometry_msgs/Point point
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
std_msgs | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
tf2_ros | |
tf2_eigen |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ex02_gazebo_simulation at Robotics Stack Exchange
![]() |
ex02_gazebo_simulation package from ros2_tutorial repoex01_first_package ex02_gazebo_simulation ex03_state_estimation ex04_actions ex04_msgs ex04_nav2_client ex05_behavior_trees ex05_bt_plugins |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Tutorials for the KBS robotics labs |
Checkout URI | https://github.com/uos/ros2_tutorial.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-06 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Mock
Authors
- Alexander Mock
ex02_gazebo_simulation
Download
Git-Clone the following packages into your ROS-workspace src
directory using git:
You will need some package to run the simulation of the robot. The same software packages are installed on the robot as well.
- https://github.com/uos/ceres_robot
- https://github.com/uos/uos_tools
- https://github.com/uos/epos2_motor_controller
- https://github.com/uos/volksbot_driver
The current main branch of those software packages should be compatible with ROS2 humble. To make sure, switch all the repositories to “humble” branch instead: Go to a cloned repository folder and run git checkout humble
. After you did that for every repository, compile your workspace. If errors occur:
- ROS-Package is missing:
sudo apt-get install ros-humble-MISSING-PACKAGE
- System package is missing:
sudo apt-get install libftdipp1-dev
What to do when packages are missing?
Let’s assume the package missing_package
is missing from your computer. Try to install it in this order, finish when one command has succeeded:
- Install via apt:
sudo apt install ros-humble-missing-package
- Install via Github: Search for the package on github. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Install via Gitlab: Search for the package on UOS-Gitlab. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Go to Alex
Run the Simulation
ros2 launch ceres_gazebo ceres_gazebo_launch.py
A graphical interface starts with a robot in it, spawned in an office environment. Try to add a cube. Try to move the robot. Make yourself familiar with the functionalities. The simulation, as the name tells, simulates a real robot. So when you learn to control the robot in the simulation, you will be able to control the robot in the real world. The simulation will generate the sensor data and publish them on some topics. Find out which topics. Print out some of the messages that are streamed on those topics.
Control the robot
ros2 launch uos_diffdrive_teleop key.launch
A window will open. As long as it is the activate window you can control the robot via the shown keys. Move the robot through the office world.
Visualize the Sensor Data
ros2 run rviz2 rviz2
or the shortcut:
rviz2
The robot is equipped with a laser scanner. Try to visualize the corresponding topic. Set the fixed frame to ‘base_link’. What a fixed frame is will be explained soon. Move the robot around and see how the sensor data changes. RViz will be used with the real robot to monitor processes. Gazebo not.
Use the sensor data
Write a node that filters noise from the scan. Subscribe to the topic scan
, average the distances with the direct neighboring measurements (average of 3 measurements in total) and publish the results on a new topic scan_filtered
. Visualize the results with RViz.
Point Clouds
Messages on the topic are in polar coordinates. Write a node that converts the LaserScan to a PointCloud2
message and publishes it on the topic scan_cloud
. Don’t use external libraries for the conversions. Copy the header of the LaserScan
message to the header of the PointCloud2
message. After publishing, visualize the results with RViz.
TF
Make yourself familiar with the concept of transformations. Visualize the transformations via RViz. In ROS2 there is a library called tf2 that handles all the transformations. Internally they present all the transformations as a tree. You can visualize it by calling
ros2 run rqt_tf_tree rqt_tf_tree
If it’s not installed you can install it via sudo apt install ros-humble-rqt-tf-tree
.
Read the docs: https://docs.ros.org/en/foxy/Tutorials/Intermediate/Tf2/Introduction-To-Tf2.html
Every piece of sensor data was recorded in a certain reference system at a certain time. Therefore, sensor data messages usually have a field std_msgs/Header
:
...
string frame_id
time stamp
Sometimes messages have the postfix Stamped
if they are extending a message only by a header. For example, there is a message geometry_msgs/Point
:
float64 x
float64 y
float64 z
And the corresponding geometry_msgs/PointStamped
:
std_msgs/Header header
geometry_msgs/Point point
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
std_msgs | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
tf2_ros | |
tf2_eigen |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ex02_gazebo_simulation at Robotics Stack Exchange
![]() |
ex02_gazebo_simulation package from ros2_tutorial repoex01_first_package ex02_gazebo_simulation ex03_state_estimation ex04_actions ex04_msgs ex04_nav2_client ex05_behavior_trees ex05_bt_plugins |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Tutorials for the KBS robotics labs |
Checkout URI | https://github.com/uos/ros2_tutorial.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-06 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Mock
Authors
- Alexander Mock
ex02_gazebo_simulation
Download
Git-Clone the following packages into your ROS-workspace src
directory using git:
You will need some package to run the simulation of the robot. The same software packages are installed on the robot as well.
- https://github.com/uos/ceres_robot
- https://github.com/uos/uos_tools
- https://github.com/uos/epos2_motor_controller
- https://github.com/uos/volksbot_driver
The current main branch of those software packages should be compatible with ROS2 humble. To make sure, switch all the repositories to “humble” branch instead: Go to a cloned repository folder and run git checkout humble
. After you did that for every repository, compile your workspace. If errors occur:
- ROS-Package is missing:
sudo apt-get install ros-humble-MISSING-PACKAGE
- System package is missing:
sudo apt-get install libftdipp1-dev
What to do when packages are missing?
Let’s assume the package missing_package
is missing from your computer. Try to install it in this order, finish when one command has succeeded:
- Install via apt:
sudo apt install ros-humble-missing-package
- Install via Github: Search for the package on github. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Install via Gitlab: Search for the package on UOS-Gitlab. Check if it’s a valid ROS2-humble package. Download
missing_package
into yoursrc
-folder and compile it - Go to Alex
Run the Simulation
ros2 launch ceres_gazebo ceres_gazebo_launch.py
A graphical interface starts with a robot in it, spawned in an office environment. Try to add a cube. Try to move the robot. Make yourself familiar with the functionalities. The simulation, as the name tells, simulates a real robot. So when you learn to control the robot in the simulation, you will be able to control the robot in the real world. The simulation will generate the sensor data and publish them on some topics. Find out which topics. Print out some of the messages that are streamed on those topics.
Control the robot
ros2 launch uos_diffdrive_teleop key.launch
A window will open. As long as it is the activate window you can control the robot via the shown keys. Move the robot through the office world.
Visualize the Sensor Data
ros2 run rviz2 rviz2
or the shortcut:
rviz2
The robot is equipped with a laser scanner. Try to visualize the corresponding topic. Set the fixed frame to ‘base_link’. What a fixed frame is will be explained soon. Move the robot around and see how the sensor data changes. RViz will be used with the real robot to monitor processes. Gazebo not.
Use the sensor data
Write a node that filters noise from the scan. Subscribe to the topic scan
, average the distances with the direct neighboring measurements (average of 3 measurements in total) and publish the results on a new topic scan_filtered
. Visualize the results with RViz.
Point Clouds
Messages on the topic are in polar coordinates. Write a node that converts the LaserScan to a PointCloud2
message and publishes it on the topic scan_cloud
. Don’t use external libraries for the conversions. Copy the header of the LaserScan
message to the header of the PointCloud2
message. After publishing, visualize the results with RViz.
TF
Make yourself familiar with the concept of transformations. Visualize the transformations via RViz. In ROS2 there is a library called tf2 that handles all the transformations. Internally they present all the transformations as a tree. You can visualize it by calling
ros2 run rqt_tf_tree rqt_tf_tree
If it’s not installed you can install it via sudo apt install ros-humble-rqt-tf-tree
.
Read the docs: https://docs.ros.org/en/foxy/Tutorials/Intermediate/Tf2/Introduction-To-Tf2.html
Every piece of sensor data was recorded in a certain reference system at a certain time. Therefore, sensor data messages usually have a field std_msgs/Header
:
...
string frame_id
time stamp
Sometimes messages have the postfix Stamped
if they are extending a message only by a header. For example, there is a message geometry_msgs/Point
:
float64 x
float64 y
float64 z
And the corresponding geometry_msgs/PointStamped
:
std_msgs/Header header
geometry_msgs/Point point
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
rclcpp | |
std_msgs | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
tf2_ros | |
tf2_eigen |