Skip to content

mlisi1/DendROS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DendROS

DendROS

Color-coded ROS 2 output — because a wall of white text from 32 nodes is nobody's debugging tool.

CI   License   ROS 2 compatible

📖 Documentation


You launched your stack. Nav2, SLAM, hardware drivers, your own nodes — all printing to the same terminal, all the same color. By the time you find the line you were looking for, it has scrolled past.

DendROS assigns each group of nodes its own color. You could have localization in blue, navigation in green, hardware in orange — defined once in a small YAML file that lives inside your package. No launch file edits. No new ROS 2 dependencies. Packages without a config pass through completely unchanged. It also features some quality of life improvements for ROS outputs.


Features

  • Color by group

    One config file per package maps node groups to colors, badges, and display rules

Colored Terminal Output

  • All main ros2 CLI commands wrapped

    ros2 node list, ros2 node info, ros2 service list, ros2 action list, ros2 topic list, ros2 param list, and ros2 param describe — all colorized with the same group colors and badges, no extra config required. → Full feature list

  • One command to get started

    Too lazy to look up how DendROS config works? We got you covered: dendros init scans your launch files and generates an initial config for you

Colored Terminal Output

  • Crash alert

    An inline banner flags crashed nodes the moment they die, lists the exit code, and repeats periodically so you don't miss it in fast-scrolling output

Colored Terminal Output

  • Traceback highlighting

    Python tracebacks are colored automatically: bold red for the header and exception line, dim red for the frames; configurable per session

Colored Terminal Output

  • Keyword highlighting

    Mark specific words or patterns in bold or in a custom color — per group, or package-wide.

Colored Terminal Output

  • Parameter change alert

    When a node's parameter changes at runtime — via ros2 param set or any parameter service client — an inline notification appears in the launch terminal showing the node, parameter name, and old→new value. Two styles: compact inline and a full-width inverted block that's hard to miss in busy logs.

param change alert inline

param change alert inverted

  • Truly non-invasive

    Shell-level pipe; you won't loose autocompletion or aliases for launch files

  • Works everywhere

    Host install, Docker, any ROS 2 distribution

Install

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

Quick start

Go to your bringup launch file package (or any package containing launch files) and run dendros init to generate an initial config file listing the nodes called in the launch file. You can use --recursive (or -r) to include nodes called by nested launch files.

cd ~/ros2_ws/src/my_bringup
dendros init          # scan your launch files → write config/dendROS.yaml

Edit the colors in the generated config, then build and launch as usual:

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

Global settings

If you want to customize the global configs, dendros config opens an interactive TUI to tune defaults across all your packages. Use the arrow keys to navigate or to change the selected option.

dendros config TUI

MIT — see LICENSE.

About

Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages