Skip to content

Quick Start

A complete walkthrough from zero to colorized output.


Step 1 — Install

git clone https://github.com/mlisi1/DendROS
cd DendROS && bash install.sh && source ~/.bashrc

Step 2 — Scaffold a config

Run dendros init from inside your bringup package:

cd ~/ros2_ws/src/my_bringup
dendros init

Recursive mode

If your launch file includes other packages, use --recursive to follow them:

dendros init --recursive          # follow IncludeLaunchDescription / <include>
dendros init --recursive --labels # also auto-generate short badge labels

dendros init --recursive --labels
[dendROS] package: my_bringup [dendROS] scanning (recursive) launch files… [dendROS] main.launch.py: 2 node(s) [dendROS] found references to: nav2_bringup, slam_toolbox [dendROS] nav2_bringup/bringup_launch.py [install]: 8 node(s) [dendROS] slam_toolbox/online_async_launch.py [source]: 1 node(s) [dendROS] found 11 node(s) in 3 group(s) [dendROS] created config/dendROS.yaml

Step 3 — Edit the config

Open the generated config/dendROS.yaml and set colors and labels:

groups:
  nav2_bringup:
    color: "bold green"
    label: "NAV"
    nodes:
      - bt_navigator
      - controller_server
      - planner_server

  slam_toolbox:
    color: "bold blue"
    label: "LOC"
    nodes:
      - slam_toolbox

defaults:
  color_mode: tag_only
  show_group_tag: true
  unmatched_color: null

See Configuration for the full format and Colors for all accepted values.


Step 4 — Build and launch

cd ~/ros2_ws
colcon build --packages-select my_bringup
source install/setup.bash
ros2 launch my_bringup main.launch.py

Done

Your terminal output is now colorized. No other changes to your launch files or ROS 2 setup are needed.

Colored Terminal Output

Terminal Output


Troubleshooting

No colors showing

Run with debug mode:

DENDROS_DEBUG=1 ros2 launch my_bringup main.launch.py
If you see passthrough mode, the config was not discovered. Verify:

  • The package was built and you sourced install/setup.bash.
  • config/dendROS.yaml is installed. Check CMakeLists.txt for:
    install(DIRECTORY config/ DESTINATION share/${PROJECT_NAME})
    
Nodes not matching expected colors

Check the debug summary — it prints each group and its patterns. Compare against raw output:

DENDROS_DISABLE=1 ros2 launch my_bringup main.launch.py 2>&1 | grep '^\['
Node names are matched after stripping the -N suffix. Use wildcards (nav2_*) for nodes you don't know in advance.

Temporarily disable

For a single invocation, prefix the command:

DENDROS_DISABLE=1 ros2 launch my_bringup main.launch.py
To toggle colorization for the whole shell session:
dendros disable   # off until you run dendros enable
dendros enable