Course Description
This course addresses the problems of controlling and motivating robots to act intelligently in dynamic,
unpredictable environments. Major topics will include mechanical design, 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 mobile robots, robot arms and positioning devices,
and virtual agents. Labs will focus on programming robots to execute tasks and to explore and interact with
their environment.
Prerequisites: ENGR 015 or CPSC 035. MATH 27 or 28 is strongly recommended.
Instructor
M. Ani Hsieh
Hicks 305
610-328-8081

Office Hours: Tues 1:30pm - 4pm, Wed 11am - noon, and Thurs 2-3pm
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
Time and Location
Hicks Mural Room (312)
Tuesdays, Thursdays 11:20am-12:35pm
Tuesdays 6pm - 12am
Wednesdays 12pm - 12am
Grading Policy
This course will have a strong research focus. As such, there will be assignments/labs, in class presentations,
in class discussions, a final project, and a final oral examination. All assignments are due the day before
the start of the next assignment at 11:59pm EST. All electronic submissions, with the exception of code, must
be submitted in PDF format generated using some version of LaTeX compiled into a single file. Additionally, all
electronic submissions must be below 2MBs. All other formats will be rejected without notification. Late
assignments will not be accepted.
Grading will follow the breakdown listed below:
Assignments: 30%
Participation: 10%
Final Project: 40%
Oral Exam: 20%
Tentative Schedule
| Week | Days | Topics | Reading | Notes |
|---|---|---|---|---|
| 1 |
1/22 1/24 |
|
Ch.1-3 | |
| 2 |
1/29 1/31 |
|
Ch. 4.1, In-class Handouts, Forsythe & Ponce's Colour Chapter, Sections 1-3 | |
| 3 |
2/5 2/7 |
|
In-class Handouts (Shapiro & Stockman Ch. 5) | |
| 4 |
2/12 2/14 |
|
Ch. 5, Ch. 2 of Probabilistic Robotics | |
| 5 |
2/19 2/21 |
|
3.2-3.3 of Probabilistic Robotics | |
| 6 |
2/26 2/28 |
|
Robot Motion Planning Appendices G,H | |
| 7 |
3/4 3/6 |
|
Robot Motion Planning Ch. 4, In-class Handouts | |
| 8 | Spring Break | 9 |
3/18 3/20 |
|
TBD | Bytes, Blobs, and Beyond |
| 10 |
3/25 3/27 |
|
TBD | |
| 11 |
4/1 4/3 |
|
TBD | |
| 12 |
4/8 4/10 |
|
TBD | |
| 13 |
4/15 4/17 |
|
TBD | |
| 14 |
4/22 4/24 |
|
TBD | |
| 15 |
4/9 5/1 |
|
TBD | |
| 16 | TBD | Oral Final Exams | TBD |
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;
Weekly Assignments
| Week | Days | Assignments | Notes |
|---|---|---|---|
| 1 |
1/22 1/24 |
Assignment 0: Request keys to Hicks Main Door, Hicks 301, Hicks 312 Assignment 1, MatlabExercise, Due: 1/30 @ 11:59pm Assignment 1b: Begin Final Project Topic Selection |
Please sign up for a time slot to meet with me and discuss the topic of your final project. The sign-up sheet is posted on my office door (Hicks 305). |
| 2 |
1/29 1/31 |
Assignment 2: Assignment 2a, Due 2/5 11:20am. (This can be done in pen & paper. DOES NOT have to done in LaTeX). Assignment 2b, Due 2/6 11:59pm. Assignment 2c, img_bw.png, img_color.png,Due 2/11 11:59pm. |
Assig 2a Solns |
| 3 |
2/5 2/7 |
Assignment 3: Color Blob Follower, imageSet |
In class demo on 2/26. Your grade will depend on how well your robot performs. |
| 4 |
2/12 2/14 |
Assignment 4: No assignment this week. |
|
| 5 |
2/19 2/21 |
Assignment 5: Basic Ranging & Navigation |
In class demo on 3/20. Your grade will depend on the performance of your robot. |
| 6 |
2/26 2/28 |
Assignment 6: A* |
Due on 3/25 @ 12:00pm |
| 7 |
3/4 3/6 |
Assignment 7: | |
| 8 | Spring Break | 9 |
3/18 3/20 |
Assignment 8: 1) Project proposal. Maximum 1 page. 2) Schedule Mtg. w/ prof for nxt week. |
Due on 3/25 @ 12:00pm |
| 10 |
3/25 3/27 |
Assignment 9: |
|
| 11 |
4/1 4/3 |
Assignment 10: |
|
| 12 |
4/8 4/10 |
Assignment 11: |
|
| 13 |
4/15 4/17 |
Assignment 12: |
|
| 14 |
4/22 4/24 |
Assignment 13: |
Project Ideas
The following is a brief list and description of project ideas grouped by area.Computer Vision
Camera tracking of multiple agents. The downside of indoor robots is that there is no simple sensor to enable a robot to obtain global position information. One simple solution is to place overhead cameras and assign unique markers (color/barcodes/etc) to the robots and develop computer vision algorithms to individually track each of the markers as the robots move around the workspace. This will require some knowledge of the camera configuration as well as figuring out what kind of markers will work best for the given application. For this project we are interested in extending this idea to track small nocturnal beetles to make it easier for biologists to study their mating behaviors. This project is best for someone with a deep interest in Computer Vision and who is not queesy about handling small insects. This project can also be categorized as a localization project and a second person can try to solve the tracking problem for our current robots in the Mural Room.
Localization
SLAM - Simultaneous Localization AND Mapping. In many instances, robots are not given a map of the environment they are working in. Thus it is important for robots to have the ability to explore and map a given environment. Since the environment is unknown, more often than not, robots will also require to localize themselves in order to explore and build a respresentation of the environment. For this project, we will be using the laser pointers and the color camera to enable to see if we can do SLAM using just these two sensors.
Motion Control and Planning
A* with Turning Radius Constraints. When considering wheeled robots, more often than not we have to deal with some form of turning radius constraints. There are many path planning algorithms to deal with such constraints. In this project, the question we would like to answer is whether one can extend the canonical A* path planning algorithm to incorporate turning radius constraints. This project will be a mostly simulation based project. This is also a good project for those who are more interested in the mathematical side of robotics.
General Robotics
Indoor Autonomous Aerial Robot Competition. This is a competition where the goal is to control an autonomous blimp to stay within a given target region subject to wind disturbances. The competition is hosted by Drexel University and will occur at the end of the semester. This is a 2-3 person project and will involve the building of the autonomous robot, programming, and control of the blimp. For more information please follow this link.
Robot Control Software and Simulation Environments. In robotics, we often like to be able to develop our control
algorithms separate from the hardware since this makes it easier to focus on the control algorithms rather than the details of a
particular hardware platform. The downside of developing code separate from hardware is that often times major code rewrites may
be necesssarily when transfering our algorithms to a particular robot due variety of robot hardware. This then of course has
the potential to introduce many bugs at runtime. As such it makes sense to be able to develop and test our algorithms on the
testbeds we are interested in. This, however, can be quite costly and can potentially be dangerous. Consider the example of
testing with an autonomous car. Thus, hardware-in-the-loop simulation environments are nice because it lets us develop algorithms
with the specific hardware in mind without having to incurr the cost of field testing.
One project is to develop the necessary drivers/modules in order for our robot to be able to interface with
Microsoft Robotics Stuio. A second project is to develop the necessary drivers/modules
for our robot to be able to interface with Player/Stage. While Microsoft Robotics
Studio is a Windows based platform, Player/Stage is a Linux based platform. For Microsoft Robotics Studio, proficiency with C#
will be extremely helpful while for Player/Stage proficiency with Linux and C++ is necessary.
Adding Extra Sensors to the SRV1. Some of you might have notice the SRV1s are somewhat limited in terms of the kinds of sensors they have. I would like to explore the possibility of adding some IR sensors to be able to obtain range and bearing information without having to rely on the camera and the laser pointers. This project is best for someone with a deep interest in applied electronics. You will need to have taken ENGR72 and have experience programming microcontrollers to take on this project.
Other
I will post other ideas throughout the next couple of weeks based on our discussions and other people's ideas.
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 Hicks 301 and make sure you plug the robot in to charge.
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.
Useful Links
LaTeX
Basic LaTeX Template (by Ani Hsieh)
MikTeX (available on Swarthmore's Data-Software Server)
WinEdit (available on Swarthmore's Data-Software Server)
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
Calibration Data
Sam and DogusScott and Garth
Jeff and Tane
Roby and Jonathan
Color Blob Tracker Code
Dogus and SamGarth and Scott
Tane and Jeff
Jonathan and Roby