Course Description
This course addresses the problems of controlling and motivating robots to act intelligently in dynamic,
unpredictable environments. Major topics will include robot perception, kinematics and
inverse kinematics, navigation and control, optimization and learning, and robot simulation techniques.
To demonstrate these concepts, we will be looking at robot arms, mobile robots, and virtual agents. Labs
will focus on programming robots to execute tasks and to explore and interact with their environment.
Prerequisites: MEM238 and MEM255.
Instructor
M. Ani Hsieh
Office: 159 Curtis Hall
E-mail: 
Office Hours: By appointment.
Lab Assistants
Qudus Hamid
Office: Hess 10F
E-mail: 
Nick Kitten
Office: Hess 10F
E-mail: 
Time and Location
Lecture: UG Lab in Curtis Hall, TR 11:00am-12:20pm NEW LOCATION
Labs: Lower UG Lab, M 3-5pm, T 5-7pm, R 9-11am
Main Text
Introduction to Autonomous Mobile Robots
by Roland Siegwart and Illah R. Nourbakhsh
ISBN-10:026219502X
ISBN-13: 978-0262195027
Supplemental Texts
Computer Vision: A Modern Approach
by David A. Forsyth and Jean Ponce
ISBN-10: 0130851981
ISBN-13: 978-0130851987
Computer Vision
by Linda G. Shapiro and George C. Stockman
ISBN-10: 0130307963
ISBN-13: 978-0130307965
Probabilistic Robotics
by Sebastian Thrun, Wolfram Burgard and Dieter Fox
ISBN-10: 0262201623
ISBN-13: 978-0262201629
Principles of Robot Motion: Theory, Algorithms, and Implementations
by Howie Choset, Kevin M. Lynch, Seth Hutchinson, George Kantor, Wolfram Burgard, Lydia E. Kavraki and Sebastian Thrun
ISBN-10: 0262033275
ISBN-13: 978-0262033275
Grading Policy
This course will have a strong focus on hands-on experience. As such, there will be extensive programming
assignments/labs, in class demonstrations, a midterm exam, and a final exam. All assignments are due at
11:59pm EST on the due date and must be submitted electronically via Blackboard. With the
exception of Matlab code, all assignments must be written up and submitted as a single PDF file not to
exceed 5 MBs in size. All other formats will be rejected without notification. Late assignments will
not be accepted.
Grading will follow the breakdown listed below:
Assignments: 30%
Midterm: 30%
Final Exam: 30%
Teamwork: 10%
Teamwork
Each group will complete a group evaluation form twice during the quarter. Once after the Midterm and once after the final. There will be a section in this evaluation form where each member will be asked to indicate what percentage of the overall work each member of the team performed. In general, it is impossible for each member to do an exactly equal portion of the work, therefore if someone claims everyone in his/her n-person team did (100/n)% of the work, it is likely that he/she is lying. However, do try and keep everyone involved and arrange it so that each person gets a chance to be responsible for different parts of the lab assignment for each week, i.e. programming, testing, writing, etc.
Tentative Schedule
| Week | Days | Topics | Reading | Notes |
|---|---|---|---|---|
| 1 |
9/23 9/25 |
|
Ch.1-3 | |
| 2 |
9/30 10/2 |
|
Ch. 3 |
Lecture 3 |
| 3 |
10/7 10/9 |
|
Ch. 4; Forsythe & Ponce Ch 1.; Shapiro & Stockman Ch. 1, Ch. 2 | |
| 4 |
10/14 10/16 |
|
Forsythe & Ponce Ch. 6; Shapiro & Stockman Ch. 6.1-6.3 | |
| 5 |
10/21 10/23 |
|
Lecture 9 |
|
| 6 |
10/28 10/30 |
|
Probabilistic Robotics Ch. 1-2 | |
| 7 |
11/4 11/6 |
|
||
| 8 |
11/11 11/13 |
|
Probabilistic Robotics Ch. 3.1-3.2 | 9 |
11/18 11/20 |
|
Probabilistic Robotics Ch. 5, Principles of Robot Motion Ch. 1-2 |
Lecture 15 |
| 10 |
11/25 11/27 |
|
Principles of Robot Motion |
Lecture 17 |
| 11 |
12/2 12/4 |
|
Principles of Robot Motion |
Sources for Lecture Slides: UPenn CSE390/MEAM420 by Jonathan Fiene, Jianbo Shi, Vijay Kuamr; UW CSE 455 by Steve Seitz; Online companion material for Introduction to Autonomous Mobile Robots; Robotics courseware from roboticscourseware.org.
Weekly Assignments
Assignments should be submitted via Blackboard (Bb Vista). Solutions will also be posted on Blackboard.
| Week | Days | Assignments | Notes |
|---|---|---|---|
| 1 |
9/23 9/25 |
Assignment 0L: Lab Members Assignment 1I: LARevTrajFollow, RobotTrajSim.zip |
9/29/08. Minor typos in Prob 5 in A1I fixed. |
| 2 |
10/2 |
Assignment 2I: Assign2I, matlab_for_warmup4.zip,
RobotTrajSim2.zip Assignment 2L: Assign2L, Assign2L_Matlab.zip |
|
| 3 | 10/9 |
Assignment 3I: Assign3I, Code & Images , Assignment 3L: Assign3L, A3LMatlab.zip |
10/7/08. Minor typo in Prob 2 in A2I is fixed. |
| 4 | 10/16 |
Assignment 4I: Assign4I, A4IMatlab Midterm: Exam, Matlab Code for Midterm |
|
| 5 | 10/23 |
Assignment 5: Continue working on Midterm. Midterm Guidlines Color Blobs |
Teamwork Questionnaire |
| 6 | 10/30 |
Assignment 6: Assign6I, imagesA6I |
|
| 7 | 11/6 |
Assignment 7:Assign7L, blobExtractionC.zip |
New due date: 11/26 @ 11:59 EST |
| 8 | 11/13 |
Final Exam Assignment 8: Kalman Filtering, kalmanFilter.zip |
Final Exam: Demo due 12/9 in-class. Write-up due 12/11 @ 11:59 EST. Assignment 8L: Due Wed 12/3 @ 11:59 EST |
9 | 11/20 | Continue w/ Final Exam and Assignment 8 |
| 10 | 12/1 | Continue w/ Final Exam |
Final Exam Demo due 12/9 in-class. Write-up due 12/11 @ 11:59 EST. Final Teamwork Questionnaire |
Background Information
Surveyor's Website
Robot Command Protocol Definition (Note some of the commands listed are not yet operational.)
Surveyor Robotics Forum
Matlab Command/Control Scripts
Surveyor_Matlab_v4.1.zip NEW, Modified 3/25/2008
Recent fixes:
- Small bug in get_srv_image for obtaining 680x512 images.
- Modified surv.java to address network connection timeout issues
- getImage.m is replaced w/ get_srv_image.m
- Fixed buffer read timeout errors
- Fixed Java memory leak
The above zipped file contains the following:
- Java directory containing the following files surv.java, Surveyor.class, and TestApp.class
- Matlab functions: addSurveyorJavaPath.m, initializeRobot.m, sendDriveCommand.m, get_srv_image.m, setLasers.m, setImageCaption.m, setImageQuality.m, setImageResolution.m, and shutdownRobot.m
surv.java contains the code for both the Surveyor and the TestApp class. You are welcome to modify this or use it as is.
Matlab Users
Place all the *.m files and the Java directory in your working Matlab directory. To initialize the robot, at the command line type
>> srv1robot = initializeRobot('192.168.1.xx')
where 'xx' denotes the robot's ID number. Now you are ready to send robots different commands using the other Matlab functions. A brief description of
what each function does is provided below. To get help on using the functions type help function_name at the Matlab command prompt. When you are done
working with the robot, make sure you run the shutdownRobot.m function. Return the robot to the TAs.
Matlab Function Descriptions
addSurveyorJavaPath.m - Internal command used by initializeRobot.m to add the Java Class Path.
initializeRobot.m - Establishes connection with desired robot.
sendDriveCommand.m - Sends commands to drive the robot.
get_srv_image.m - Returns an image from the robot's camera.
setLasers.m - Turns the lasers on/off.
setImageResolution.m - Sets the resolution of the image that is sent by the robot
setImageQuality.m - Sets the quality of the JPEG image sent by the robot.
setImageCaption.m - Turns the caption on the images on/off.
shutdownRobot.m - Closes connection with the desired robot.
LaTeX
Basic LaTeX Template (by Ani Hsieh)
MikTeX (available on-line)
WinEdit (available on-line, shareware)
The Not So Short Introduction to LaTeX
Bibtex (helps to organize your list of references)
Robot Control Software
ROCI
Microsoft Robotics Studio
Player/Stage
Gazebo
Computer Vision
Electronic copy of "Computer Vision: A Modern Approach" by Forsyth and Ponce
Computer Vision Education Resources
Localization
Other
Sebastian Thrun's Probabilistic Robotics Tutorial Page
Companion site to the book Probabilistic Robotics