CSCI 250: Introduction to Robotics
General Information
What I cannot create, I do not understand. – R. Feynman
Professor: Simon D. Levy
Schedule: MWF 3:30-5:30, TR 2:30-5:30
Classroom: Parmly 405. To support students who cannot attend in-person, each in-class lecture will be presented live over Zoom (links will be provided by email), and will be recorded for (re)viewing later.
E-mail: simon.d.levy@gmail.com
Office Hours: MWF 2:00-3:30, and by appointment. If you prefer to meet in person (instead of Zoom), just send me a heads-up.
Textbook / Readings
D. Mc Griffy: Make: Drones: Teach an Arduino to Fly. Make Community, LLC, 2017. Available online through our library. Although we will not focus on building actual drones, this book provides a good introduction to the foundational concepts that we will discuss. Selected chapters and sections will be assigned.
Additional readings are available as PDFs in the schedule below, or (in the case of Inter-library Loan material) on Box.
Objectives
By the end of this course you will be able to:
-
- Talk the Talk: You will be able to explain the basic terminology of robotics, the most important algorithms used in the field, and the current challenges.
-
- Walk the Walk: You will be able to write code or use software tools to solve problems in one or more of the many areas important to robotics (PID control, machine vision, realistic simulation, etc.) using state-of-the-art tools like UnrealEngine4 and VisualStudio2019.
Grading
-
-
- Four weekly in-class quizzes, one at the start of each Friday: 50%
- Three end-of-week progress reports and one programming assignment, all on github: 20%
- Final project, with writeup and/or code on github: 30%
-
The grading scale will be 93-100 A; 90-92 A-; 87-89 B+; 83-86 B; 80-82 B-; 77-79 C+; 73-76 C; 70-72 C-; 67-69 D+; 63-66 D; 60-62 D-; below 60 F.
I expect everyone to show up every day and participate. Because of the teamwork required in this course, you will be letting down not just yourself, but also your teammates, if you miss class. The only legitimate reasons for missing class are illness, family emergencies, and the like (which must be handled through the Dean’s Office), as well as off-campus varsity athletic events.
Final Project
Because of the COVID-19 situation, we cannot safely work on team-based projects with physical robot hardware as in years past. Instead, we will focus this time on building the software components of a physically-realistic simulator for the Ingenuity Mars helicopter that had its first flight just last week.
You and your team members (up to four students per team) will propose and implement one of several modifications to a copter simulator that I have been developing with W&L students and industry colleagues over the past five years. Based on the UnrealEngine4 (UE4) game game engine behind the popular Fortnite video game and the Mandalorian TV seies, this simulator will afford us the opportunity to work at the forefront of modern simulation technology.
Thanks to the work of tech specialist Tom Marcais and his team at ITS, you will not need a bleeding-edge gaming laptop or PC to work on your project. Instead, we will use Amazon Web Services (AWS) to access such hardware remotely, allowing your team to work on your project wherever you have a good internet connection.
The simulator we will use provides opportunities for many different kinds of projects based on your personal interests. For example:
-
- Use Python to explore new control algorithms with the simulated Ingenuity vehicle.
- Use C++ / OpenCV to add machine-vision capabilities.
- Investigate and implement a more realistic physics model for our Ingenuity simulation.
- Design and build your own multirotor vehicle
- Work with me on adding Java support to the simulator.
- Use UE4 to create realistic new materials (skins) for the vehicle components.
- Explore machine-learning approaches using a simpler, Python-based simulator.
You will present your final project to the class during the lab session on the last day of the term (Friday 21 May).
If your team has a strong preference for building an actual robot, I have components for building and programming a small quadcopter that you can safely fly indoors. Just be sure to make this choice part of your proposal (see next paragraph).
A proposal for your final project proposal (mainly just a one-paragraph description from each team member with the names your team members and the project you want to work on), will be due from each team at 11:59 PM Friday 29 April. This proposal will serve as the first of your three weekly project reports.
Class Format
The format of the class will be an hour of lecture / discussion followed by project work done in teams. We will likely vary this schedule to accommodate additional work on projects as needed.
After-Hours Work
Although you should have enough time to work on your robots during the regular class meetings, I have found that students enjoyed and benefitted from working on their robots outside of class.
Accommodations
Washington and Lee University makes reasonable academic accommodations for qualified students with disabilities. All undergraduate accommodations must be approved through the Office of the Dean of the College. Students requesting accommodations for this course should present an official accommodation letter within the first two weeks of the (fall or winter) term and schedule a meeting outside of class time to discuss accommodations. It is the student’s responsibility to present this paperwork in a timely fashion and to follow up about accommodation arrangements. Accommodations for test-taking should be arranged with the professor at least a week before the date of the test or exam.
Tentative Schedule
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
|
26 April Week 1 |
Lecture: Course Intro
Weekly Reading: Pipenberg et al. 2019 (on Box) Lab: Intro to AWS with Tom Marcais |
Lecture: Sensors, Signals, Serial, Sockets
Lab: Sockets and Threads |
Lecture: Sensors, Signals, Serial, Sockets
Lab: Setting up MulticopterSim |
Lecture: Threading & Concurrency
Motion Capture Lab visit with Dave Pfaff Lab: Working with MulticopterSim |
Weekly Quiz #1
Final Project proposal due |
03 May Week 2 |
Weekly Reading: Make: Drones Chapters 2-12 (online via library) Lecture: Finish Sensors, Signals, Serial, Sockets Lab: Final Projects |
Lecture: Toy copter teardown
Video: Tail Rotor Video: H-Bridge Lab: Final Projects |
Lecture: Make Drones
Lab: Final Projects |
Lecture: Make Drones
Lab: Final Projects |
Weekly Quiz #2
Lab: Final Projects |
10 May Week 3 |
Lecture: Make Drones chapters 8-11
PWM demo Weekly Reading: Bouabdallah et al. 2004 (on Box) Lab: Final Projects |
Lecture: Make Drones chapters 8-11
Video: PID Control Lab: Final Projects |
Lecture: Bouabdallah et al. (2004)
Lab: Final Projects |
Lecture: Bouabdallah et al. (2004)
Lab: Final Projects |
Weekly Quiz #3
Lab: Final Projects |
17 May Week 4 |
Weekly Reading: Huang 2010
Lecture: Bayesian Filtering for Robotics Lab: Final Projects |
Lecture: Bayesian Filtering for Robotics
Lab: Final Projects |
Particle Filter Animation
Lab: Final Projects |
Lecture video for studying
Lab: Final Projects |
Weekly Quiz #4
Final Project Presentations |