Schedule

Week Date Chapter
1 Tue Aug 27 Introduction and Design
Thu Aug 29 Layout and Prototyping
2 Tue Sep 3 Safety and Electronics
Thu Sep 5 Programming with Toit
3 Tue Sep 10 Microcontroller Utilities
Thu Sep 12 Open-Loop Go to Goal
4 Tue Sep 17 Motor Control
Thu Sep 19 Closed-loop Go To Goal
5 Tue Sep 24 Embedded Systems
Thu Sep 26 Starting with Arduino
6 Tue Oct 1 Refactoring Arduino Code
Thu Oct 3 Arduino Motor Control
7 Tue Oct 8 Pose Estimation
Thu Oct 10 Kinematic Modeling
8 Tue Oct 15 Fall break
Thu Oct 17 The Arduino CLI
9 Tue Oct 22 Motion Control
Thu Oct 24 Position Control
10 Tue Oct 29 Adding a Compass
Thu Oct 31 Sensor Fusion
11 Tue Nov 5 Work Day
Thu Nov 7 Work Day
12 Tue Nov 12 Robots in our Society
Thu Nov 14 Case Study Discussions
13 Tue Nov 19 Simulation
Thu Nov 21 Path Planning
14 Tue Nov 26 Work Day
Thu Nov 28 Thanksgiving
15 Tue Dec 3 Vision
Thu Dec 5 Reading day
16 TBD Final exam

Course Topics and Modules

Modules

  1. Design and Electronics (1,2,3,4)
  2. Modeling and Feedback Control (6,7,8,9,10,11)
  3. Maps and Motion Planning (12,13,14)
  4. Uncertainty (15,16)
  5. Localization and Mapping (17,18,19)
  6. Vision and Learning (20,21,22,23,24)
  7. Societal Impacts (5,25)
Chapter Topic Interactive Exercise
1 Introduction and Design CAD with Onshape Prototyping
2 Design, Assembly, and Electronics Wokwi Simulator? Circuits and Wiring
3 Arduino and Embedded Systems Bluetooth LE Remote Control
4 Open-Loop Go to Goal Go to Goal Motor Control 1
5 Culture, Automation, and Jobs Discussions
6 Kinematic Modeling Kinematics Motor Control 2
7 Sensors: Wheel Encoders, IMU, and LIDAR IMU Plotting Sensor Plotting
8 Feedback Control Proportional Control Motor Control 3
9 Sense-Plan-Act Go to Goal Go to Goal
10 Kinematic Trajectory Tracking Tracking Tracking
11 Bug Algorithms and State Machines Bug0 Bug0/1/2
12 Maps and Representations Occupancy Grid Occupancy Grid
13 Sampling and Graph Search Graph Search D* Lite
14 Global and Local Path Planning Dynamic Reactive Control
15 Uncertainty and Error Propagation Uncertainty Senor Modeling
16 State Estimation and Filters Circle Drive Pose Estimation
17 Localization Sensor Fusion Sensor Fusion
18 Iterative Closest Point (ICP) ICP ICP
19 Simultaneous Localization and Mapping (SLAM) SLAM SLAM
20 Embedded Vision SenseCraft
21 Feature Extraction and Optical Flow Optical Flow Optical Flow
22 Object Detection and Segmentation Segmentation Segmentation
23 ?Visual SLAM?
24 Imitation and Reinforcement Learning
25 Moral Decision Making
26 Project Workday
27 Project Workday

Exercise Notes

Exercises (probably want 14?):

  1. Open-loop go to goal
  2. Remote control
  3. Closed-loop go to goal with wheel encoders (Klancar Example 3.1)
    1. reference position through intermediate points
  4. Go to goal and avoid obstacles
  5. Autonomously explore a space with static obstacles
  6. Autonomously navigate a course with dynamic obstacles
  7. Chosen Project
  8. Society discussion compute kalman matrix values from sensor data least squares derive equations (eg, Kalman filter, equations of motion)

Assignments - tell a complete story - assignment to go to home base from set starting location - assignment to navigate map from unknown starting location - use google sheet to aggregate data collection - gradescope: ask for advice on making the assignment better

  1. deadman’s switch (stop when no signal; otherwise autonomous)
    1. Should start with simple blink using chrono (no delay) (or AntiDelay)
    2. http://sofapirate.github.io/Chrono/
    3. profile with perfetto and simple C++ class
    1. https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/main.cpp
    2. Does not work with delays
    3. How to Avoid Using the Delay() Function in Arduino Sketches
    4. robot might run away
  2. dead-reckoning
    1. Land robot in target zone
    2. motor performance changes as battery drains (feedback control will help)
  3. automatic emergency breaking
  4. pid wall following
  • bug or wall-following or artificial potential fields
    • https://www.cs.cmu.edu/~motionplanning/
    • https://www.cs.cmu.edu/~motionplanning/lecture/lecture.html

Assignment: include bug in Arduino code and have them fix it.

Peer Evaluation - CATME

loop (repetition) 1. encoders distance 2. add vision 3. implement lqr/mpc (https://github.com/f1tenth/f1tenth_lab9_template)

Interactive Notes

TODO: repetition in topics (eg, control -> planning -> control)

Some inspirations:

Other thoughts

  • gaussian equation widget (adjust values and show the graph)
  • Maximum Likelihood, Least Squares Estimation, Maximum A Posteriori Estimation
  • Least Squares and KKT conditions
  • Dual problems: control and estimation
  • Least squares as a special case of maximum likelihood estimation on Gaussian models.
  • estimation before localization
  • if covering linearization, then look at boyds lecture on nonlinear least squares
  • boyd lectures have good info on nonlinear control (e.g., directing a nonholonomic robot)
  • cirlces and lines path planning (modern robotics)
  • Klančar examples (e.g., Kalman)
  • Boyd LQR notes
  • only teach dynamics when needed; kinematics probably good enough
  • reactive, FSMs, hierarchical FSMs, behavior trees, mission planning
  • qaudrature encoders

Concept Inventory

Here is the inventory of topics I considered when developing this course.

Category Concepts
1 Design Requirements, Materials, CAD, Fabrication, Mechatronics, Electronics, Safety
2 Programming Embedded Systems, Communication, Real-Time, Debugging, Security, IoT, DSP,
3 Math Linear Algebra, Calculus, Probability, Statistics, Discretization, Optimization
4 Modeling Diagramming, Numerics, Linearization, Kinematics, Dynamics, Simulation, Motion Capture
5 Control Feedback, Motion, Robustness, Adaptivity, Reactive, Behavioral
6 Planning Search, Mapping, Motion, Trajectory
7 Vision Conventional, Learning, Optical Flow
8 Uncertainty Estimation, Localization, Fuzzy Logic, Filtering, Identification, SLAM
9 Society History, Laws, Ethics, Morals, Jobs, Pop-Culture, HRI

Mind Map of Mobile Robotics