Mobile Robotics
Week | Date | Chapter (Before Class) |
---|---|---|
1 | Tue Aug 27 | Introduction and Safety |
Thu Aug 29 | Design, Assembly, and Electronics | |
2 | Tue Sep 3 | Arduino and Embedded Systems |
Thu Sep 5 | Open-Loop Go to Goal | |
3 | Tue Sep 10 | Culture, Automation, and Jobs |
Thu Sep 12 | Kinematic Modeling | |
4 | Tue Sep 17 | Sensors: Wheel Encoders, IMU, and LIDAR |
Thu Sep 19 | Feedback Control | |
5 | Tue Sep 24 | Sense-Plan-Act |
Thu Sep 26 | Kinematic Trajectory Tracking | |
6 | Tue Oct 1 | Bug Algorithms and State Machines |
Thu Oct 3 | Maps and Representations | |
7 | Tue Oct 8 | Sampling and Graph Search |
Thu Oct 10 | Global and Local Path Planning | |
8 | Tue Oct 15 | Fall break |
Thu Oct 17 | Uncertainty and Error Propagation | |
9 | Tue Oct 22 | State Estimation and Filters |
Thu Oct 24 | Localization | |
10 | Tue Oct 29 | Iterative Closest Point (ICP) |
Thu Oct 31 | Simultaneous Localization and Mapping (SLAM) | |
11 | Tue Nov 5 | Embedded Vision |
Thu Nov 7 | Feature Extraction and Optical Flow | |
12 | Tue Nov 12 | Object Detection and Segmentation |
Thu Nov 14 | ?Visual SLAM? | |
13 | Tue Nov 19 | Imitation and Reinforcement Learning |
Thu Nov 21 | Moral Decision Making | |
14 | Tue Nov 26 | Project Workday |
Thu Nov 28 | Thanksgiving | |
15 | Tue Dec 3 | Project Workday |
Thu Dec 5 | Reading day | |
16 | TBD | Final exam |
Course Topics and Modules
Modules
- Design and Electronics (1,2,3,4)
- Modeling and Feedback Control (6,7,8,9,10,11)
- Maps and Motion Planning (12,13,14)
- Uncertainty (15,16)
- Localization and Mapping (17,18,19)
- Vision and Learning (20,21,22,23)
- Society (5,24)
Chapter Topic | Interactive | Exercise | |
---|---|---|---|
1 | Introduction and Safety | Prototyping | |
2 | Design, Assembly, and Electronics | CAD with Onshape | 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 |
https://arxiv.org/abs/1808.10703
TODO: repetition in topics (eg, control -> planning -> control)
Literature / Pop-Culture
Modules
- Design and Electronics
- Introduction
- Safety and Design
- Embedded Systems
- Open-Loop Go to Goal
- Modeling and Feedback Control
- Feedback Control with PID and Wheel Encoders
- Kinematic Modeling
- LQR and iLQR for Circular Paths (feed-forward?)
- Maps and Motion Planning
- No map? State Machines and Bug Algorithm
- ICP mapping? occupancy grid? Correll 12.3
- Graph Search and A* (D* Lite?) or sampling-based planning (RRT? PRM?)
- Control Architecture Scales (Correll 13.4)
- Uncertainty (State Estimation?)
- Error Propagation
- Sensor Fusion with Kalman Filters
- Localization and Mapping
- Localization with Particle Filters
- …
- Graph-based SLAM
- Vision and Learning
- Conventional (Features, Optical Flow)
- Object Detection
- Segmentation
- Imitation Learning (RL?)
- Societal Impacts
- History and Pop-Culture
- Automation and Jobs
- Moral Decision Making and Liability
- Autonomous Vehicle Ethics
- Open-Ended Project
- Project Workday
- Project Workday
Missing topics?
- MPC
- Reinforcement Learning
- Control Architecture
- Visual SLAM? Google Cartographer?
- Dynamics Modeling
- State-Space Modeling and Simulation
Planning Topics
- perception
- path planning
- global path planning (eg, Dijkstra, A, RRT, PRM, D, D* Lite)
- local path planning (eg, dynamic window, and some of the global planners)
- motion control
Potential New Schedule
- Introduction and Safety
- Design and Assembly
- Arduino and Embedded Systems
- Open-Loop Go to Goal
- History, Pop-Culture, Automation, and Job Loss
- Kinematic Modeling
- Wheel Encoders, IMU, and LIDAR
- Sense-Plan-Act Go to Goal (Klancar: reference pose)
- Bug Algorithms and State Machines
- Kinematic Trajectory Tracking
- Map/Environment Representation (and Configuration Space)
- Sampling and Graph Search
- Global and Local Path Planning
- Uncertainty and Error Propagation
- State Estimation and Filters
- ?ICP? “Lines? ?Lidar?
- Localization
- ?Simple SLAM?
- Feature Extraction and Optical Flow
- Object Detection and Segmentation
- ?Visual SLAM?
- Imitation Learning and Reinforcement Learning
- Moral Decision Making, Liability, and Ethics
- Project Workday
- Project Workday
mocap?
then kinematic trajectory tracking?
planning sequence
- map/environment representation (https://www.mathworks.com/help/robotics/ug/perform-path-planning-simulation-with-mobile-robot.html)
- configuration space
- sampling methods like RRT, RRT*, ?PRM?
- graph search like A* or D* Lite (https://www.cs.cmu.edu/~motionplanning/lecture/AppH-astar-dstar_howie.pdf)
uncertainty
- propagation of error
- state estimation, filters
- something with lines and lidar?
- localization
- simplest SLAM
vision and learning
- conventional vision (features, optical flow)
- object detection
- segmentation
- imitation learning, reinforcement learning
- visual SLAM?
Moral Decision Making, Liability, and Ethics
Project Workday
Project Workday
Week | Date | Chapter |
---|---|---|
1 | Tue Aug 27 | Introduction |
Thu Aug 29 | Safety and Design | |
2 | Tue Sep 3 | Embedded Systems |
Thu Sep 5 | Open-Loop Go to Goal | |
3 | Tue Sep 10 | |
Thu Sep 12 | ||
4 | Tue Sep 17 | |
Thu Sep 19 | ||
5 | Tue Sep 24 | |
Thu Sep 26 | ||
6 | Tue Oct 1 | |
Thu Oct 3 | ||
7 | Tue Oct 8 | |
Thu Oct 10 | ||
8 | Tue Oct 15 | Fall break |
Thu Oct 17 | ||
9 | Tue Oct 22 | |
Thu Oct 24 | ||
10 | Tue Oct 29 | |
Thu Oct 31 | ||
11 | Tue Nov 5 | |
Thu Nov 7 | ||
12 | Tue Nov 12 | |
Thu Nov 14 | ||
13 | Tue Nov 19 | |
Thu Nov 21 | ||
14 | Tue Nov 26 | Project Workday |
Thu Nov 28 | Thanksgiving | |
15 | Tue Dec 3 | Project Workday |
Thu Dec 5 | Reading day | |
16 | TBD | Final exam |
Exercises (probably want 14?):
- Open-loop go to goal
- Remote control
- Closed-loop go to goal with wheel encoders (Klancar Example 3.1)
- reference position through intermediate points
- Go to goal and avoid obstacles
- Autonomously explore a space with static obstacles
- Autonomously navigate a course with dynamic obstacles
- Chosen Project
- Society discussion compute kalman matrix values from sensor data least squares derive equations (eg, Kalman filter, equations of motion)
Robotics and Autonomous Systems - MATLAB & Simulink Mobile Robot Kinematics Equations - MATLAB & Simulink Perform Path Planning Simulation with Mobile Robot - MATLAB & Simulink Mapping - MATLAB & Simulink Motion Planning with MATLAB - MATLAB & Simulink Examples Robotics and Autonomous Systems — Examples
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
- deadman’s switch (stop when no signal; otherwise autonomous)
- Should start with simple blink using chrono (no delay) (or AntiDelay)
- http://sofapirate.github.io/Chrono/
- profile with perfetto and simple C++ class
- Perfetto UI
- TimeProfiler
- Profiler
- Profiling Arduino Code
- Sampling Profiling Arduino Code
- Profiling Arduino Code
- https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/main.cpp
- Does not work with delays
- How to Avoid Using the Delay() Function in Arduino Sketches
- robot might run away
- dead-reckoning
- Land robot in target zone
- motor performance changes as battery drains (feedback control will help)
- automatic emergency breaking
- 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.
loop (repetition) 1. encoders distance 2. add vision 3. implement lqr/mpc (https://github.com/f1tenth/f1tenth_lab9_template)
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
Concept Inventory
Here is the inventory of topics I considered when developing this course.
Category | Concepts | |
---|---|---|
1. | Design | Requirements, CAD, Fabrication, Mechatronics, Electronics, Safety |
2. | Programming | Embedded Systems, Communication, Real-Time, Debugging |
3. | Math | Linear Algebra, Probability, Statistics, Discretization, Optimization, Linearization |
4. | Modeling | Diagramming, Mechanics, 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 |
Specific techniques:
- Design: Requirements, OnShape, 3D Printing, Laser Cutting, Soldering, Circuits
- Programming: Emergency Braking, Active Enable, Arduino, I2C, WiFi, Debugging, Discretization
- Math: Vectors, Rotation Matrices, Bayes Theorem, Least Squares, Linearization, Optimization
- Modeling: Differential Kinematics, Dynamics, State-Space, Simulation
- Control: Open-Loop, Tracking, PID, (i)LQR, MPC, State Machines, Bug Algorithm, Pure Pursuit, Architectures
- Planning: BFS, DFS, A, RRT, D, D* Lite, PRM, Occupancy Grid, Constrains
- Vision: Optical Flow, Object Detection, Learning (ML and RL), Policy Search
- Uncertainty: Kalman Filters (KF, EKF, UKF), Particle Filters, Estimation, Localization, Mapping, SLAM
- Society: Moral Decision Making, Job Loss, Literature
Try markmap > Download as interactive HTML
- Society
- History
- Pop-culture
- Automation and Jobs
- Ethics
- Moral Decision Making
- Liability
- Design
- Requirements Engineering
- Computer Aided Design (CAD) (eg, OnShape)
- Fabrication (eg, 3D Printing, Laser Cutting)
- Electronics (eg, Soldering, Circuits)
- Safety (eg, Emergency Braking, Active Enable)
- Embedded Systems (eg, Arduino, I2C, BLE, Debugging)
- Mathematics and Numerics
- Vectors, Spaces, and Linear Algebra
- Least Squares
- Probability
- Statistics
- Optimization
- Modeling
- Kinematics
- Dynamics
- Simulation
- State-Space
- Discretization
- Linearization
- Control
- Open-loop Control
- Feedback Control (eg, PID)
- LQR and iLQR
- MPC and MPPI
- Control Theory
- Bug Algorithms
- State Machines
- Sense-Plan-Act
- Hierarchical Control
- Localization
- Uncertainty
- Error Propagation
- Bayes Theorem
- State Estimation
- Sensor Fusion
- Histogram Filters
- Kalman Filters (eg, KF, EKF, UKF)
- Particle Filters
- Mapping
- Representation (eg, Occupancy Grid)
- Cell Decomposition (eg, quadtree)
- Roadmaps (eg, Voronoi)
- Potential Fields
- Point Clouds
- Clustering
- Iterative Closest Point (ICP)
- SLAM (eg, Graph-based, EKF, FastSLAM)
- Planning
- Global and Local
- Constraints
- Dynamic Window Approach
- Trajectory Tracking (eg, Pure Pursuit, MPC, iLQR)
- Probabilistic Roadmaps (PRM)
- Graph Search (eg, BFS, DFS, A, D Lite)
- Sampling (eg, RRT)
- Motion Planning
- Trajectory Planning
- Path Planning
- Vision
- Feature Extraction
- Optical Flow
- Object Detection
- Segmentation
- Learning (eg, ML, RL, Policy Search)
terrybrash/dragon-space: Spatial partitioning concepts and implementions.