Skip to content

Commit

Permalink
Merge pull request #88 from CMUBOB97/master
Browse files Browse the repository at this point in the history
Added elective 16-384 and 16-664
  • Loading branch information
mikinty authored Apr 4, 2023
2 parents 23f08f0 + 15deeae commit 62e03ba
Show file tree
Hide file tree
Showing 3 changed files with 168 additions and 0 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,9 @@ expect from the core classes from the ECE and CS programs at CMU.
- [15-455: Undergraduate Complexity Theory](electives/15455.md)
- [15-462: Computer Graphics](electives/15462.md)
- [16-311: Introduction to Robotics](electives/16311.md)
- [16-384: Robot Kinematics and Dynamics](electives/16384.md)
- [16-385: Computer Vision](electives/16385.md)
- [16-664: Self Driving Cars: Perception & Control](electives/16664.md)
- [16-720: Computer Vision](electives/16720.md)
- [16-833: Robot Localization and Mapping](electives/16833.md)
- [17-214: Principles of Software Construction](electives/17214.md)
Expand Down
98 changes: 98 additions & 0 deletions electives/16384.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# 16-384: Robot Kinematics and Dynamics

| **Category** | **Difficulty (Out of 5)** |
| --- | --- |
| Homework - Programming | 3 |
| Homework - Written | 4 |
| Final Project | 3.5 |
| Exams | 5 |

16-384 is a required class for students interested in pursuing an additional major in Robotics.
This course mainly focuses on:
- how to manipulate a robot arm with multiple degrees of freedom
- how to know where the end of your robot arm is given a specific configuration (angles in joints)
- how to know your robot arm's configuration given the end position
- how to change your robot arm's position and velocity
- how much torque your robot arm experiences and exerts
- how to mathematically represent a complicated, multiple-joint robotics arm
- ...
This class has the fundamental mathematics and techniques in kinematics and dynamics.
By completing programming assignments on using the Hebi robotics arm and
written assignment to practice the math, students will have the skill to accomplish
the final project: making the robot arm build a Jenga tower.
The workload in this class is moderate and details about topics, class structure,
and assignments are mentioned below:

# Topics

1. Rigid Body Motions
2. Forward Kinematics
3. Jacobian
4. Inverse Kinematics
5. Dynamics of Point Masses
6. Denavit-Hartenberg Representation
7. Angular Velocity
8. Forward Differential Kinematics
9. Inverse Differential Kinematics

*note that all topics are extended from 2D to 3D as the class proceeds.

# Class Structure

1. Lectures on the above topics
- there are mini lectures on OLI modules that can help you review/preview
- lectures consist of concepts and examples
- TAs will go through HW problems during the class
2. Homework
- programming: uses the robotics arm in REL (robotics education lab, in NSH 3rd floor)
- written: mathematics on topics mentioned above
- **no late handin**
3. Midterm
- during the class time
- quite **hard**
4. Final project & competition
- robot building Jenga tower
- the team building the tower the highest in 30 seconds gets 100 on the final

# Homeworks

The homework usually comes in two parts: the written one and the programming one.
The written part will guide you through the calculation and give you a picture on
how to implement this in the programming part. The programming part will be in
MATLAB. It's okay to not have the prior knowledge about it (there is a warm up homework 0).
Most stuff in this class is about linear algebra, so it is good to take classes
about linear algebra before taking this class. This class does not allow late
submissions. If you need extensions, be sure to take with instructors ahead of time.

# OLI modules

A small portion of the grade in this class goes to OLI module, and their deadlines
are pretty frequent. Although it is okay to miss one or two, make sure you do not
miss a lot of them.

# Exams

There will be two exams in this class, and both of them are pretty intense.
Students from last year were struggling trying to finish the Lagrangian question.
Be sure to review homework and be comfortable doing the calculation before the exam.

# Final project

The final project consists of two parts: a checkpoint and a final. Final project
will be in teams of 2. The checkpoint is about laying a single layer of Jenga blocks,
and the final is about laying 3 layers of Jenga blocks with a time constraint.
Therefore, try to reserve enough time for the final, because you can use plenty
methods to get away with the checkpoint, but not the same for final. There is a
competition on building the highest Jenga structure in 30 seconds, with auto 100
on the final exam as a reward. This competition is not mandatory, so you can
also have fun watching other people's robot in the competition!

# Tips and Tricks to do Well

- Attend lectures and keep up with lectures.
- Ask questions on Piazza when in doubt.
- There are modules on OLI for helping you review/preview materials.
- Pay attention to homeowrk feedback and don't submit them late.
- Be sure to prepare the exam both in concepts and calculations.
- Start the final project early! Otherwise people fight for robot usage 3 AM before the demo day.
- Have fun!
68 changes: 68 additions & 0 deletions electives/16664.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# 16-664: Self Driving Cars: Perception & Control

| Category | Difficulty |
|:-: | :-: |
| HW | 3 |
| Project | 3 |

Self Driving Cars: Perception & Control is a new class introduced to Robotics Department
in Spring 2023. This class combines both the perception and control knowledge in the field of
self driving car and gives students homework and project that solves problems using real work
and simulation data samples. The course is split into two halves: the first half semester
covers perception, and the second half covers control.

# Topics covered

Perception
- Pose sensors
- Camera & Lidar geometry
- Localization & SLAM
- Machine Learning for Computer Vision

Control
- State space models
- Linear Quadratic Regulators (LQR)
- Vehicle Dynamics
- Model Predictive Controls (MPC)
- Trajectory Optimization

# Class structure

The class only has one lecture per week, and it is 2 hour and 50 minute long, from 4 pm
to 6:50 pm. During the lecture period there will have two intermissions, so it won't be
too exhausting. During the lecture, professors will cover how certain perception/control
techniques were developed and how to deploy them in self driving car scenarios. The
lectures assume students have some prior knowledge in linear algebra, so it is good to
take some linear algebra courses before taking this class. However, you are welcome to
ask questions or concepts that you have not heard of and both perception and control
professors will happily answer you.

# Homework

Homework is due biweekly. The difficulty is not too hard, so you have plenty of time to work
on the assignment. Note that there is only one TA per half of the semester (so one perception
TA and one control TA), you should work on the assignment ahead of time and ask questions
during the limited office hour time. There is one assignment you are allowed to submit up to
48 hours late. Since most materials are related to linear algebra, the assignment will be
submitted using MATLAB grader and you can test your submissions for unlimited number of times
before the due. It's better if you have worked with MATLAB before this class. However, you
can still take it without the prior knowledge as there will be a warmup assignment on MATLAB
before everything.

# Project

The final project is about perceiving other vehicles and controling your own vehicle's movement
in the simulation environment of GTA5 (Wow!). This final project is pretty cool and you are
allowed to use any perception and control technique. The baseline for passing the final
project is fair, and you can explore more techniques after getting a passing score. The final
project is in groups.

# Exams

There are no exams in this class.

# How to do well in this class
- Ask questions about anything during the class time
- Start your homework early
- Ask your classmates or on Piazza since TAs have few office hour slots
- Have fun :)

0 comments on commit 62e03ba

Please sign in to comment.