CS480 Robotics & 3D Printing

3 + 0
  • MATH202
Orion Lawlor
Chapman 201E
Office Hours
Meeting Time
Chapman 104
Course Website
Required Texts
Course readings will be provided online

Course Description

Self-driving cars, 3D printers, and computer-controlled machine tools are modern applications of a common software core of path planning and motion control. This course will cover the mathematical background in 3D computational geometry, hands-on applications such as designing and printing high strength robot parts, and online algorithms for driving robots. Specific topics will be adapted according to student interest, but will include parametric 3D part design in the OpenSCAD constructive solid geometry programming language, computational geometry such as 3D printer slicing algorithms, creating and optimizing offline motion plans such as gcode, robot control system design and construction with Arduino microcontrollers and off-the-shelf motor controllers, network-centric robotics using the UAF-developed SuperStar web infrastructure, robot online motion control algorithms, computer vision techniques such as color matching and machine-readable markers, and algorithms for mobile robot localization and navigation in structured and unstructured environments. Hands-on experiments and tools will be available in Chapman 205, including several 3D printers, CNC hardware, and a variety of mobile robots including Roombas and LAYLA telepresence hardware. Prerequisites: CS 311 or equivalent experience programming complex applications in a modern language like C++ or Python, and Math 252 (Calculus III).

Tentative Schedule

    • Student survey, and tour of mobile robot and computer aided manufacturing applications
    • Labor Day (offices closed — no classes, registration or fee payment)
      • HW0: Arduino stepper driver
    • Robot control system design with Arduino microcontrollers and the Wiring framework
    • Interfacing with off-the-shelf brushed DC, brushless three phase, and stepper motor controllers (add deadline)
    • Introduction to open-loop motion planning: acceleration, maximum step rate
      • HW1: Stepper motor elevator
    • 3D printer material deposition process summary and properties
    • 3D printer feedrate effects and printer motion "tuning" (last day to drop)
    • Constructive solid geometry and 3D part design in the OpenSCAD programming language
      • HW2: 3D part design
    • Parametric 3D parts and scaling up to complex part designs
    • Self-replicating 3D printers (Mendel90) and tolerating tolerance stacking in OpenSCAD
      • Project 1 rough draft due
    • Divergence theorem and computational geometry: volume properties from surface polygons
      • HW3: Slicing STL to gcode
    • Computational geometry for 3D printer slicing/slabbing/support generation algorithms
    • Gcode, path planning, and workholding in subtractive CNC machining
    • Interfacing Arduino feedback sensors: analog, PWM, and I2C inputs
      • HW4: PID motion control
    • PID (Proportional, Integral, Derivative) controllers and closed-loop motion control algorithms
    • Tuning PID parameters for 3D printer motion control in the Marlin firmware
    • Project 1 presentations
    • Project 1 presentations
    • Project 1 presentations
    • Midterm Exam
      • HW5: UAV control
    • Open source UAV flight control with MultiWii
    • Tuning UAV attitude and altitude control parameters
      • Project 1 final draft due
    • Latency management in MultiWii flight control firmware
      • HW6: Measuring firmware latency
    • Latency compensation techniques
    • Sensor fusion via weighted averaging and the Kalman filter (Last day for W)
    • Network-centric robot teleoperation using the SuperStar web infrastructure
      • HW7: Network programming
    • Mobile robot navigation: nonholonomic control and robot drive planning
    • SLAM: algorithms for mobile robot localization and navigation in real environments
    • A-star algorithm and online obstacle avoidance
      • HW8: Environment detection
    • Obstacle detection with infrared reflectance sensors, ultrasonic echo
    • Obstacle detection with laser parallax sensors (Neato XV-11, Kinect 360)
      • Project 2 rough draft due
    • Introduction to OpenCV and computer vision techniques: color matching
      • HW9: OpenCV
    • Computer vision localization: machine-readable markers with ArUco
    • Managing compute latency in OpenCV
    • Comparing localization methods: GPS, vision, obstacle, odometry
    • BEAM robots and holistic localization
    • Thanksgiving holiday (no classes, most offices closed)
    • Integrated robot designs: MATE Underwater ROV
    • Integrated robot designs: NASA Robotic Mining Contest
    • Integrated robot designs: NASA Sample Return Challenge
    • Project 2 presentations
    • Project 2 presentations
    • Project 2 presentations
    • Course recap and future directions
    • Final exam, 3:15-5:15pm, Chapman 104
      • Project 2 final draft due

Grading Policies

Weight Description
5% Attendance and class participation, graded at random intervals throughout the semester
15% Homework problems, to be assigned through the semester
20% Midterm exam, held in mid-October
20% Final exam (comprehensive)
20% Project 1, an independent project, typically due near the time of the Midterm exam
20% Project 2, an independent project due near the Final exam

Grades will be assigned based on the following percentage intervals:

[99%, 100%)

[93%, 99%)
[90%, 93%)
[87%, 90%)

[83%, 87%)
[80%, 83%)
[77%, 80%)

[73%, 77%)
[70%, 73%)
[67%, 70%)

[63%, 67%)
[60%, 63%)
[0%, 60%)

Access To Hardware

Since it is difficult to understand robots and 3D printers without actually using robots and 3D printers, we have collected a variety of this equipment in Chapman 205 for enrolled students to use, including a variety of ground and air mobile robots, and several generations of 3D printers.  Much of this equipment can also be purchased relatively inexpensively, and we encourage students to buy at least an Arduino Mega microcontroller for dedicated access.

Late Work Policy

Late work will not be graded, unless it is due to circumstances beyond your control, or if you turn it in before I begin grading. I may begin grading at any time after the due date, even 12:01am the next day. You are encouraged to inquire if I have begun grading yet, since this acts as a reminder for me to do so.


Students are expected to be at every class meeting on time, and are responsible for all class content, whether present or not. If absence from class is necessary, in-class work (other than quizzes) and homework may be made up only if the instructor is notified as soon as possible; in particular, absences due to scheduled events must be arranged ahead of time. Academic dishonesty will not be tolerated, and will be dealt with according to UAF procedures. Students in this class must pay the CS lab fee. Payment allows access to the Chapman 103 lab.

UAF academic policies http://www.uaf.edu/catalog/current/academics

CS Department policies http://www.cs.uaf.edu/departmental-policies/

Disabilities Services:

The UAF Office of Disability Services implements the Americans with Disabilities Act (ADA), and ensures that UAF students have equal access to the campus and course materials. I will work with the UAF Office of Disability Services (208 WHITAKER BLDG, 474-5655) to provide reasonable accommodation to students with disabilities.