ME 379M/397: CyVS | Course Log for Spring 2015 | Last updated 5/6/15

1819 - MLK Day20
Course intro

Basic ground vehicle dynamics


Vehicle performance


Performance analysis examples


Feb 12

Drivetrain models; HW #1


LabVIEW, RT platform, Lab #1 pre-lab

Lab #1 (part 1)
Longitudinal speed control


Speed control (cont.); Discussion on Lab 1 - Part 2 (Ex. 3)
Lab #1 (part 2)
PID; cruise control

Results for Lab 1; Implementing PID; Lab 2



Lab #2  - PID +cruise
Lab 2 discussion; braking intro


Braking and anti-slip control

Mar 12

Lab #2 - Cruise, anti-slip

Lab 2;
Vehicle control architectures; FSMs


No meeting

Lab 2 discussion
Review topics: HW 1 + HW 2
1516 - Spring Break

17Spring Break
18Spring Break

19 Spring Break20Spring Break21

Kinematic turning/steering
HW #3 (in slides)
Kinematic turning/steering (cont.); Lab #3


Lab 3 - week 1
Controlled steering

Apr 12
Controlled steering;
Week 2 of Lab 3; Planning

Lab 3 - week 2
Vehicle directional stability
Disc. final lab; Steering control model

Lab 3 - wrap up
Controlled steering with feedback


no meeting

Lab 4
Localization and need for sensors (IMU); Simulation with uncertainty
Comments on remainder of semester
Class 5 min pres.
Final Project 
Vision and vision-based control;
Human in the loop

Quick note on vision;
Feedback steering and simulation redux

May 12

Final Project 
Project work - no formal meeting
Project work - no formal meeting
8 - Last UT class day9
Final Project and Wrap Up


Week 1
  • Meeting 1 (Th, 1/22) | 
    • Basic ground vehicle dynamics - 1 | slides for today
    • Some references from today 
    • Exercise for Tuesday (1/27) - work the problem on slide 18, except derive a differential equation that expresses the rate of change of forward velocity, vx, in terms of the given parameters of the problem: L1 = distance from front wheel to CG, L = total wheel base (front to rear), mu = coefficient of friction, h = CG height.  Having found the relation, calculate the value of the constant acceleration predicted by this model.
    • What is an Exercise?  Do I need to turn it in?  These are problems I'll recommend to help you get ready for the next meeting.  They do not need to be submitted and will not be graded, but hopefully they'll guide you in developing skills I think are helpful and that will be required in upcoming homework (which is graded).
Week 2
  • Meeting 3 (Th, 1/29) | refer to slides from Meeting 2
    • Discussed groups for lab work - send that information as preferred 3 hour periods you can go to lab.
    • Today's discussion was on applying the concepts covered on Tuesday related to vehicle performance.  Several points were to be made while going over the slides, and discussing some of the concepts introduced.
      • In applying performance analysis methods, work a problem using the information you have available and/or using information you can practically find (using the resources available: time, cost, etc.).
      • Always do a sanity check.  The first example with the two-axle vehicle was found to require a power source way beyone what is practically put on a 'passenger vehicle'.  
      • Homework #1 will focus on predicting open-loop performance, and first you need to really understand the exampes in these slides.  The 'mouse' example using methods we'll extend to the DaNI platform
      • To follow the code provided, you need to be familiar with Matlab and methods for numerically solving ODEs (e.g., rk4 fixed step solver usage).  Let me know if you need to see additional examples.
    • Homework #1: you're going to work through the example posted above and described in the slides and then add a PWM drive to the motor model.  We'll discuss how you do that on Tuesday.
Week 3
  • Meeting 5 (Th, 2/5) | 
    • Quick LabVIEW overview
    • Real-time controller platform description
    • Lab #1 discussion and guidance to resources
  • Lab #1 (Week 1, Part 1) - 2/9/15 (M) - 2/13/15 (F)
    • Lab 1 - v3 (last update; 5 pm on 2/20/15).
    • NOTE: The Lab 1 slides are meant to provide some step by step guidance so use them as your complete the lab.  Skim first, get an idea of what is in there, then make your plan and use them as guidance.  Let me know if anything needs clarification.
    • Here is the sbRIO User's Guide
    • NOTE: NI FPGA online tutorials here
    • Submission of any report not due until Part 2 is complete next week.
Week 4
  • Meeting 6 (Tu, 2/10) | 
    • You should be working on Part 1 of Lab #1 this week.
    • We will discuss ongoing Lab 1, and what to expect in second week.
    • Vehicle speed control will be discussed | slides
  • Lab #1 (Week 2, Part 2) - 2/16/15 (M) - 2/20/15 (F)
    • Lab 1 - v3 - Exercise 3 + some results/comments - posted 2/20/15
    • Report on Lab 1 & HW #1 will be due: __Tuesday, 2/24________
Week 5
  • Meeting 8 (Tu, 2/17) |  
    • Discuss Lab #1 - Exercise 3 - in progress
    • Cruise control discussion (cleaning up slides; to be posted)
  • Meeting 9 (Th, 2/19) | 
    • More comments on Lab #1 Ex 3 - 
    • Implementing PID on the DaNI: RT vs FPGA - here are some slides from today (to be posted)
    • Lab #2 begins next week.
    • Reading: Astrom and Murray | check out Chapter 3 for discussion on cruise control
Week 6
  • Meeting 10 (Tu, 2/24) | 
    • Lab 2 is in progress.  Quick review.
    • Good day to discuss traction and braking, the end of our discussion on longitudinal control (although we will revisit again when we get to yaw dynamics)
    • Began discussion on braking
  • Meeting 11 (Th, 2/26) |
Week 7
  • Meeting 12 (Tu, 3/3) | 
    • Update on DaNI programming issues.  Why we think things were going wrong and why we think it's fixed.  A good case study on how we debugged badly.
      • What was happening?
      • What did we try and why?
      • What do we think solved the problem?
    • Lab 2 status; planning next week - Exercise 5!
    • Vehicle control architectures | slides from today
      • Read Ozguner, et al (2011), Chapter 3 - illustrative use of FSMs in programming autonomous vehicles
      • Skim over Bekey, Chapter 5.  Provides a look at 'big picture'.  There are other references if you want more.
    • Programming behaviors and finite state machines (FSMs)
      • This excerpt from Valvano provides definitions that can be helpful in a more general use of FSMs, being more fundamentally applied to embedded controllers.  Explains difference between Moore and Mealy state machines.
      • Read Jones excerpt on behaviors, FSMs.
    • LabVIEW and state machines - guide for getting started implementing FSMs in LabVIEW
    • Exercise on FSMs in LabVIEW.  Working one of the following can help you learn how to use FSM programs in LabVIEW
      1. Review the handout from Valvano.  Build a LabVIEW-based FSM for the robot example as described in Figure 2.27. 
      2. Review the handout from Jones.  Build a LabVIEW-based FSM for the Escape example in Chapter 3 and as described in Figure 3.6.
      3. Review the cruise control example from Ozguner, et al.  Build a LabVIEW-based FSM.  This one can be helpful to you in Lab 2, exercise 5
  • Meeting 13 (Th, 3/5)
    • No class meeting
Week 8
  • Meeting 14 (Tu, 3/10) | 
    • Cruise control behaviors using FSM architecture
    • Status of Ex 5 Lab 2
    • Exercise on FSMs in LabVIEW
  • Meeting 15 (Th, 3/12) | 
    • Lab 1 - no discussion today
    • HW 1 - discuss the DaNI performance model and pwm drivetrain (open-loop); with and without slip
      • Here are my current working files as shown today with updates, some clean-up. I made a few changes that hopefully make these more readable.  Look also at some of the conditionals I added to make the slip case run more clean.  Let me know if you find any issues.
      • DaNI_w_driveline.m - the no-slip model
      • DaNI_w_driveline_traction.m - includes slip model
      • sim_DaNI_drivetrain.m - simulation file that runs the two above; this file allows adjustment of the modulation level (mcon variable).  The working example has a pause from initial time with mcon = 0 until ton at which point mcon goes to a value, then at toff mcon goes back to zero.
      • Further reading: whenever you have a system that has to 'stop', you need to be careful.  A good example is when you have stick-slip phenomena.  Here is a nice article by Karnopp some of you may be interested in reading that discusses some ways for handling these types of problems.
    • Lab 2 - no discussion today
    • HW 2 - We discussed HW 2 as an extension of HW1 with the goal of simulating your lab scenarios. Extend your DaNI performance model (or adapt the one provided above) to include closed-loop control of pwm drivetrain as you have implemented in your lab studies.  As in Lab 2 driving scenarios, you should include a braking or stopping condition.  Use P, I, and D control as you have specified in your lab and compare the results.  Do you find that similar control gains work (which would be surprising)?  Could you have predicted your lab results, especially cases where there is slip?  Summarize your model, your control approach, and sample results, referring to your Lab 2 reporting as well.  This HW should be submitted by the end the first week after returning from spring break.
      • What should results look like?  
      • I'd like to see your vehicle velocities as they follow the reference command for different scenarios.  Use the same reference command schedule you used in your Lab 2 studies (these don't have to be smoothed transitions).
      • Plot results for: velocities, reference/command velocity (this is a cruise control), slip, and estimated traction forces.
      • Compare to Lab 2 results
    • Extension to HW 2. The example provide above does not include some of the characteristics that we measured in Lab 1 such as the deadband in the relation between the motor controller and the pulse width.  When would it be necessary to worry about this?  Think about how you might use some of what was learned in lab to either change or improve the model.  It is not necessary to change your simulations model(s), but explain when these effects might be important..

      Have a good break.  Don't hesitate to contact me with questions about HW 2.

Week 10
  • Meeting 16 (Tu, 3/24)
  • Meeting 17 (Th, 3/26) 
    • Review updated slides from last meeting
    • Review of models with kinematic steering (including Ackerman)
    • Kinematically-steered kinematic vehicle model (single wheel steer): zip file
    • Lab #3 discussion
Week 11
  • Meeting 18 (Tu, 3/31)
    • Discussion of controlled steering as a basic maneuver/behavior
  • Meeting 19 (Th, 4/2) 
    • What will be done on Lab 3, Week 2.  See the lab page (link below).
    • See final version of this week's slides on Controlled Steering (updated 4/4/15) for help on Lab 3.
    • Discussion on how we want to wrap up the semester, what topics, and possible labs/projects to work on.
    • Sensing: try to review use of vision, inertial measurement unit (IMU), and (maybe) state of energy in vehicle
    • We discussed how Lab 4 might look, and there are options.  I will likely propose at least one type of lab but will leave things open for you to build your own.  Here were some general areas, but this list may be expanded:
      • Navigation around fixed and maybe moving obstacles toward reaching a set goal.
      • Two vehicles within one following a lead that is human controlled (e.g., model of an adaptive cruise control).  This could either be just 1D (cruise) or 2D.
      • Topics in localization (where am I) and mapping (using or building a map)
Week 12
  • Meeting 20 (Tu, 4/7)
    • We discussed how the semester should finish out.  If you have any problems with the plans, please contact me.  Make sure to let me know what your final work(s) will look like.
    • Vehicle directional stability | slides
    • Extra stuff:
  • Meeting 21 (Th, 4/9)
    • ---
Week 13
  • Meeting 22 (Tu, 4/14)
    • Notes on wrapping up the semester:
      • Each group or individual in class needs to prepare a one-page proposal to present in class by next Thursday, 4/23, on your final project plans
      • Topics to be covered in the remaining weeks of class are meant to offer ideas and provide support for what you may do both in lab and through analysis/simulation
      • Plan to have a balance of theory/analysis and testing OR you may go fully toward just one or the other but in that case you should check with me to make sure you will be doing enough to satisfy my expectations.
    • Wall following control - cleaning up my notes (to be posted)
      • Simulation of simple on/off control for the Tamiya mouse wall hugger
        • Matlab files (to be posted)
      • Simulation of wall following with feedback control design using Lyapunov stability
        • Matlab files to be posted
      • Some reference articles may be posted
    • Supplemental reading
      1. Brief overview of stability and Lyapunov
      2. More detailed discussion on Lyapunov stability (if item 1 is not enough)
        • from a grad course on nonlinear analysis
        • from text by Hsu and Meyer
  • Meeting 23 (Th, 4/16)
    • No class
Week 14
  • Lab #4 - 4/20/15 (M) - 4/25/15 (F) 
  • Meeting 24 (Tu, 4/21)
    • Localization and the need for sensors
    • Odometry
    • Simulation with uncertainty
  • Meeting 25 (Th, 4/23)
    • Group/individual 5 min presentation on last project/lab plans
Week 15
  • Final Project Work
Week 16
  • Lab: Final Project Work
Week 17 (finals week)
  • Final Project & Wrap Up

  Return to Syllabus