CS 309: Autonomous Intelligent Robotics (FRI I) - Spring 2018

InstructorJustin Hart
Class TimesTuesday & Thursday - 3:30pm-5:00pm
ClassroomCBA 4.344
LaboratoryGDC 3.414
Course Syllabus[PDF]

Office Hours & Contact Info


Justin Hart
OfficeGDC 3.402
Office HoursMonday: 4:00pm-5:00pm
Thursday: 5:15pm-6:15pm
or by appointment

Teaching Assistant

Yuqian Jiang
OfficeGDC 3.410F
Office HoursTuesday & Thursday 2:30pm-3:30pm or by appointment


Mentor NameEmailMondayTuesdayWednesdayThursdayFriday
Kathryn E. Baldaufkathrynbaldauf@utexas.edu 1:30pm-3:00pm 1:30pm-3:00pm
Mehrdad Darrajimehrdad_da@yahoo.com 1:00pm-2:00pm 10:00am-11:00am 1:00pm-2:00pm
Jamin Goojgoo@utexas.edu 2:00pm-3:30pm 2:00pm-3:30pm
Samuel Gunnsamgunn111@gmail.com 2:00pm-5:00pm
Jeffrey Huangsamgunn111@gmail.com 2:00pm-3:30pm 2:00pm-3:30pm
Nathan Johnnathanjohn@utexas.edu2:00pm-3:00pm9:30am-11:30am
Mayuri Rajamraja7@utexas.edu 1:00pm-4:00pm
Rishi Shahrishihahs@gmail.com
Stone Tejedastonetejeda@utexas.edu 2:00pm-3:30pm 2:00pm-3:30pm
Nick Walkernickswalker@icloud.com 10:00am-12:00pm 11:00am-12:00pm
Anna Wangannacwang8@gmail.com2:00pm-3:30pm2:00pm-3:30pm

Course Description

This class provides students with an understanding of modern research in the areas of robotics, artificial intelligence, and human-robot interaction. It is the first part of a two-course sequence, and serves in-part as preparation for the more complex work in CS 378: FRI II. In FRI II, students pursue a semester-long robotics research project. In this course, students learn the meaning and value of robotics research. They learn some of the technical skills necessary for research on the Building-Wide Intelligence project, and for participation in the RoboCup@Home team. On its own, it serves as a primer on the topics that it covers. As a two-course sequence, it provides exposure to performing research in a real laboratory with real robots. It also can serve as a preparation for long-term research projects on a volunteer basis, as a peer mentor, or as a member of the UT Austin Villa RoboCup@Home Team.

More details about BWI can be found at http://www.cs.utexas.edu/~larg/bwi_web/.
More details about RoboCup@Home can be found at http://www.robocupathome.org/.

Teaching Objectives

The following topics will be covered:


There is no textbook for this course. There will be a series of 4 papers to which students are expected to give written responses and participate in in-class discussions. At the end of the semester, a final research project will be performed as groups. For this, students are expected to act on what they learned this semester and perform a brief literature survey to justify the ideas in their experiments.


Class sessions will be held in CBA 4.344 on Tuesdays and Thursdays. Attendance is mandatory. Students are expected to email the instructor in advance to inform of any potential absences. Several of the homeworks will involve working on real robots, which can be found in the laboratory, GDC 3.414.


Students are also expected to be able to work independently. There is no programming pre-requisite for this course, though a working knowledge of programming will be helpful. Four of the six first lectures in the class will be dedicated to C++ programming, with intensive programming instruction in ROS to follow. Homeworks and projects will utilize ROS in the C++ programming language.


Grades will be based on:
Class participation and attendance 10%
Reading Responses 10%
Homework 60%
Final Project 20%

The final project will comprise the following components. You will be graded equally on both of these as well as successful completion of the project:
Final Presentation
Final Project Report

Plus and minus grades will be used in final grading of the course.

Final project reports will be due on Monday, May 07 by 11:59pm.
Final project presentations will be during the final exam slot on Thursday, May 10 from 2:00pm-5:00pm.

Planned Lecture Schedule

(Subject to change due to pace of class, see website for updates)

Reading responses due the night before corresponding reading discussions at 11:59pm.

01/18/18Introduction, Panel with Peer MentorsSlides
01/23/18Setting the Stage: An Introduction to Artificial IntelligenceSlides
Introduction to C++ & Make
01/25/18Guest Lecturers - Guest Topics
01/30/18Setting the Stage: An Introduction to Artificial IntelligenceSlides
Introduction to C++ & CMake
02/01/18C++ Continued
02/06/18C++ EndHW1 goes out
02/08/18Symbolic Reasoning, Search, & PDDLSlides
02/13/18Symbolic Reasoning, Search, & PDDLSlides
02/15/18What is ROS?HW1 due 11:59pmSlides
ROS Technical Intro (Setting up Catkin Workspace)
02/19/18Reading Responses due 11:59pm
02/20/18Reading Discussion: No Fair!! An Interaction with a Cheating RobotHW2 goes outSlides
Intro to Human-Robot Interaction
02/22/18What is Publish/Subscribe? What are ROS Topics?Slides
ROS Publish/Subscribe Tutorial
02/27/18What is a Remote Procedure Call? What is a ROS Service? Slides
ROS Service Tutorial
03/01/18ROS Action Servers & Message FormattingHW2 due 11:59pmSlides
ROS Basics Wrap-Up
03/06/18Reading Discussion: Elephants Don't Play Chess HW3 goes outPaperSlides
Introduction to Behavior-Based Systems
03/08/18Intro to Computer VisionSlides
Vision Processing in OpenCV
03/20/18Recap Based on HomeworkSlides
BWIBot Demo
03/22/18Starting the RobotHW4 goes outHW3 due 11:59pmSlides
Coordinate Frames & Spatial Transformations
03/27/18Coordinate FramesSlides
03/29/18Forming Project GroupsHW5 goes outHW4 due 11:59pmSlides
Coordinate Frames Recap
TF, Alvar, & Eigen
04/03/18ROS Navigation GoalsSlides
Practical tips for HW 5
04/05/18Practical Tips for HW5Slides
Simplified Navigation
Preparing for Final Projects
04/10/18Final Project ProposalsSlides
Getting Through HW5
04/12/18Whiteboarding HW5
Final Project Concept Debugging
04/17/18Final Project Kickoff in Lab
04/19/18Writing Final PapersSlides
04/24/18Reading Discussion: Characterizing the Design Space of Rendered Robot FacesPaper
Developmental Robotics
04/26/18Reading Discussion: Paper TBA
Reading & Writing Research Papers
05/01/18Giving Research TalksSlides
05/03/18Project Work Session in Lab
05/08/18EXAMS WEEK
05/10/18Final Project Presentations


All assignments due 11:59pm unless otherwise noted.

Due dateHomeworkInstructionsFiles
02/15/18HW 1: C++ ExercisesPDFNumberList.h
03/01/18HW 2: Planning with PDDLPDF
03/22/18HW 3: ROS Basics & Simple Color FilteringPDFthree_cups.bag
03/29/18HW 4: Start up the RobotPDF
04/12/18HW 5: Follow the AR TagPDFROS packageENHANCED ROS package
04/12/18HW 6: 2-Page Final Project Description
05/07/18Final Project Paper
05/10/18Final Project Presentation - In Class


SoftwareURLHost site

C++ Examples

All C++ examples, top levelHere
C++ Example 1Hello World!
C++ Example 2Hello World using cout!
C++ Example 3Declaration and assignment.
C++ Example 4Namespaces.
C++ Example 5Loops.
C++ Example 6Functions.
C++ Example 7Function Parameters.
C++ Example 8Header Files.
C++ Example 9Header/Implementation Files.
C++ Example 10If/Else.
C++ Example 11Types.
C++ Example 12Pointers and References.
C++ Example 13Arrays.. which are basically pointers.
C++ Example 14STL vectors.
C++ Example 15Classes.
C++ Example 16Classes can also go in headers and implementation files.
C++ Example 17Abstract classes and inheritance.
C++ Example 18Signed and unsigned numbers.
Color Thresholding ExampleROS package source lifted from my workspace
All PDDL examples, top levelHere
PDDL Example 1Grasp
PDDL Example 2Stacking blocks
PDDL Example we built as a classTowers of Hanoi

Academic Integrity

As this is a research course, it is important to use the many tools at your disposal to achieve your research goals. Students will work in groups in this course, and are expected to collaborate with their teams and outside of their immediate teams in order to achieve the best results possible. When you leverage someone else's work, cite them. Citations are the currency of the scientific community. Use third-party software, but make sure to honor licenses and cite the authors. In this course, you will be graded on what you accomplish above and beyond what is already freely available. If this means implementing an algorithm, state which parts were your original work or implementation in your progress reports, and which parts were downloaded or were someone else's ideas. In this class, leveraging such resources is encouraged. It makes code easier to maintain and update, and encourages potential collaborations with other institutions. Invest your efforts in making novel discoveries or implementing functionality beyond what is freely available. Do, however, abide by Computer Science Department's Academic Honesty Policy, which can be found at http://www.cs.utexas.edu/users/ear/CodeOfConduct.html\#honesty

Students with Disabilities

The University of Texas at Austin provides upon request appropriate academic accommodations for qualified students with disabilities. To determine if you qualify, please contact the Dean of Students at 471-6529; 471-4641 TTY. If they certify your needs, I will work with you to make appropriate arrangements. Further information can be found at http://www.utexas.edu/diversity/ddce/ssd/.

Missed Work Due to Religious Holy Days

A student who misses an examination, work assignment, or other project due to the observance of a religious holy day will be given an opportunity to complete the work missed within a reasonable time after the absence, provided that he or she has properly notified the instructor. It is the policy of the University of Texas at Austin that the student must notify the instructor at least fourteen days prior to the classes scheduled on dates he or she will be absent to observe a religious holy day. For religious holy days that fall within the first two weeks of the semester, the notice should be given on the first day of the semester. The student will not be penalized for these excused absences, but the instructor may appropriately respond if the student fails to complete satisfactorily the missed assignment or examination within a reasonable time after the excused absence.


This course, as presented by Justin Hart, is an evolution of material developed by Jivko Sinapov, who succeeded Matteo Leonetti. It is influenced by Brian Scassellati's CS 473b: Intelligent Robotics course at Yale University. It has been developed in conjunction with Peter Stone.