CSCI 250: Introduction to Robotics

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 FlyMake 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 WalkYou 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)

Glossary


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