CSE176e/276e: Robotic System Design and Implementation

To achieve great things, two things are needed: a plan and not quite enough time.

-- Leonard Bernstein

Instructor: Steven Swanson


Course Overview

Details about the project and labs are here: https://github.com/NVSL/QuadClass-Resources/

The goals for the course are for you to learn how to design, assemble, and program a moderately complex electronic device. The device you will build is a small, remote-controlled quadcopter similar to this:

In particular, you'll learn and/or practice these skills/topics:

  • How quadcopters work.

  • How to fly a quadcopter.

  • How the various components (motors, gyros, compass, etc.) work.

  • How to design printed circuit boards.

  • Some control theory.

  • Soldering.

  • Assembly and testing of simple computing devices.

  • Microcontroller programming (the quadcopters will be Arduino-based).

  • Team work and coordination with other teams.

  • All the other practical things you learn by working on a real, challenging project.

Course Structure

There will be some lectures, but mostly this is a class where you will learn by doing. Lecture slides will be available via the course github repo (see below).

There will be ~10 labs, but they are each substantial and we will finish 8 of them by week 6. If you fall behind, it will be hard to catch up, and if your tape-out date slips, it will be very difficult to complete the project.

The representative schedule for the course is below. The details will change for Winter 2022, but the breakneck pace will remain :-)

Quadcopter Class Plan

The schedule is very aggressive. We will be starting a new lab each class meeting during the first few weeks. This compressed schedule has three goals. First, to let us manufacture the boards for the quadcopters by week 6 or so. Second, to give you as much time as possible to get your quadcopter flying once you assemble it.

Lab and Class Hours

Class will be help in the Envision Makerspace, in person from 11-2, Tuesday and Thursday.

Want to TA?

Fill out this form.

The ideal TA would have significant experience in at least one of: Embedded programming, control algorithms, or electronics and PCB assembly.

Want to Take it?

I'm interested in having students with a range of backgrounds and levels of previous experience. The most important thing is that you be enthusiastic about the project, ready to learn by doing, and willing to work in a group on a challenging and exciting project. The class will put a lot of emphasis on working together with your team.

Grad students are also welcome, but keep in mind that the project in this course is much larger than as typical for a graduate class. It will take a lot of your time.

The class must be taken for 4 units and for a grade. Auditing is not allowed.

The class is by permission of the instructor only and enrollment is limited. You'll need to fill out this form. You'll need to have at least some experience with electronics, but it can be pretty minimal. Applications are due by the end of week 8 November 24th and decisions will be made by the beginning of week 9.

Important: The class meets 11:00-12:30 Tuesday/Thursday. After class from 12:30-2:00, there will be lab hours. You should not take the class if you can’t regularly make the lab hours. They are essential to completing the course project. No exceptions.

If you have any questions, please contact me at swanson@cs.ucsd.edu.