This page and its subpages contain the curriculum, exercises and other supporting data for a series of tutorials aimed at teaching DPRG members how to use ROS2 in their robots for logging and analysis purposes.
The scope of the workshops is what seems most useful to DPRG members, who broadly use Windows PCs (but not exclusively), and who often use microcontrollers like Arduino running a subsumption stack as the main robot computer. What seems useful is to provide tools for logging data and analyzing it during or after an operation or mission, and for running the navigation stack.
Workshops ARE:
ROS2 running on RPi or on Windows or Linux PC. Windows uses a VM. ROS may be running in a docker container (see the ROS2 Docker tutorial)
PC running Windows 10 or 11, or the Ubuntu release corresponding to the current ROS release (Ubuntu 24.04 for ROS Jazzy)
How to capture bag files
How to use analysis tools: terminator, CLI commands, swri_console, rqt_*, plotjuggler, rviz, foxglove-studio
How to create and build ROS2 SW packages on RPi
How to add instrumentation to your robot code
Custom debug messages
micro-ROS on Arduino and ESP32
C++ and python for coding
gazebo simulation - how to run
Workshops ARE NOT:
How to build a broadly ROS-based robot
ROS1
Robot algorithms
Hardware
git, or other development tools generally
OO concepts and practice in C++, Python (though these will be used)
The context diagram below shows the scope of the workshop series: the software running on the telemetry RPi and the laptop. The specific learning objective is to learn how to build and use ROS2 tools in a telemetry-gathering and analysis use case. This use case is chosen because it provides broad exposure to ROS2 and knowledge and experience that is potentially broadly useful, while avoiding peeling the "make your robot a ROS2 robot" onion. More advanced topics may be covered in future units: services, actions.
Ability to install packages in Ubuntu
Ability to use & modify docker config if user is using docker
Users configure the laptop or an RPi to enable remote access and install ROS. We test remote access.
HW required:
Laptop or PC or RPi capable of displaying GUIs and terminal windows.
Desired: a real robot that is a target for ROS2 exercises
Content outline
Review ROS2 concepts: networking, DDS, micro-ros, nodes, packages, pub-sub, services, actions
ROS2 CLI Tools tutorials:
Turtlesim
Do Nodes & topics tutorials
CLI, gui tools and terminator
Launching nodes by hand
Launching nodes from a launchfile
Logging and bags, bag recording and playback
Tools for bag analysis
Content outline
Do ROS2 Client Library tutorials related to publishing telemetry:
Colcon build package, create workspace, create package
Writing a simple publisher and subscriber (C++ or python)
Creating custom msg file, Implementing custom interfaces
Modify a telemetry-output package
Create custom message
Create launch file to run it all
Console output
Content outline
uROS: supported environments, constraints
Other techniques for capturing robot data into the ROS2 environment
examples
Add a ROS telemetry node running on an RPi to your personal robot. (You should know how by now.)