2024-01-28 ZP Sync
Sys Manager
M1 sys Manager is completely different M2, so we should call someone new to take over the task
Should define the M2 sys manager
Right now the sys manager passes the controller data to the AM, AM process, and output to motors
No interthread currently, there was an interthread doc, which didn’t determine the specific implementation – https://uwarg-docs.atlassian.net/wiki/spaces/Meetings/pages/2263351369 https://www.freertos.org/Inter-Task-Communication.html
SM should only init the freertos threads, and kick them to start, doing interthread comm, making decision
Should SM read RC input, should SM do this or TM do this?- SM for now
Â
Attitude Manager
M2 AM takes the RC and outputs Motor
Anni: how does everything talk to each other in different milestone
M2 needs RC input, need to talk to TM, RC got from TM
M3, output needs to change to 3-axis angular rate instead of percentage,
M3 spit out pid, current position, …
Should sensor fusion belong to AM? The sensor fusion output data struct should be defined
Telemetry Manager
needs MAVLink message – how should the TM get the data?
Don’t not take RC because tm doesn’t process the data
M2: Stream GLOBAL_POSITION_INT & ATTITUDE messages to the ground station to be displayed on Mission Planner.
TM will manage communication with the ground station via RFD 900 Radio
RFD 900 Radio RX: Recieve Mavlink Data from Mission Planner.
RFD 900 TX: Send Mavlink data to Mission Planner.
TM will decode/encode Mavlink data
Encode: Into Mavlink bytes to send out Mission Planner transmitted via RFD 900
Decode: To decode raw Mavlink bytes received from Mission Planner received via RFD 900.
TM will communicate with other managers via [UNDEFINED COMMUNICATION MEDIUM]: Maybe for TM, this should go in M3?
ROS LCM?
Byte Streams?
MQTT Style?
TM will ingest drone state data (lat, lng, velocity, acceleration, etc…) via C++ references
Should these references be passed at TM instantiation?
Is there a finite list of drone state data TM will be ingesting?
Sample rate?
TM will have an input/output testing strategy?
M3: [UNDEFINED AS OF JAN 28, 2024]
Â
Pathing Manager
Need to figure out data going in and out – too confused to make progress
Doc:Path Management Architecture which documented the data TM is expected to receive
Data in is defined in the doc, M6 M7 data in are the same structure
M6 data out, should be 3-axis angular stuff, need to define the data structure, should be largely the one required for AM, need to minic the RC output
Driver
Â
Data In/Out
am
m2 in
rc
m2 outrc
actuator pos
m3 inrc
m3 outrc
desired set points
current pos
axis pid values
pm
m6 in
see confluence
m6 outpitch, yaw, roll
mimic rc
m7 insee confluence
m7 outpitch, yaw, roll
mimic rc
tm
sm
start other managers in threads
m2 inrc
m2 outrc
Â