379M/397: CyVS | Course Log for Spring 2015 | Last updated 5/6/15
- Meeting 0 (Tu, 1/20) |
- Syllabus was handed out in class. See it here.
- Course Introduction | slides for today
- It is recommended that you install LabVIEW and additional modules to your
own computer. Here is the list of those products I recommend 2013 or later (lab will have 2013 unless we update later)
- LabVIEW 2013
- Control Design and Simulation Module
- Mathscript RT Module
- Vision Development Module + IMAQ drivers (from ni.com)
- LabVIEW Real-Time Module
- LabVIEW FPGA Module
- LabVIEW Robotics Module
- NI Device Drivers (if you want to connect to hardware)
- NI RIO 2013
- You can get this software and a license through the college website: CoE ITG LabVIEW site
you are new to LabVIEW, you should start learning if you plan to stay
in this course and use the laboratory platforms we will experiment
with:Learn LabVIEW: http://www.ni.com/academic/students/learn-labview/
- Here are some readings I referred to on this day:
- This blog may be of interest: http://spectrum.ieee.org/blog/cars-that-think
- 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
- Meeting 2 (Tu, 1/27) | slides for today
- Review of the example from Thursday
- Motivate today's discussion
- Vehicle performance modeling (slides)
- Small-scale vehicle case study (Tamiya mouse)
- Planning lab work; groups and time scheduling
- Discuss possible Lab 1 objectives (hopefully start something soon)
- 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.
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.
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.).
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.
#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
- 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).
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.
- 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
- Meeting 7 (Th, 2/12) |
- Implementing PID | continue with slides from last time (updated)
- Example code on closed-loop control simulation:
- Discussion on Exercise 3 of Lab 1 (part 2) - starting on Monday, 2/16
- Refer to the Lab #1 slides - Exercise 3 (will be updated by Friday, 2/13)
- 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________
- 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
- Lab #2 (Week 1) - 2/23/15 (M) - 2/27/15 (F)
- Meeting 10 (Tu, 2/24) |
- Lab 2 is in progress. Quick review.
day to discuss traction and braking, the end of our discussion on
longitudinal control (although we will revisit again when we get to yaw
- Began discussion on braking
- Lab #2 (Week2) - 3/2/15 (M) - 3/6/15 (F)
- Meeting 12 (Tu, 3/3) |
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
- 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
- Review the handout from Valvano. Build a LabVIEW-based FSM for the robot example as described in Figure 2.27.
the handout from Jones. Build a LabVIEW-based FSM for the Escape
example in Chapter 3 and as described in Figure 3.6.
- 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
Week 9 - SPRING BREAK
- 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
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
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
- 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.
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?
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
- 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.
- 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
- 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
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.
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)
- Meeting 20 (Tu, 4/7)
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)
- Meeting 22 (Tu, 4/14)
- Notes on wrapping up the semester:
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
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
- 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
- Brief overview of stability and Lyapunov
- More detailed discussion on Lyapunov stability (if item 1 is not enough)
Meeting 23 (Th, 4/16)Week 14
- from a grad course on nonlinear analysis
- from text by Hsu and Meyer
- Lab #4 - 4/20/15 (M) - 4/25/15 (F)
- Meeting 24 (Tu, 4/21)
- Localization and the need for sensors
- Simulation with uncertainty
- Meeting 25 (Th, 4/23)
- Group/individual 5 min presentation on last project/lab plans
- Meeting 26 (Tu, 4/28)
- Quick overview on using LabVIEW Vision tools
- Update (4/29) Slides shown on 4/28 updated
is a working project that has both network published shared variable
and a network streams approaches for sending vision-based data to the
sbRIO target: test_ipcamera.zip
open the two files with the '_shared.vi' end together for the shared
variable approach; the other set is for network streams)
- Some examples and resources for project work
- Other discussions
- Meeting 27 (Th, 4/30)
- Review vision slides briefly
- Discussed a method for feedback control as covered by the following:
Week 17 (finals week)
- Meeting 28 (Tu, 5/5)
- Meeting 29 (Th, 5/7)