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
- Demos?
- 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
- Did some last ditch verification attempts
What is everyone going to do from here?
- Artem
- Test plan
- C PID vs our PID
- Other tests that are good to have
- Test plan
- 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
- Wrote FLC in Lustre
- Ignacio
- Met with Matt Clark
- Working on FLC
- Oscillates in simulation more than hoping for
- Yuqi
- Report stuff
- Mathematical background
- Report stuff
- 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
- Converted all PID Lustre generated Rust code to embedded Rust
- 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
- Met with Matt Clark re:code provided for FLC
- 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
- Got structs to work in Rust - hooray
- 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
- PWM test plan work
- 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
- Researched Simulink to Lustre conversion
- 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
- Webserver implementation
- 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
- Who wants to take the lead?
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).
- What has been done, and how much is left to do?
- 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.)
- What has been done, and how much is left to do?
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
- How much time should this take?
- 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?