Meeting Minutes - Artem1199/ECE-HACoSR2 GitHub Wiki

Galois Inc Meetings 2 (January 28th, 2020)

Note on PDS;

  • Introduction is unclear on what this project is

What questions do we have for this PDS?

  • The PDS looks good
  • Do we need written approval, will an email work?
  • Good start and plan for the year
  • Sliding mode controller instead of non-linear controller is a good idea

Professor recommended sliding mode controller.

  • Still has an adaptive method

For Kind2

  • Install Nix package and use NIX
  • Use Ocaml 4.0.4

Lustre to Rust

  • Boiler plate, harness to run Cargo

DockerHub Kind2 work well

Equivalence checking on the Rust library

  • Implement your own few lines of code for the PID controller
  • You could use an online PID library aswell
  • Library to can used as an example to start and compared to lustre generator
    • (PID_control 7.2)
    • Reset property an we can verify
    • Potentially used to reduce the into the a system after an idle

Galois does not want to see the schedule.

Galois Inc Meetings 1 (December 17th, 2019)

Leverage formal verification, control, on an embedded device

Dive into control design and verification

  • Hardware Design
  • Design Software
  • Traceability that the design matches the code base

We will use tools that have not been used for controls before

Embedded Device + Rust Complication will be used

Agenda

  • Meet after the requirements document.
  • Available resources are there
  • more research will be necessary

Modify Lustre/Kind2 Rust code generator to generate embedded Rust

  • Simulator dynamics of the robot
  • Test on the robot each time

Lustre

  • Stream or flow language
  • Stream of data comes in and comes out
  • You can ask questions about the model(prior state)
  • Pre-command
  • How a system evolves over time
  • Currently it's for a stand alone simulation
  • properties on model should be on the code

Linear or Discrete math is the limit

  • Lean can handle more math

Start w/ something small for a PID controller -quickcheck static check

    • used to verify properties on a model

Start with a linear controller

  • multiple gain, linear, or non linear

Non-Linear Controller

  • We use a standard depository, commit to it early and often
  • Use Github issues for things that are unclear

Verification a property that should hold for all domains.

Given this property is there an initial condition that would cause failure

  • Handbook of model checking can help

Robot information

  • Sampling + Statistical method
  • Yaw, tilt, torque
  • Test will my design create a stable controller
    • Stable vs. Oscillating, we don't want to move and don't want it to be unstable

Stable vs. Robust

Ideas

  • BangBang controller for motor deadzone
  • Sliding mode controller
  • MPU
  • Motor encoders

Task 1

  • Replace controller and recompile on new processor
  • Think about VCR