#Robotics
ROS 2 Tips & Tricks
Small configurations for your ROS 2 workflow

Here are a few tips and tricks and configurations to add to your system while working with ROS 2.
Timeline
Here is a timeline for recent previous distributions of ROS. When searching for a ROS packages on GitHub, the names of the distributions is often used as a repo branch. For example, at the time of writing this article, the turtlebot4_robot
package had jazzy
as its main branch. If you're working with a ROS 2 distribution that is not supported yet, prioritize using repositories with ROS 2 compatibility, as it is easier to migrate code between ROS 2 distributions (foxy
➡️ jazzy
, for example) than to migrate from ROS (1) to ROS 2 (noetic
-> humble
, for example).

<figcaption class="mb-4">
Ubuntu, ROS and ROS 2 timeline
</figcaption>
Terminal settings
Add the following lines to your terminal rc
file (e.g.: ~/.bashrc
):
# Console output colorizing
export RCUTILS_COLORIZED_OUTPUT=1
# Console output formatting
export RCUTILS_CONSOLE_OUTPUT_FORMAT="[{severity} {time}] [{name}]: {message} ({function_name}() at {file_name}:{line_number})"
Colcon
You can easily cd
to the source of a specific ROS 2 package with colcon_cd
. To enable it, add the following line to your terminal configuration file:
source /usr/share/colcon_cd/function/colcon_cd.sh
export _colcon_cd_root=/opt/ros/${ROS_DISTRO}/
You can also enable argcomplete
for colcon
. This speeds up calling colcon commands by enabling tab completion with colcon
.
source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash
colcon
mixins are also useful to build with specific C++ build types without having to remember tedious and long commands. In your ~/colcon_ws
, run these commands:
colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
colcon mixin update default
rosdep
rosdep
is the dependency resolver to install dependencies for the ROS 2 packages in a colcon
workspace.
To initialize rosdep
on your system, use these commanda
# Initialize and update rosdep
sudo rosdep init
rosdep update
And then, in the root directory of your colcon_ws
, use this command to install the dependencies of the packages available in the workspace:
rosdep install --from-paths src -y --ignore-src
⚠️ and for ROS 1 ⚠️
rosdep install --from-paths src --ignore-src -r -y
ROS 2 package creation
You can create a ROS 2 colcon package in the src/
directory of your colcon
workspace with this command:
ros2 pkg create --build-type ament_cmake --license <license> <package_name>
Here are the licenses options that are supported by ROS 2, when creating a package:
$ ros2 pkg create --license ? package
Supported licenses:
Apache-2.0
BSL-1.0
BSD-2.0
BSD-2-Clause
BSD-3-Clause
GPL-3.0-only
LGPL-3.0-only
MIT
MIT-0
Robotics Resources
Learning resources for anyone starting in robotics

Here is a slightly curated list of learning resources and useful links in robotics. For resources on AI, visit the AI resources post. If you have other great resources to suggest, feel free to contact me.
General
Newsletters
Robot Operating System
Robot Operating System (ROS) is a commonly used open-source robotics middleware. Please note: there is a space in ROS 2: ROS 2
.
A new ROS 2 distribution is released every year on May 23rd, the World Turtle Day. Each distro is related to a release of Ubuntu. Here are the names of the last distributions, with their corresponding Ubuntu versions:

<figcaption class="mb-4">
Ubuntu, ROS and ROS 2 timeline
</figcaption>
Official resources:
- Website
- Documentation
- The tutorials are great for anyone considering to begin with ROS 2
Robots
Legged Robots
- RSL RL, a library with RL algorithms for legged robotics, from the Robotic Systems Lab (RSL), Prof. Dr. Marco Hutter, ETH Zurich
Robot Learning
- LeRobot, a low-cost robotics project by HuggingFace, for accessible end-to-end robot learning
- Robot Learning Course, course material for Marc Toussaint's and Wolfgang Hönig's Robot Learning course in TU Berlin.
Simulation
- Genesis, a generative simulation tool for robotics
Datasets
Autonomous Driving
- MAN TruckScenes, World's First Public Dataset For Autonomous Trucking
- Challenge on HuggingFace Spaces