Mobile Robotics

Turtoise Robot

[Source]

Home Schedule Assignments SRV-1 Robot Links

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: E-mail
Office Hours: By appointment.

Lab Assistants

Qudus Hamid
Office: Hess 10F
E-mail: E-mail

Nick Kitten
Office: Hess 10F
E-mail: 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

Lecture 5
Lecture 6

Week Days Topics Reading Notes
1 9/23
9/25
  • Introduction
  • Sensors & Actuators Overview
  • Math Review
  • Intro to Robot Kinematics
Ch.1-3

Lecture 1
Lecture 2

2 9/30
10/2
  • Robot Kinematics, cont.
    • Homogeneous Transforms
    • Forward/Inverse Kinematics
  • Homework Review
Ch. 3

Lecture 3
Lecture 4

3 10/7
10/9
  • Intro to Computer Vision
    • Projective Geometry
    • Connected Components
Ch. 4; Forsythe & Ponce Ch 1.; Shapiro & Stockman Ch. 1, Ch. 2
4 10/14
10/16
  • Physics of Color
  • Color Calibration
  • Color Blob Extraction
  • Visual Servoing
Forsythe & Ponce Ch. 6; Shapiro & Stockman Ch. 6.1-6.3

Lecture 7
Lecture 8

5 10/21
10/23
  • Additional Feature Extraction
    • Corner Detection
    • Edge Detection
  • Matlab Review (optional)

Lecture 9
Lecture 10

6 10/28
10/30
  • Intro to Localization
  • Probability Theory Review
  • Midterm Day I
Probabilistic Robotics Ch. 1-2

Lecture 11

7 11/4
11/6
  • Midterm Day II
  • SRV-1 Laser Ranging
  • Math Review Cont.:
    • Probability Theory
    • Bayes Rule

Lecture 12
labelBlobs.m

8 11/11
11/13
  • Recursive State Estimation
  • Kalman Filters
Probabilistic Robotics Ch. 3.1-3.2

Lecture 13
Lecture 14

9 11/18
11/20
  • Sensor Models
  • Robot Motion Models, revisited
  • Simple Triangulation
  • Intro to Motion Planning
    • Discrete Planners
Probabilistic Robotics Ch. 5, Principles of Robot Motion Ch. 1-2

Lecture 15
Lecture 16

10 11/25
11/27
  • Intro to Motion Planning, cont.
  • Thanksgiving (11/27): No class
Principles of Robot Motion

Lecture 17

11 12/2
12/4
  • Final Exam
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.
Previous fixes:
  • 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.