Hi ROS community,
we are building a quite complex ROS system at StreetScooter.
For our industrialization we want to be sure that the running architecture fits to the designed architecture.
One way to ensure this is to use code generators like this one:
This systems engineering approach is used in many industries, but in my view it kills creativity and system understanding by to much abstraction.
Also this papyrus does not seem to work stable.
So I would like to discuss another approach:
- Create a GraphML based template for a flowchart that displays nodes, topics and services.
- Design your architecture based on this template flowchart.
- Create a fingerprint for your robot with tools like: https://github.com/aliasrobotics/aztarna
- Create a CI test, that reads data from your design documents and compares it with the fingerprint of the running ROS architecture.
In this way we can keep the consistency between designed and implemented architecture to a certain level.
What do you think about this? Do you see better or other ways to maintain consistency?