Meeting Agenda & Notes - Artem1199/ECE-HACoSR2 GitHub Wiki

Date: 05/31/2020

  • Galois presentation notes
    • Demos?
      • Switch between controllers
    • Show code
      • Kind 2 modifications
      • Verification attempts
      • FLC build
  • Google docs
    • Report done in there then moved to LaTex
  • Practice presentation Wed/Thursday/Early Friday
  • Topics
    • Artem - Rust/Hardware
    • Ignacio - FLC
    • Andrew - Verification
    • Yuqi - Background & Previous team's robot

Date: 05/27/2020

Agenda

New Business

  • When to do final presentation for Galois?
    • June 11th 1:00 PM
    • Find out length of presentation & if it will be virtual
  • Rehearse for class presentation in one week

What has everyone done this past week?

  • Artem
    • Testing
  • Ignacio
    • Final controller stuff
  • Yuqi
    • Wrote up background for report
  • Andrew
    • Did some last ditch verification attempts
      • Problem is system is open ended and possibilities balloon as the count increases

What is everyone going to do from here?

  • Artem
    • Test plan
      • C PID vs our PID
      • Other tests that are good to have
  • Ignacio
    • Start writing up FL stuff for report
  • Yuqi
    • Background for report
  • Andrew
    • Will start slides & put link in chat

Any blocks?

  • Artem
  • Ignacio
  • Yuqi
  • Andrew

Date: 05/21/2020

Agenda

New Business

  • Last technical meeting
  • Artem added an integral factor to the FLC during the meeting which resulted in a much smoother motion in the robot

What has everyone done this past week?

  • Artem
    • Wrote FLC in Lustre
      • Code compiled to Rust fine
      • No integral however, might be causing the oscillation
      • Actual, now working better with integral added
  • Ignacio
    • Met with Matt Clark
    • Working on FLC
      • Oscillates in simulation more than hoping for
  • Yuqi
    • Report stuff
      • Mathematical background
  • Andrew
    • Worked on verification

What is everyone going to do from here?

  • Artem
    • Testing
  • Ignacio
    • FLC tweaking
  • Yuqi
    • More report writing
  • Andrew
    • Report writing

Any blocks?

  • Artem
  • Ignacio
  • Yuqi
  • Andrew

Date: 05/13/2020

Agenda

New Business

  • Artem figured out how to eliminate parts of code that will break generated Rust in embedded

What has everyone done this past week?

  • Artem
    • Figured out how to get rid of parts of generated code that won't work
    • Put generated Rust on physical hardware
  • Ignacio
    • Midterms
  • Yuqi
  • Andrew
    • No progress

What is everyone going to do from here?

  • Artem
    • Continue on making sure generated Rust is working
    • Clean up code & test
  • Ignacio
    • Fuzzy logic completed
    • Work on just balance, not turning
  • Yuqi
  • Andrew
    • Verify working PID controller
    • More report

Any blocks?

  • Artem
  • Ignacio
  • Yuqi
  • Andrew

Date: 05/07/2020

Agenda

New Business

  • Record or live presentation?
    • Live
  • What time to present?
    • Friday June 5th - 1:00 to 1:15 PM

What has everyone done this past week?

  • Artem
    • Converted all PID Lustre generated Rust code to embedded Rust
      • Code worked as well as PID written in Rust directly
    • Working on modifying Kind 2 to generate embedded Rust
      • Some issues with building Kind 2/ Ocaml
  • Ignacio
    • Met with Matt Clark re:code provided for FLC
      • How to put into matlab
      • How to account for saturation of motors
      • Sounds like getting Rust from Matt Clark is possible and not too hard
  • Yuqi
    • Busy with reports and stuff from other classes
    • Final report background
  • Andrew
    • Worked on property checking PID - still not confident that I'm doing it right

What is everyone going to do from here?

  • Artem
    • Continue working on modifying Kind 2
  • Ignacio
    • Midterm coming up
    • Put FLC into Matlab
    • Meet with Matt Clark to continue figuring out code - Lustre specifically
  • Yuqi
    • Install Kind 2 and work on that
  • Andrew
    • Begin total outline of report/slides

Any blocks?

  • Artem
  • Ignacio
    • Time constraint due to Midterm
  • Yuqi
    • Sharing computer with roommate
  • Andrew

Date: 04/28/2020

Agenda

New Business

  • Second robot is built and working with some minor issues
    • Set point is very sensitive, changes daily

What has everyone done this past week?

  • Artem
    • Picked up parts
    • Built robot
    • Got Rust Library PID working
    • Modified Lustre generated Rust so that it compiles, very close to working with embedded
  • Ignacio
    • Started looking into FL Matlab code that Matt Clark sent
  • Yuqi
  • Andrew
    • Administration/emails

What is everyone going to do from here?

  • Artem
    • Continue working on generated Rust
  • Ignacio
    • Continue looking into the code, Matt Clark is MATLAB FL Controller master
  • Yuqi
    • Install Kind 2
    • Look into property checking - help support since Andrew is not able to contribute as much
    • Begin final report
  • Andrew
    • Also property checking, just haven't had time to spend on it

Any blocks?

  • Artem
    • Questions about having to rebuild Kind 2 every time the generator code is modified- will make an Issue for it
  • Ignacio
    • Nothing major, will talk to Matt Clark if any questions
  • Yuqi
  • Andrew
    • Still no childcare

Date: 04/17/2020

Agenda

New Business

  • Artem will meet with Chris Clark to pick up the parts

What has everyone done this past week?

  • Artem
    • Trying to build Kind 2
    • Tested boards PWM output to confirm they were equivalent
      • Boards were basically equivalent, frequencies within 1%, duty cycle within 1%
    • Found that MKR 1010 was hanging up when trying to do serial data transfer
      • Means TCP/Webserver data transfer is crucial
  • Ignacio
    • Bogged down with other classes/midterms/labs
    • Now free to focus on Matlab model for FL controller that Matt Clark sent
  • Yuqi
  • Andrew
    • Administration stuff - emails about parts

What is everyone going to do from here?

  • Artem
    • Going to test serial data transfer - send constant to serial data
    • Trying to build Kind 2 still
    • Possibly meet with Chris Clark to pickup parts
  • Ignacio
    • Work out Matlab model that Matt Clark sent for FL controller
  • Yuqi
  • Andrew
    • Artem Lustre - test properties
    • Get in touch with Ethan

Any blocks?

  • Artem
  • Ignacio
    • Minor computer issue
  • Yuqi
  • Andrew

Date: 04/09/2020

Agenda

New Business

  • Do we want to make slides?
    • No
    • Just screen share
  • Andrew - discuss PDS
  • Artem & Ignacio - discuss test plan

What has everyone done this past week?

  • Artem
    • Got structs to work in Rust - hooray
      • Should make translating lib from Lustre generation will be easier
    • Wrote PID in Lustre
      • Wanted to get as close as possible to controller in Rust
    • Worked on test plan
  • Ignacio
    • Test plan creation/refinement
    • Simulink working with physical constraints of motors
  • Yuqi
    • PWM test plan work
      • Researched how to write a program to test PWM output
  • Andrew
    • Worked on previous team's PID Lustre script to check properties

What is everyone going to do from here?

  • Artem
    • Test PID libraries to confirm that they are both working the same
    • Work on testing the two boards
      • Want to set up next team
  • Ignacio
    • General simulation refinement
    • Other classes need to take precedence
  • Yuqi
    • Email professor Faust to find out what is going on with the hardware
  • Andrew
    • Check with Ethan to confirm property verification
    • Check properties on PID from Artem's Lustre

Any blocks?

  • Artem
    • Need's battery charger
  • Ignacio
    • Lots of stuff due in other classes/midterms
    • Waiting on Matt Clark for FL stuff
  • Yuqi
  • Andrew

Date: 04/03/2020

Post Class Check-in Meeting

Agenda

New Business

  • New PDS
    • Remove physical measurement requirements
    • Figure out details and then schedule with Galois
      • Try to meet with Galois on Tuesday
      • Let them know about class requirement for revised PDS
  • Test plan
    • Focus on old robot
    • Test IMU to webserver data capture
      • Is it capturing tilt & yaw correctly?
      • Is there significant data loss?

What is everyone going to do from here?

  • Artem
  • Ignacio
  • Yuqi
  • Andrew
    • Email Galois
    • Revised PDS

Date: 03/31/2020

Agenda

New Business

  • Tuesday - mandatory meeting, Friday - depending on tasks

What has everyone done this past week?

  • Artem
    • Sanity break
  • Ignacio
    • Researched physical limitations of motors
    • Found constraints - max torque (stall torque - 0.1 NM)
    • Tested simulation with 70% of max torque, FL controller works okay
    • Contacted Matt Clark - he has a Lustre implementation of FL controller - possibly able to help us convert ours to his form, waiting to hear back
  • Yuqi
    • Working on test plan
  • Andrew
    • Childcare

What will everyone do this upcoming weeks?

  • Artem
    • PID Lustre
    • Test Plan review
  • Ignacio
    • Improve FL controller
    • Attempt to integrate pitch and yaw controllers
    • Continue talking with Matt Clark about implementation and Lustre conversion
    • Test Plan review
  • Yuqi
    • Test Plan review
  • Andrew
    • Verification of specific properties in Lustre
    • Test Plan review

Any blocks?

  • Ethan


Date: 03/24/2020

Agenda

New Business

  • Special projects room is closed until further notice - means that we can't get parts for new robots
  • We need a charger for the old robot
  • Sending status update

What has everyone done this past week?

  • Artem
    • Researched Simulink to Lustre conversion
      • There is a free tool (S2L) but uses Matlab 2013 - possible solution
    • Trying to write Lustre PID for verification - need more research into Lustre
  • Ignacio
    • Wrapped up Fuzzy Logic simulation
  • Yuqi
    • Recovering but feeling better
  • Andrew
    • Sent some emails
    • Lack of daycare means almost no time during the day to work

What will everyone do this upcoming weeks?

  • Artem
    • Implementing Lustre PID
  • Ignacio
    • Looking into practicality of implementing the FL controller - are motors capable of providing necessary torque, etc.
  • Yuqi
    • Fleshing out test plan - closure of lab means that we will probably only be comparing old robot physical with simulation
  • Andrew
    • Look into exactly how to specify the properties that we want to check in Kind 2

Any blocks?

  • Coronavirus
  • Lab is closed


Date: 03/19/2020

Agenda

New Business

  • Andrew's kid's daycare is closed, amount of time to work on Capstone is reduced
  • Yuqi is still healing from stomach
  • Went over remaining tasks and what is remaining
    • Good amount done but quite a bit left
  • Going to try to build robot by March 29th
  • Potentially build robot on Wed - 25th

What has everyone done this past week?

  • Artem
    • Lustre work
  • Ignacio
    • Fuzzy logic, but also just wrapping up finals/papers
  • Yuqi
    • Test plan/health recovery
  • Andrew
    • Stalled with childcare

What will everyone do this upcoming weeks?

  • Artem
    • Compile Rust from Lustre of PID
  • Ignacio
    • Simulink to Lustre
  • Yuqi
    • Finalize test plan
  • Andrew
    • Pick up parts and characterize

Any blocks?

  • Coronavirus


Date: 03/14/2020

Agenda

New Business

  • Can we even build new robot?
    • Checking in with Ethan and Faust about getting parts
  • Feeling like we are running out of time
    • We will look at how many actual days left
  • Yuqi not attending meetings
  • Virus has suspended classes/in-person meeting
  • Unclear if we will be able to get parts

What has everyone done this past week?

  • Artem
    • Webserver for data logging implementation completed
    • Generated Rust from plant example
  • Ignacio
    • Bogged down with finals
  • Yuqi
  • Andrew
    • Bogged down with finals

What will everyone do this upcoming weeks?

  • Everyone bogged down with finals
  • Artem
    • Kind 2 support/research
  • Ignacio
    • Lock down Fuzzy logic - with psuedocode
    • Matlab code ready to translate to embedded
  • Yuqi
  • Andrew
    • Email Faust/Ethan
    • Lustre
    • Characterize parts before building
    • Try to build robot, pending parts

Any blocks?

  • Artem
    • Finals not over
  • Ignacio
    • Finals not over
  • Yuqi
  • Andrew
    • Waiting for parts still


Date: 03/07/2020

Agenda

New Business

  • Dead week slowdown

What has everyone done this past week?

  • Artem
    • Webserver implementation
      • TCP in Rust
      • Reliability achieved - hours of consistent testing
  • Ignacio
    • Controller testing
    • Fuzzy logic & other controller tweaking
    • Fuzzy logic is working well
  • Yuqi
  • Andrew
    • Emails out to Ethan & Tymerski
    • Reading Lustre Manual
    • Still working on implementing Lustre code for Arduino PID

What will everyone do this upcoming week?

  • Everyone bogged down with finals
  • Artem
  • Ignacio
    • Research Simulink to Lustre
  • Yuqi
  • Andrew
    • Get parts for robot

Any blocks?

  • Artem
  • Ignacio
  • Yuqi
  • Andrew
    • Waiting for parts


Date: 02/29/2020

Agenda

New Business

  • Going to focus on building an updated robot as that will allow us to test new controller/finish first issue/have a tangible piece of evidence that we did something
  • Meet in person? After we get parts

What has everyone done this past week?

  • Artem
    • Webserver
    • Troubleshooting hardware (IMU specifically)
    • Trying to get it to be high assurance
  • Ignacio
    • Fuzzy logic PD controller for balancing
    • More research into designing a better fuzzy logic controller
    • Hoping to implement an adaptive fuzzy logic controller and researching that
  • Yuqi
    • BOM for new robot
    • Rough test plan creation
  • Andrew
    • Kind 2 testing
    • Reading about Lustre

What will everyone do this upcoming week?

  • Artem
    • Continue work on webserver/getting data out of robot
    • Help with new robot
  • Ignacio
    • Continue fuzzy logic controller research/refinement
    • Book contains adaptive controller information/sliding mode/neural network, so will look into that
    • Help with new robot
  • Yuqi
    • Continue test plan creation
    • Build robot
    • Upload BOM
  • Andrew
    • Implement Arduino PID in Lustre
    • Email about grading
    • Email about new robot parts

Any blocks?

  • Artem
    • Processor might be too slow? 0.5 speed of the previous processor
    • Need battery charger
  • Ignacio
  • Yuqi
    • Measurement of RPM
  • Andrew


Date: 02/21/2020

Agenda

New Business

  • Nothing

What has everyone done this past week?

  • Artem
    • Fixed PWM
    • Commented out BT
    • Compiled PID library in Rust
    • Replaced ESP32 board with MKR1010 board on Robot
    • Ran PID Rust Library on Robot & confirmed that it works
  • Ignacio
    • Confirmed with Ethan that nominal model is good to go
    • Researching runtime verification
    • Researching different types of controllers (fuzzy logic?)
  • Yuqi
    • Test plan creation
  • Andrew
    • Got kind2 working
    • Emailed Tom Schubert
    • Read formal verification book

What will everyone do this upcoming week?

  • Artem
    • Webserver implementation research and development
    • Document first issue completion
    • Possibly fix wobble (not first or second priority)
  • Ignacio
    • Choose controller
    • Implement in Simulink
  • Yuqi
    • Continue test plan creation
  • Andrew
    • Implement Arduino PID in Lustre
    • Compare Kind2 output to Artem's Rust PID
    • Find out what Kind2 generates for Rust - equation?

Any blocks?

  • Artem
    • Resolder wiring - will check with Galois if needed
  • Ignacio
  • Yuqi
  • Andrew



Date: 02/14/2020

Agenda

New Business

  • Lets get to work!
  • We will meet on Fridays and Tuesdays around 10:30-11:00am

What has everyone done this past week?

  • Artem
    • Presentation
    • Project Schedule done
    • Typed up minutes
  • Ignacio
    • Presentation
    • Project Schedule done
    • Researching sliding mode controller - good progress, has been done before so definitely doable
    • Provide State Space resources
  • Yuqi
    • Presentation
  • Andrew
    • Presentation
    • Expanded PDS
    • Read formal verification book

What will everyone do this upcoming week?

  • Artem
    • Create plan to port code to MKR1010
    • Start porting code to MKR1010
  • Ignacio
    • Work on defining a "nominal" model for the robot (Ethan may help)
    • Sliding mode controller research
  • Yuqi
    • Get robot from Ethan
    • Look at improvements/plan how to test new components for model
  • Andrew
    • Reach out to Tom Schubert re: Verification
    • Continue reading formal verification
    • Research state space representations

Any blocks?

  • Artem
  • Ignacio
  • Yuqi
    • Need robot/parts
  • Andrew



Date: 02/04/2020

Agenda

  • Presentation
    • Who wants to take the lead?
      • Andrew will take lead
      • We will practice Friday at 11:40 - IEEE Lounge

What has everyone done this past week?

  • Everyone met with Galois
  • Artem
    • Project Schedule
  • Ignacio
    • PDS revision & Project Schedule
    • Gave PDS to Tymerski - he said as long as sponsors are happy than he is happy
  • Yuqi
    • Trying to get new robot stuff
  • Andrew
    • PDS revision & reading Formal Verification book

What will everyone do this upcoming week?

  • Artem
    • Complete project schedule
    • Track down robot
    • Investigate bluetooth code
    • Type up Galois minutes from 01/28/2020
  • Ignacio
    • Complete project schedule
    • Controls research - this will be ongoing
  • Yuqi
    • Track down robot
    • Look into building new robot
  • Andrew
    • Expand intro to PDS for more background
    • Complete project schedule
    • Take the lead on the presentation

Any blocks?

  • Artem
  • Ignacio
  • Yuqi
    • Waiting on Ethan for robot location - will message on Discord
  • Andrew

Date: 01/13/2020 Agenda

What has everyone done this past week?

  • Artem
    • Working through Rust book - halfway through
    • Embedded Rust book is next
    • Looked at current code, discovered bluetooth works but wifi having trouble
    • Bluetooth module needs to be rewritten for new board
  • Ignacio
    • Did some modeling work/investigation
    • Reading book - Advanced Control
    • Looking at previous team's work
    • Going to reach out to Ethan/Galois to help with non-linear controller
  • Yuqi
    • Block diagrams for PDS/reference
    • Read last report/code
    • Creating diagram for PID
  • Andrew
    • Did a little PDS work - realized we each need to do the background for the part of the project we are going to be responsible
    • Researched formal verification
    • Practiced Lustre

What still have to be completed?

  • PDS Notes
    • What has been done, and how much is left to do?
      • Bare layout, need to have each person fill in their background.
      • Andrew will take all text in Google Doc and move to Overleaf
    • What help is needed with this task?
      • Everyone will do their own section
    • Where can we view a copy of the completed work?
      • It will be located on Overleaf until it's deemed "acceptable" and then will be on the Repo
    • How much (if any) can be taken from last year's PDS?
      • Guessing very little since they focused on the physical aspect (building the robot).
  • Project Schedule notes
    • What has been done, and how much is left to do?
      • Research has been done, should be added
      • Most of the schedule to be done, will be easier after PDS is complete
    • What help is needed with this task?
      • PDS needs to be completed, Artem will put first month-ish of stuff in (get new board working, move PID to Rust, build new robot, etc.)

Questions:

  • Do we want to send a copy of the early PDS to Galois?
    • Yes, will send (hopefully) on the 21st
  • Current issue: C + Rust (PID controller code) working on a robot:
    • How much time should this take?
      • 1 month?
    • How many people to allocate to this task?
      • 2-3
    • Does anyone want to branch off and focus on something else during this time?
      • Ignacio will be doing controller research
  • Dress code for presentation?
    • No

Question for Galois:

  • Is non-linear controller feasible?
  • What about sliding mode control?
  • Code need to be implemented in Lustre?
  • Can Ethan come to meeting?

Issues:

  • Bluetooth module on MKR 1010 is different from bluetooth module on previous project
    • Bluetooth code will likely need a rewrite before compile.
  • Need to do a lot of research to get up to point of understanding formal verification.

Reminders: 28 January, PDS meeting at 10:30am


Date: 01/07/2020

Agenda

  • When do we want to complete the PDS and project schedule.
  • How are we going to divide the work for the PDS and schedule.
    • Understand general structure of previous teams Otis_arduino code and translate it at a high level.
    • Create a high level diagram of how to translate the code to the Arduino MKR WIFI 1010.
    • Understand how to translate the PID control to a Rust library.
    • A high level model of a nominal self balancing robot and the actual robot.
    • The high level structure of the nonlinear controller(actual structure and form of verification)
  • How are we going to divide the work for the project in general.
    • Project Management
    • Programming
    • Controls
    • Modeling
    • etc.

Notes

  • Talked about priorities, sounds like right now we want to focus on getting PDS and Project schedule completed, with research happening as well.

Capstone Stuff

  • PDS - Andrew
    • Reach out to Faust for detail level
  • Project Schedule Prelim - Artem

General Project Areas

  • Controls - Ignacio
  • Rust - Artem
  • Verification - Andrew
    • Do we need physical robot to do verification?
  • New robot - Yuqi
  • Read last year's report - Everyone except Ignacio

Questions

  • Is building the second robot a stretch goal?
  • What is the status of the PID control in otis? Does it need to be converted to Rust? What is the Rust PID controller library mentioned in the report?
  • Is there a MATLAB model? Whats the status?