CS 309 (50660): Autonomous Intelligent Robotics (FRI I) - Spring 2020
Locations & Contact Info
Instructor | Justin W. Hart | |
---|---|---|
Class Times | Tuesday & Thursday | 3:30-5:00pm |
Classroom | Robert Lee Moore (RLM) 5.118 | |
Laboratory | Gates-Dell Complex (GDC) 3.414 | |
Course Syllabus | This Website - Check for Updates |
Name | 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 | ||
Mentors | ||||
Abrar Anwar | abraranwar123@gmail.com | Tuesday & Thursday | 11:30am-12:30pm | |
Parth Chonkar | parthchonkar@gmail.com | Monday & Wednesday | 1:00pm-2:00pm | |
Blake Holman | blake.holman@utexas.edu | Monday | 1:00pm-3:00pm | |
Jeffrey Huang | jeffreyhuang23@gmail.com | Wednesday | 3:00pm-5:00pm | |
Joseph Moyalan | joseph.moyalan.057@utexas.edu | Thursday | 12:00pm-2:00pm | |
Mayuri Raja | mraja7@utexas.edu | Monday | 10:30am-12:30pm | |
Anwesha Roy | t.anwesha@gmail.com | Thursday | 12:00pm-2:00pm | |
Connor Sheehan | c-she@utexas.edu | Friday | 3:00pm-5:00pm | |
Jennifer Suriadinata | jsuriadinata@utexas.edu | Wednesday & Friday | 1:00pm-2:30pm | |
Stone Tejeda | stonetejeda@utexas.edu | Tuesday & Thursday | 12:30pm-2:00pm |
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. 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.
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.
Readings
- There is no textbook for this course.
- Students will read, give written responses to, and participate in in-class discussions regarding 4 papers.
- As part of the final project, students will perform a literature survey.
Organization
- You will work with robots, which can be found in the BWI Laboratory, GDC 3.414.
- Discussion of the homework is encouraged. Sharing answers is prohibited.
- ROS & C++
- Homeworks and projects will utilize ROS & C++.
- Computers with ROS are available in GDC 3.414.
- Students are encouraged to use the lab for this class (only). It is a really nice lab.
- Personal Linux Machines
- Installing Linux on a personal laptop is advisable though not mandatory.
- Use your personal Linux machine for your homework and project or to work through the exercises on ROS.org. We won't slow down in class to help you do the exercises.
- The peer mentors will be available to help you set a laptop up to dual-boot Linux.
- You are responsible for backing up your data before this, but they can help you figure out how to back your data up.
- Running ROS in a virtual machine tends to work very poorly, and the mentors and instructor will not help you accomplish this.
- Other Linux Machines
- The machines in the BWI lab have ROS installed.
- The machines in the downstairs student computer lab have ROS installed
- Note that all of the robots in the BWI lab run ROS Kinetic. Check that your homework works on a lab machine using "catkin build" before turning it in. Other versions of ROS may have subtle differences.
Prerequisites / Necessities
- Students are also expected to be able to work independently.
- If you ask me a question that Google can answer, I will send you away to Google it.
- I have instructed the mentors to do the same thing.
- There is no programming pre-requisite for this course.
- You will be required to program in C++ in this class.
- Several lectures will be dedicated to introductory C++ programming.
- Most lectures will discuss intensive programming instruction in ROS/C++.
Grading
Grades will be based on:
Class participation and attendance | 10% |
Reading Responses | 10% |
Homework | 55% |
Final Project | 25% |
Plus and minus grades will be used in final grading of the course.
Final project presentations will be during the final exam slot on Friday, May 15 from 9:00am-12:00pm.
Final project reports will be due on Monday, May 20 at 11:59pm.
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.
Date | Title | Assignment Set | Assignment Due | Readings | Slides |
---|---|---|---|---|---|
01/21/20 | Class Introduction | [PDF] | |||
Panel with Peer Mentors | |||||
Introduction to Artificial Intelligence | [PDF] | ||||
01/23/20 | Introduction to ROS | [PDF] | |||
Starting the Robot | [PDF] | ||||
01/28/20 | BWIBot Demo | Start the Robot | 02/04/2020 @ 11:59pm | ||
01/30/20 | C++ Tutorial | [PDF] | |||
Introduction to Artificial Intelligence | |||||
02/04/20 | C++ Tutorial | ||||
Introduction to Artificial Intelligence | |||||
02/06/20 | How to Read Papers | [PDF] | |||
C++ Tutorial | Paper 1: "I Don't Believe You": Investigating the Effects of Robot Trust Violation and Repair | [Paper PDF] | |||
02/10/20 | Reading Responses due 11:59pm | ||||
02/11/20 | C++ Tutorial | ||||
Reading Discussion | |||||
02/13/20 | C++ Tutorial | ||||
02/18/20 | C++ Tutorial | Basic C++ | 02/25/2020 @ 11:59pm | ||
02/20/20 | Symbolic Reasoning and Search | [PDF] | |||
02/25/20 | Symbolic Reasoning and Search | ||||
02/27/20 | ROS Topics & Service Calls | [PDF] | |||
03/03/20 | ROS Topics & Service Calls | ||||
ROS & OpenCV | [PDF] | ||||
03/05/20 | Behavior-Based Systems | [PDF] | |||
Reading Discussion | |||||
ROS & OpenCV | ROS Basics, Some Simple Computer Vision and Some Quick PDDL | 03/24/2020 @ 11:59pm | |||
03/10/20 | Spatial Transformations | [PDF] | |||
TF | [PDF] | ||||
Eigen | [PDF] | ||||
Project Group Formation | [PDF] | ||||
03/17/20 | SPRING BREAK | ||||
03/19/20 | SPRING BREAK | ||||
03/24/20 | SPRING BREAK Part II: The sequel wasn't as good as the first |
||||
03/26/20 | SPRING BREAK Part II: The sequel wasn't as good as the first |
||||
03/31/20 | System Check & Status Check-in | ||||
AR Tags | |||||
Project Group Formation | |||||
04/02/20 | AR Tags | Paper 3: PRISM: Pose Registration for Integrated Semantic Mapping | [Paper PDF] | ||
ROS Navigation & Goals | |||||
Final Project Proposals | |||||
04/06/20 | Reading Responses due 11:59pm | ||||
04/07/20 | LaTeX | [PDF] | |||
Paper Discussion: PRISM - Pose Registration for Integrated Semantic Mapping |
HW 4: Follow the AR Tag | 04/21/2020 @ 11:59pm | |||
04/09/20 | Final Papers | [PDF] | |||
Good Final Projects | [PDF] | ||||
Final Project Proposals | [PDF] | ||||
04/14/20 | Final Project Workshop | Final Project Proposal Slides | 04/16/2020 in class | ||
04/16/20 | Final Project Debugging | Final Project Proposal Prospectus | 04/20/2020 @ 11:59pm | ||
04/21/20 | Work Session on Zoom | ||||
04/23/20 | Work Session on Zoom | ||||
04/28/20 | Work Session on Zoom | ||||
04/30/20 | Final Presentations | [PDF] | |||
05/05/20 | Work Session on Zoom | ||||
05/07/20 | Work Session on Zoom | ||||
05/12/20 | Reading Week | ||||
05/14/20 | Reading Week | ||||
05/15/20 | Final Project Presentations & Papers |
Assignments
- 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 date | Homework | Instructions | Files |
---|---|---|---|
02/04/20 | HW 1: Start the Robot | [PDF] | [DIR] |
02/25/20 | HW 2: Basic C++ | [PDF] | [DIR] |
03/24/20 | HW 3: ROS Basics, Some Simple Computer Vision and Some Quick PDDL | [PDF] | [Bag File] |
04/21/2020 | HW 4: Follow the AR Tag | [PDF] | [DIR] [BAG] |
04/16/2020 | HW 5 - A: 6 Slides, presented in class | [PDF] | |
04/20/2020 | HW 5 - B: 6 Proposal Prospectus/Paper | [PDF] | |
05/15/2020 | Final Project Paper | ||
05/15/2020 | Final Project Presentation - During Exam Period |
Software
Software | Host Site | Notes |
---|---|---|
Ubuntu Linux | https://www.ubuntu.com/ | You want 16.04 |
ROS | https://www.ros.org/ | You want Kinetic, if possible |
FF | https://fai.cs.uni-saarland.de/hoffmann/ff/FF-v2.3.tgz | https://fai.cs.uni-saarland.de/hoffmann/ff.html |
C++ Examples
To be released as we cover this material in class.
Example | File | Description |
---|---|---|
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
Example | File | Description |
---|---|---|
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.
Example | File | Description |
---|---|---|
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
Attendance & Late work
- Penalties for late work begin at 12:00am the following day (1 minute late).
- Late homework or projects are subject to a 15 point per day penalty.
- Work that is 4 days late will receive a zero.
- Late reading responses will receive a zero.
- Class attendance is mandatory. Email the instructor in advance for approved absences.
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.
Credits
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.