Mobile Robotics

Turtoise Robot

[Source]

Home Schedule Assignments Projects SRV-1 Robot Links Downloads

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
E-mail
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
  • Introduction
  • Mobile Robot Kinematics
  • Kinematic Constraints
  • Research Resources (by Meg Spencer)
Ch.1-3

Lecture 1 Slides
Lecture 2 Slides

2 1/29
1/31
  • Sensors Overview
  • Perception I: Computer Vision
    • Projective Geometry
    • Physics of Color
    • Color Blob Tracking
Ch. 4.1, In-class Handouts, Forsythe & Ponce's Colour Chapter, Sections 1-3

Lecture 3 Slides
Lecture 4 Slides

3 2/5
2/7
  • Basic PID Controls
  • Perception I: Visual Servoing
  • Edge Detection
In-class Handouts (Shapiro & Stockman Ch. 5)

Lecture 5 Slides
Lecture 6 Slides

4 2/12
2/14
  • Math Review:
    • Probability Theory
    • Bayes Rule
  • Bayes Filter
  • Markov
  • Localization I: 1-D Kalman Filters
Ch. 5, Ch. 2 of Probabilistic Robotics

Lecture 7 Slides

5 2/19
2/21
  • Localization I: Landmark Based Localization
3.2-3.3 of Probabilistic Robotics

Lecture 9 Slides

6 2/26
2/28
  • Math Review:
    • Algorithmic Complexity
    • Several Variable Calculus
    • Optimization Theory
  • Motion Planning I: Discrete Planners
    • BFS, DFS
    • A*
    • Dijkstra's
    • D*
Robot Motion Planning Appendices G,H
7 3/4
3/6
  • Motion Planning I: Artificial Potential Functions
Robot Motion Planning Ch. 4, In-class Handouts
8 Spring Break
9 3/18
3/20
  • Perception II
  • Guest Lecture I
TBD Bytes, Blobs, and Beyond
10 3/25
3/27
  • Perception II
TBD
11 4/1
4/3
  • Localization II
  • Guest Lecture II
TBD
12 4/8
4/10
  • Localization II
TBD
13 4/15
4/17
  • Motion Planning II
  • Guest Lecture III
TBD
14 4/22
4/24
  • Motion Planning II
TBD
15 4/9
5/1
  • Special Topics:
    • Multi-Robot Coordination
    • Robotic Swarms
  • Guest Lecture IV
  • Final Project Poster Presentation and Demos
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.
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 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.