Skip to content

Commit

Permalink
Add package dependency graph using graphviz extension
Browse files Browse the repository at this point in the history
Add a simple package dependency graph, using graphviz.
Use the graphviz Sphinx extension to directly link to the dot file,
instead of manually creating an image file.
  • Loading branch information
luator committed Sep 3, 2024
1 parent ad396af commit 8bb12b8
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 0 deletions.
1 change: 1 addition & 0 deletions conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
# ones.
extensions = [
"sphinx.ext.intersphinx",
"sphinx.ext.graphviz",
"sphinx.ext.todo",
]

Expand Down
24 changes: 24 additions & 0 deletions images/package_relationship.dot
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# to view while editing, use `dot -Tpng package_relationship.dot | display`
digraph PACKAGES {
edge [style=dashed fontsize=10];

# invisible edge to make the robot_interfaces node appear on top
robot_interfaces -> robot_fingers [style=invis];

entry [label="entry point\nfor users" shape=none];

entry -> robot_fingers [style=solid];
entry -> trifinger_simulation [style=solid];
robot_fingers -> robot_interfaces [label="interface\ndefinition"];
robot_fingers -> blmc_drivers [label="hardware\ncommunication"];
robot_fingers -> trifinger_cameras [label="camera\naccess"];
robot_fingers -> trifinger_object_tracking [label="camera + \nobject tracking"];
robot_fingers -> robot_properties_fingers [label="forward/inverse\nkinematics"];
trifinger_cameras -> robot_interfaces [label="interface\ndefinition"];

# only for some example scripts, so not really worth adding here
#trifinger_object_tracking -> robot_properties_fingers [label="forward/inverse\nkinematics"];

trifinger_object_tracking -> trifinger_cameras [label="camera\naccess"];
trifinger_simulation -> robot_properties_fingers [label="robot model"];
}
7 changes: 7 additions & 0 deletions references/package_overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ Below the main software packages used for to the TriFinger robots are listed. S
some additional utility packages from the ODRI project. Below are only the packages
that are specifically written for the TriFinger robots.

|
.. graphviz:: ../images/package_relationship.dot
:align: center

|

- **robot_interfaces** --- [`source <https://github.com/open-dynamic-robot-initiative/robot_interfaces>`__ | :doc:`docs <robot_interfaces:index>`]
Generic interface for the frontend-backend-system through which the user
Expand Down

0 comments on commit 8bb12b8

Please sign in to comment.