-
Notifications
You must be signed in to change notification settings - Fork 0
System Diagram
- Clouds - Ideas that have not been thoroughly designed due to lack of direction or strong dependence on information that will appear some time in the future.
- Hexagons - References/Connections to physical components where a direct software representation does not exist. There is an actual camera node but there is not a wheels node. We use a generic serial node to communicate with the wheels, so that component is a hexagon.
- Dashed line - A wireless connection. Label indicates communication protocol.
- (Transformed) - An diagram-only attribute for published messages that indicate that the actual message published has been transformed into the type displayed on the diagram. Apriltag Detectors actually output a
PoseObservation
struct that is transformed into just anIsometry
before being fed toLocalizer
. - [type] - An array of some type.
[Point3]
is an array of 3-dimensional points.
Lunabot
is the launch file, which carries special meaning in ROS
but here it is just a Rust program that initializes and runs all the nodes in main
. No nodes are initialized by other nodes.
Care was taken to use the actual Rust type for each published message. If the actual Rust type lacks meaning on its own (ie. f32
), the conceptual name is used. The Arm Angle is published from the arm-driver
to telemetry
, but in actuality it is just an f32
, and not a custom type with that name. The conceptual name is also used when concrete types do not exist yet, such as the Commands sent from telemetry
to the AI.
The only exception to this is the costmap message. It is actually a Matrix<usize, Dyn, Dyn, ...>
(ie. a dynamically sized 2D matrix of non-negative integers). The actual concrete type is too verbose to write, so IntMatrix
is used instead.