ROS 2 Tips & Tricks

Table of Contents
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).

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