Updates
Instructions for the new assignment posted in the Assignments section.
Office hours
Instructor:
Time: Tuesday 14:00 - 15:30, or by appointment
Office: GDC 3.418
Email: matteo--AT--cs--DOT--utexas--DOT--edu
Teaching assistant - Ali Unwala:
Time: TTh 6:30 - 7:30 pm
Office: GDC 3.414b (BWI lab)
Email:
Course Requirements
Grades will be based on
- class participation (10%);
- written responses to the readings; (10%)
- preliminary assignments; (50%)
- a final programming project. (30%)
Students should post responses to the readings on the class wiki, under the appropriate heading (i.e. "Week x Readings"). Be sure to post your name and the date with your response! Credit will be based on evidence that you have done the readings carefully. Students should also comment and discuss other student's reading responses on the wiki. The response should include a summary of the reading along with any of the following:
- Insightful questions;
- Clarification questions about ambiguities;
- Comments about the relation of the reading to previous readings;
- Critiques on the research;
- Critiques on the writing style or clarity;
- Thoughts on what you would like to learn about in more detail;
- Possible extensions or related studies;
- Thoughts on the paper's importance; and
- Summaries of the most important things you learned.
Prerequisites
A brain*.
Text and Website
There is no textbook for this course. Instead, relevant research papers will be assigned.
Philosophy and Goal
The foremost goal of this course is to expose the student to the full range of activities required of a real-life computer science researcher. It turns out that computer scientists rarely read textbooks, sit silently in lectures, work on programming assignments with correct and complete answers, or take exams. Rather, they
- read about and critically assess original research;
- speak in public;
- collaborate effectively with peers;
- devise solutions and/or approaches to open-ended problems; and
- write about these solutions and/or approaches.
This course presents an opportunity for students to help decide whether they would enjoy going on to graduate school and an eventual career as a computer science researcher. In particular, students will be required to read published research papers, write brief reactions to them, participate in class discussions, propose and execute a solution to a challenging open-ended problem, and write about their work. They will be given an opportunity to collaborate with other students on the final project.
Content Overview
This course is focused on developing a building wide intelligence (BWI) for the new computer science building. The idea is to have a pervasive intelligence throughout the building, in the form of robots, kiosks, display screens, and cameras. These robots will perform a variety of tasks, such as leading people to their destinations or locating a person in the building.
The main goal of this course is to complete a small research project, advancing the abilities of the current BWI system.
Participation in the class discussions will also form a significant part of the grade. Class meetings will consist of discussions based on assigned readings and updates on project progress.
Assignments
- Basic ROS, due 3/3:
- For CS students: create a ROS wrapper for the library Petri Net Plans, and a node to run the test domain Gridworld. More information here.
- For non-CS students: write a 2 to 4 page essay on scientific papers of your choice, related to the HRI experiments you intend to perform.
- On the Robot, due 4/16:
-
- For CS students: Create a ROS package that grabs images from kinect, recognizes any object in front of the robot, transforms its position from kinect's frame of reference to the base's frame of reference and sends velocity commands to move the robot in the direction of the object. You can get the robot to follow the closest object, or a ball, or anything you manage to make it recognize in the images and depth map form Kinect. Submit the code of the package you created.
- For non-CS students: write a research proposal per group. A proposal's aim is to convince the reader that your idea is worthwhile, and should be pursued (and funded). It should
contain the following sections:
- Introduction: what's the context of your idea and why it is important. Catch the reader's attention.
- Related Work: what are the related papers that made you think this research topic was relevant to some community, and at the same time has room from improvement (through you work). Use the citation style you see in scientific papers, like [1] to cite paper number 1. At the bottom of the proposal you'll have a section for references.
- Technical Description: what you want to achieve and how you plan to do it. What does it take to actually carry out the experiments, what material, software or robot capability do you need? From this section it must be clear that you know what you are going to do, and will be able to do it.
- Assessment: set your goals and clarify how to measure your success.
- References: papers you referenced throughout the proposal.
Optional
Optional assignments are meant to help the students keep pace with the class, and avoid to arrive at a mandatory assignment with an excessive amount of work ahead. If completed and positively graded they contribute to the final grade, otherwise will be ignored.
- Basic ROS take 2, due 4/3:
-
- For those who have a grade < 8 in the first assignments.
- Create two ROS packages, with one ROS node each.
- The first node has an integer variable v, and publishes the value of v on a topic. It also exports a service which takes an integer as a parameter and sets the value of v to the value of its argument.
- The second node subscribes to the topic on which the first not publishes, and receives the messages with the value v. Once a value v is received, it invokes the service to change it to v+1. When a message with v+1 is received, it invokes the service to set it to v+2, and so on.
- tf:
-
- Create a ROS package (and node) which computes the position and orientation of an imaginary object with respect to one of the two turtles in the simulation presented by Jack. The code to run the simulation is here.
- Specify the pose (position and location) of your imaginary object (does not have to be shown in the simulation) and use tf to compute its pose in the frame of reference of one of the two turtles.
Readings
Every week the students choose a paper related to their research project and post a report on Canvas (it used to be on the wiki). Appropriate assignments, one per week, have been created on Canvas. The deadline is every Monday at 11:59 pm.
Class Diary
- 1/14 - Introduction
- History of the stream by Prof. Peter Stone
- Summary of last year's projects
- Discussion and ideas about possible projects
- 1/16 - Presentation by Dr Shiqi Zhang
- Problems of a wheeled robot in an indoor environment
- Simultaneous Localization and Mapping (SLAM)
- Object recognition
- Decision making for looking for specific objects
- 1/21
- C++ software compilation
- CMake
- 1/23
- Introduction to ROS
- Where to find and how to read scientific papers
- 1/28 - Campus closed, no class.
- 1/30
- First ROS tutorials:
- Installing and Configuring your ROS environment
- Navigating the File Systems
- Creating a package
- Building a package
-
- Try to build the package using CMake only, and not catkin_make
- Recall lesson on 1/21
- 2/4
- Discussion on projects and ideas
- Many new ideas posted on the wiki
- 2/6
- ROS Messages and services
- Two useful ROS tutorials
- 2/11 - Compilation and linking, in CMake, of Petri Net Plans and the test domain Gridworld.
- 2/13 - Introduction to representing behaviours with Petri Net Plans.
- 2/18
- Description of the implementation steps required to use PNP
-
- Generate the documentation with doxygen
- Start from the file index.html in the doc/html directory
- Explanation of the assignment
- 2/20
- Microsoft Kinect and its use in Robotics
- Kinect in ROS: openni_tracker
- 2/25 - Step by step walk through the assignment.
- 2/27 - Robot localization with particle filters.
- 3/4 - Group meetings.
- 3/6 - Solution of the first assignment explained. To be continued.
- 3/11-14 - Spring break.
- 3/18 - Solution of the first assignment , recap of topics and services in ROS.
- 3/20 - Coordinate transformations and the tf library. To be continued.
- 3/25 - >Group meetings.
- 3/27 - How to use tf.
- 4/1 - Group meetings.
- 4/3
- Kinect in ROS: freenect_stack.
- Ali's code.
- 4/8 - Group meetings.
- 4/10 - Discussion about robotics.
- 4/15 - Group meetings.
- 4/17 - Group meetings.
- 4/22 - On the assignment and tf.
- 4/24 - Group meetings.
- 4/29 - Group meetings.
- 5/1 - Group meetings.
Academic Dishonesty Policy
All work ideas, quotes, and code fragments that originate from elsewhere must be cited according to standard academic practice. Students caught cheating will automatically fail the course. If in doubt, look at the departmental guidelines and/or ask.
Notice about 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.
Notice about 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.
[Back to Department Homepage]* I have to admit that CS312 would help a lot.