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.
M. Ani Hsieh
Office: 159 Curtis Hall
Office Hours: By appointment.
Office: Hess 10F
Office: Hess 10F
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
Introduction to Autonomous Mobile Robots
by Roland Siegwart and Illah R. Nourbakhsh
Computer Vision: A Modern Approach
by David A. Forsyth and Jean Ponce
by Linda G. Shapiro and George C. Stockman
by Sebastian Thrun, Wolfram Burgard and Dieter Fox
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
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:
Final Exam: 30%
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.
||Ch. 4; Forsythe & Ponce Ch 1.; Shapiro & Stockman Ch. 1, Ch. 2|
||Forsythe & Ponce Ch. 6; Shapiro & Stockman Ch. 6.1-6.3|
||Probabilistic Robotics Ch. 1-2|
||Probabilistic Robotics Ch. 3.1-3.2||9||
||Probabilistic Robotics Ch. 5, Principles of Robot Motion Ch. 1-2||
||Principles of Robot Motion||
||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.
Assignments should be submitted via Blackboard (Bb Vista). Solutions will also be posted on Blackboard.
Assignment 0L: Lab Members
Assignment 1I: LARevTrajFollow, RobotTrajSim.zip
|9/29/08. Minor typos in Prob 5 in A1I fixed.|
Assignment 2I: Assign2I, matlab_for_warmup4.zip,
Assignment 2L: Assign2L, Assign2L_Matlab.zip
Assignment 3I: Assign3I, Code & Images
, Assignment 3L: Assign3L, A3LMatlab.zip
|10/7/08. Minor typo in Prob 2 in A2I is fixed.|
Assignment 4I: Assign4I, A4IMatlab
Midterm: Exam, Matlab Code for Midterm
Assignment 5: Continue working on Midterm. Midterm Guidlines
Assignment 6: Assign6I, imagesA6I
Assignment 7:Assign7L, blobExtractionC.zip
||New due date: 11/26 @ 11:59 EST|
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
Matlab Command/Control Scripts
Surveyor_Matlab_v4.1.zip NEW, Modified 3/25/2008
- 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.
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.