If you are uncertain about whether you have sufficient background to take the class, please contact the instructors.

This course is open to all graduate students. A good working knowledge of the following subjects is required:

  • linear algebra
  • probability theory
  • ordinary differential equations

The knowledge of basic computer science data structures such as graphs, link lists, etc. is preferred, but students may also choose to learn it on their own. The class projects will also require knowledge of Matlab and programming in C or C++.

Although students will only receive one course unit, expect the course load to be approximately two course units (we expect the project work to be the equivalent of a conference-quality paper, and successful acceptance in a conference is the real reward!).

Students must have had the equivalent of MEAM 520 or equivalent, http://www.seas.upenn.edu/~meam520.

Further Advice:

Since this is a project based course, you should expect to invest a lot of time in the nitty-gritty details required to make a project successful.

While the course is registered as 'MEAM620' and not 'CIS620', strong programming abilities are required to complete the projects. All of the projects require strong MATLAB skills and benefit from an understanding of C/C++. Project 2 may require programming in C/C++.

We expect all of you to be off to a running start in Linux, and Matlab.

  • Linux: Linux is the operating system of choice because there is solid ROS support of many linux distributions. You should be able to navigate around in a linux environment and develop and compile code. In general, ROS can be compiled for Linux and MacOS. ROS's website mentions unofficial support of Windows but don't be fooled because only the ROS core is supported, no debugging tools or any visualizations of any type. Also, while ROS is supported on MacOS, no OGRE-based programs can be used out of the box (including Gazebo, RVIZ). We use Ubuntu 12.04 and that's what we suggest you use.
  • Matlab: Hopefully, you'll be able to use Matlab for the majority of the code needed for your projects. However, without the use of clever tricks in your programs, matlab programs can run terribly slow. Controlling a robot requires a near real-time loop to make sure the robot keeps on the planned path. That means you must be proficient at Matlab so that your robot can drive at a reasonable rate (we will be grading based on the performance and speed of your robot).

If after reading all of this and reviewing the website you are not sure about about taking the class, contact one of us. Finally, a special note to Master's students. If you are planning on taking two years to complete your master's degree and you don't have a background in robotics, you should consider taking MEAM 520 this year and MEAM 620 next year.

We are looking forward to a successful and productive semester with you.

MEAM 620 staff