Repo symbol

ros-d2 repository

d2 ros2 diagramming
Repo symbol

ros-d2 repository

d2 ros2 diagramming
Repo symbol

ros-d2 repository

d2 ros2 diagramming
Repo symbol

ros-d2 repository

d2 ros2 diagramming
Repo symbol

ros-d2 repository

d2 ros2 diagramming example_adder_node

Repository Summary

Description Exports ROS2 nodes (publishers, subscribers and services) into a D2 file so they can be visualised.
Checkout URI https://github.com/greenroom-robotics/ros-d2.git
VCS Type git
VCS Version main
Last Updated 2024-10-10
Dev Status UNKNOWN
Released UNRELEASED
Tags d2 ros2 diagramming
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
example_adder_node 0.0.0

README

ros_d2

Banner

Exports ROS2 nodes (publishers, subcribers and services) into a D2 file so they can be visualised and serialised for later use.

Features

  • Export runtime ROS2 system architecture (nodes, services, topics, clients) to .d2 (using ros2cli)
  • Powerful visualisation and theming provided by D2
  • Simple serialisable diagram format
  • Ros node descriptions pulled from the package.xml
  • Topic QOS descriptions
  • Action servers / clients?
  • Topic Types (--verbose flag)
  • Advanced theming
  • Pytest helpers that ensure your ROS2 System architecture matches that of your .d2 diagram
  • Better testing on this repo!
  • ros_d2 export-launch-files command that will export a .d2 file for each of your launch files
  • ros_d2 render command that will render all .d2 files in the current directory

Examples

Simple

Simple example

More complex applications

Example

Installation

pip install ros-d2
ros_d2 export --help # prints help
# If you get an error about "No module named 'ros2cli'" - ros has not been sourced!

Requirements

  • ROS2 + Colcon
  • D2

Usage

Exporting a diagram

  1. Launch your ROS2 system
  2. Source ROS
  3. Use ros_d2 to export your runtime ros system to a .d2 file
  ros_d2 export ros-diagram.d2
  
  1. Render your diagram using d2.
  ros_d2 render # to render ALL .d2 files in the current directory
  # or...
  d2 --layout dagre ros-diagram.d2 # to use d2 directly
  

Exporting diagrams for all launch files

If you want to create a .d2 and .svg alongside each of your ros2 .launch.py files. You can use the following script:

  # Source ros: eg) `source /opt/ros/humble/setup.bash`
  # Build your ros2 workspace: eg) `colcon build`
  # Source your ros2 workspace: eg) `source install/setup.bash`
  ros_d2 export-launch-files
  ros_d2 render
  

Development

Prerequisite

Installation

following the steps below to setup the project:



```bash
# Clone the repository
git clone git@github.com:Greenroom-Robotics/ros-d2.git && cd ros-d2

# Install all dependencies
pip install -e ./src/ros_d2

Example usage

From the root of this repo:

File truncated at 100 lines see the full file

Repo symbol

ros-d2 repository

d2 ros2 diagramming
Repo symbol

ros-d2 repository

d2 ros2 diagramming
Repo symbol

ros-d2 repository

d2 ros2 diagramming
Repo symbol

ros-d2 repository

d2 ros2 diagramming