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

Instructor Justin W. Hart
Class Times Tuesday & Thursday 3:30-5:00pm
Classroom Welch (WEL) 2.128
Laboratory Gates-Dell Complex (GDC) 3.414
Course Syllabus [PDF]

Office Hours & Contact Info

Name Email Office Hours
Instructor Justin W. Hart hart@cs.utexas.edu Monday 4:00pm-5:00pm
GDC 3.402 or BWI lab Thursday 5:15pm-6:15pm

Teaching Assistant Yuqian Jiang jiangyuqian@utexas.edu Tuesday 10:30am-11:30am
GDC 3.504A or BWI lab Thursday 1:30pm-2:30pm

Abrar Anwar abraranwar123@gmail.com Tuesday/Thursday 5:00pm-6:00pm
Ethan Brown ethane98@yahoo.com Wednesday 2:00pm-4:00pm
David Chen xiangweichen99@gmail.com Wednesday 10:30am-12:30pm
Jackie Deans jacqueline.deans@utexas.edu Tuesday/Thursday 2:00pm-3:00pm
Blake Holman blake.holman@utexas.edu Thursday 4:30pm-6:30pm
Jeffrey Huang jeffreyhuang23@gmail.com Monday 4:30pm-6:30pm
Bonny Mahajan bm.bonnymahajan@gmail.com Monday 2:00pm-4:00pm
Lucinda Nguyen lucinda.onguyen@gmail.com Wednesday 11:00am-1:00pm
Sydney Owen seowen@nctv.com Thursday 11:00am-1:00pm
Mayuri Raja mraja7@utexas.edu Monday/Wednesday 11:00am-12:00pm
Connor Sheehan c-she@utexas.edu Monday 3:00pm-5:00pm
Stone Tejeda stonetejeda@utexas.edu Tuesday/Thursday 5:00pm-6:00pm
Office hours are available in their designated time-slot or by appointment. Please be try to use the office hours slots when possible.

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:
  • Introductory C++ programming
  • Robot Operating System (ROS)
  • Basics of Artificial Intelligence & Human-Robot Interaction
  • Reading & writing scientific research papers
  • Reading research with a critical eye and understanding
  • Giving good presentations
  • Performing and understanding good research

Notice: Portions of this class take place in a robotics lab

Some of the assignments you undertake this semester will require you to use the BWI Lab, in GDC 3.414.

In order to maintain productivity in the lab, please observe the following. Failure to do so will harm the lab's productivity, and repeat offenders will be banned from the lab and receive failing grades on assignments taking place in the lab.

  • If you break something, immediately report it to a mentor, the TA, or the instructor. (In that order.)
    • Breakages happen, but we have to handle them quickly as downtime can harm research progress.
    • Students and faculty performing research for scientific publications work on strict deadlines, and problems must be quickly addressed.
  • Always leave the robots on chargers when not in use, regardless of whether you were the last to use them.
  • Do NOT over-tighten the screws on the robot charging cables. The screws will break, and this will lead to downtime.
    • A red light means that the charger is not connected. Report issues to a mentor, the TA, or the instructor. (In that order.)
    • A flashing green light means that the charger in a special charging cycle. It's fine.
  • Do NOT leave computers locked. Some computers may be locked by researchers in the lab. Students should not lock them.
  • The computers with the LED cases or connected to robots are for student use (except the Alienware laptop, or Alienware gaming PC).
    • On the first day in lab, a few computers with special purposes will be identified. Do not log into these machines either locally or remotely.
  • Do not hold group meetings in the hallways or meeting areas on the AI corridor with no door. Those areas are for the use of AI lab graduate students, faculty, and staff only.
  • Do not meet with groups other than your robotics final project group in the lab. That space is reserved for class and research purposes.


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 literature survey to justify the ideas in their experiments.


Class sessions will be held in Welch (WEL) 2.128 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.

Prerequisites / Necessities

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.

It is advisable (though not mandatory) to install ROS on a Linux machine (preferably a laptop) in order to do your homework and projects for this class.

Running ROS in a virtual machine tends to work very poorly, and the mentors, TA, and instructor will not help you accomplish this. We are happy to help you with ROS on native Linux machines.

Alternatively, the machines in the BWI lab and in the downstairs computer lab have ROS installed. Note that all of the robots in the BWI lab run ROS Kinetic, which is kept in sync with the Toyota Human Support Robot. The department supports Melodic. As such, there may be subtle differences.


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 presentations will be during the final exam slot on Monday, May 20 from 9:00am-12:00pm.
Final project reports will be due on Monday, May 20 immediately following the final project presentation.

Planned Lecture Schedule

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.

DateTitleAssignment SetAssignment DueReadingsSlides
01/22/19 Introduction, Kickoff with Peter Stone, Panel with Peer Mentors [PDF]
01/24/19 Setting the Stage: An Introduction to Artificial Intelligence: Part 1 [PDF]
01/29/19 C++ Tutorial: Part 1 No Slides
01/31/19 Setting the Stage: An Introduction to Artificial Intelligence: Part 2 [PDF]
C++ Tutorial: Part 2
02/05/19 C++ Tutorial: Part 3 HW1 goes out No Slides
02/07/19 C++ Tutorial: Part 4 [PDF]
Symbolic Reasoning, Search, & PDDL
02/12/19 Symbolic Reasoning, Search, & PDDL [PDF]
02/14/19 Symbolic Reasoning, Search, & PDDL HW1 due 11:59pm [PDF]
How to Read Papers Paper 1: No Fair!! An Interaction with a Cheating Robot [Paper PDF]
02/18/19 Reading Responses due 11:59pm
02/19/19 Paper 1: No Fair!! An Interaction with a Cheating Robot HW2 goes out [PDF]
Intro to Human-Robot Interaction
02/21/19 Intro to ROS [PDF]
02/26/19 Publish/Subscribe & ROS Topics [PDF]
ROS Service Tutorial
02/27/19 HW2 due 11:59pm
02/28/19 Publish/Subscribe & ROS Topics [PDF - Continued from Last Time]
Paper 2: Elephants Don't Play Chess [Paper PDF]
03/04/19 Reading Responses due 11:59pm
03/05/19 Reading Discussion: Elephants Don't Play Chess [PDF]
ROS Topics & Service Calls
03/07/19 OpenCV and rviz [PDF]
03/12/19 Coordinate Frames & Spatial Transformations HW3 goes out [PDF]
03/14/19 Starting the Robot [PDF]
Coordinate Frames & Spatial Transformations
03/26/19 Starting the Robot (Recap) [PDF]
TF (Recap)
AR Tags
Project Group Formation
03/28/19 BWIBot Demo HW3 due 11:59pm
03/29/19 HW4 goes out
04/02/19 Alvar, TF, and Eigen [PDF]
04/04/19 ROS Navigation Goals [PDF]
04/09/19 LaTeX Plan for a partial solution for HW5 by tonight. [PDF]
Final Project Proposals
Getting Through HW5
04/11/19 Writing Final Papers [PDF]
Final Project Proposal Workshop [PDF]
04/16/19 Final Project Proposal Debugging HW6 due 11:59pm
04/18/19 Work Session in Lab
04/23/19 Work Session in Lab
04/25/19 Work Session in Lab
04/30/19 Work Session in Lab
05/02/19 Work Session in Lab
05/07/19 Work Session in Lab
05/09/19 Final Presentations [PDF]
05/14/19 Dead Week
05/16/19 Dead Week
05/20/19 Final Project Presentations & Papers


  • Assignments are subject to revision, possibly significant, up to the date assigned.
  • You are free to take a look at the homework that is ahead.
    • Please do not skip class because you have gotten ahead, you may miss something that you need and it will harm your participation grade!
    • You are responsible for doing the homework as assigned on the day it is assigned. So, if you attempt a future assignment, please check back to make sure it has not been revised before turning it in!
Due dateHomeworkInstructionsFiles
02/12/18HW 1: C++ Exercises[PDF][DIR]
02/26/18HW 2: Planning with PDDL[PDF]
03/26/18HW 3: ROS Basics & Simple Color Filtering[PDF][BAG]
04/02/18HW 4: Start up the Robot[PDF]
04/11/18HW 5: Follow the AR Tag[PDF][Package in a .tar.gz]
04/16/18HW 6: 1-Page Final Project Description (Based on Slides)
05/20/18Final Project Paper
05/20/18Final Project Presentation - During Exam Period


C++ Examples

To be released as we cover this material in class.

All C++ examples covered in class as a tar.gz[c++.tar.gz]
Example 01[ex01]Hello World! Using printf
Example 02[ex02]Hello World! Using std::cout
Example 03[ex03]Variables
Example 04[ex04]Assignment. Initialization. Pre/post-increment.
Example 05[ex05]Loops
Example 06[ex06]Functions
Example 07[ex07]Scoping
Example 08[ex08]Header files and function prototypes
Example 09[ex09]Header files with separate implementations
Example 10[ex10]Comparisons, if/then/else, basic flow control.
Example 11[ex11]Basic types.
Example 12[ex12]Pointers and references.
Example 13[ex13]Arrays.
Example 14[ex14]Vectors.
Example 15[ex15]Classes.
Example 16[ex16]Pulling it Together.
Example 17[ex17]Inheritance and Abstract Classes.
Example 18[ex18]Runtime errors & signed variables.

PDDL Examples

To be released as we cover this material in class.

All PDDL examples covered in class as a tar.gz[pddl.tar.gz]
Example 01[ex01]Pick up the block
Example 02[ex02]Stack blocks
Example 03[ex03]Maze
Example 04[ex04]Door

ROS Examples

To be released as we cover this material in class.

beginner_tutorials package as a tar.gz[beginner_tutorials.tar.gz]
vision_tutorials package as a tar.gz[vision_examples.tar.gz]

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

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 in conjunction with Peter Stone. It is part of the University of Texas at Austin, Texas Institute for Discovery Education in Science, Freshman Resaerch Initiative Program. The course was originally conceived by Peter Stone, and this material 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.