Skip to content

Commit 8a31427

Browse files
committed
added detailed flowchart
1 parent e08cb71 commit 8a31427

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# Code Flow Document
2+
## Scope
3+
The purpose of this file is to outline the desired framework of the auton stack (and the simulator + logging capabilities) of the RD25 software on a file level. This document should be referenced when writing new files for this framework.
4+
5+
The large boxes are ROSNodes. Each individual smaller box is a file. Data within ROSNodes are transferred via function calls, while data between node are transferred via publishers and subscribers.
6+
7+
## Viewing On VSCode
8+
Install `bierne
9+
r.markdown-mermaid` from the extension marketplace to render the charts in VSCode markdown preview.
10+
11+
## Chart!
12+
13+
14+
```mermaid
15+
flowchart LR
16+
17+
subgraph "ROS Topic - Raw State"
18+
self/raw_state
19+
other/raw_state
20+
self/gps
21+
self/encoder_speed
22+
self/stepper_steering
23+
end
24+
25+
subgraph "ROS Topic - Clean State"
26+
self/state
27+
other/state
28+
end
29+
30+
subgraph "ROS Topic - Trajectory"
31+
self/global_traj
32+
self/cur_traj
33+
end
34+
35+
subgraph "ROS Topic - Output"
36+
self/steering
37+
end
38+
39+
subgraph "ROS Topic - Debug"
40+
self/ins_topics
41+
self/gnss1
42+
self/gnss2
43+
self/firmware_debug
44+
self/sanity
45+
end
46+
47+
subgraph "Serial Node"
48+
ROS_serial_translator
49+
serial_port_parser
50+
end
51+
52+
subgraph "UKF Node"
53+
UKF
54+
end
55+
56+
subgraph "Buggy State Node"
57+
buggy_state_converter
58+
end
59+
60+
subgraph "Debug Telem Node"
61+
telemetry
62+
watchdog
63+
end
64+
65+
subgraph "Pathplanner Node - 10 Hz"
66+
initialize_trajectory
67+
path_planner
68+
trajectory_wrapper
69+
end
70+
71+
subgraph "Controller Node - 100 Hz"
72+
controller
73+
end
74+
75+
self/encoder_speed --> |"10 Hz"| UKF
76+
self/stepper_steering --> |"10 Hz"| UKF
77+
self/gps --> |"10 Hz"| UKF
78+
UKF --> |"100 Hz"| self/raw_state
79+
INS --> |"100 Hz"| self/raw_state
80+
INS --> |"100 Hz"| self/ins_topics
81+
INS --> |"10 Hz"| self/gnss1
82+
INS --> |"10 Hz"| self/gnss2
83+
84+
ROS_serial_translator --> |"10 Hz - SC"| self/encoder_speed
85+
ROS_serial_translator --> |"10 Hz - SC"| self/stepper_steering
86+
ROS_serial_translator --> |"10 Hz - SC"| self/gps
87+
ROS_serial_translator --> |"10 Hz - SC"| other/raw_state
88+
ROS_serial_translator --> |"100 Hz - NAND"| self/raw_state
89+
ROS_serial_translator --> |"100 Hz"| self/firmware_debug
90+
self/steering --> |"100 Hz"| ROS_serial_translator
91+
92+
other/raw_state --> |"10 Hz"| buggy_state_converter
93+
buggy_state_converter --> |"10 Hz"| other/state
94+
self/raw_state --> |"100 Hz"| buggy_state_converter
95+
buggy_state_converter --> |"100 Hz"| self/state
96+
97+
initialize_trajectory --> |"once"| self/global_traj
98+
initialize_trajectory --> |"once"| self/cur_traj
99+
self/global_traj --> path_planner
100+
self/cur_traj --> path_planner
101+
self/state --> path_planner
102+
other/state --> path_planner
103+
path_planner --> self/cur_traj
104+
105+
self/cur_traj --> controller
106+
self/state --> controller
107+
controller --> self/steering
108+
109+
self/state --> telemetry
110+
other/state --> telemetry
111+
self/cur_traj --> telemetry
112+
watchdog --> self/sanity
113+
114+
```

0 commit comments

Comments
 (0)