24 March Update from AK - GaloisInc/HighAssuranceControllerOfSelfBalancingRobotCapstone GitHub Wiki
Issue #1 - Documentation
This is a continuation of- Note1: Checkout project schedule for entire project overview
- Note2: These are only the tasks completed by Artem K
Replacing the Bluetooth Telemetry for MKR1010 board:
- Attempted to use HTTP communication to write data directly to Apache2 Server, and store in SQL
- HTTP string is too long, significantly slowed down the processor, and caused hang ups while running
- Went with basic TCP communication with Rust TCPStream program
- Had to create encoding on the Arduino side, and decoding on Rust side to reduce data size to 8 bytes
- Data is saved to
mySQL
usingdiesel-rs
- Created website for data visualization and history using PHP+Javascript
- Data can either be displayed as a livestream from the Arduino whenever the robot is running
- Data can also be saved and viewed in a later time.
- Bought cheap domain for our website: otisdata.xyz/live.php
- As of now:
- Robot runs using Rust generated PID controller
- Robot can run for hours without hanging up
- Robot has telemetry with webserver
- Data history and visualization is working
Embedded Rust Generation with Lustre
- Installed Kind2 and generated Rust Code tested,
u_0
input - Started researching various methods of generating Lustre code from Simulink:
- Simulink Gateway by SCADE (Commercial, not available to us)
- SS2Lus (aka Sim2Lus, S2L)
- Only works for MatLab Rev 12-13
- Identified Ocaml Rust generation program
Next Steps:
- Create Lustre PID controller (currently in progress)
- Generate Rust PID controller, modify generated PID controller until it works on MKR1010
- Note necessary modifications
- Apply modifications to Kind2 LustreToRust file
Potential Issues:
- Ran into issues using
structs
in Rust when attempting the first PID implementations with C++. Will deal with this issue in Next Step 2
Appendix
- Weekly Meetings Notes
- Detailed Project Schedule with Task Completion Tracking: Project Schedule Status