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 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.


Letter to the Students:

Welcome to MEAM620!

Professor Jianbo Shi and I are the two instructors and Ben Cohen will be helping us, particularly with projects in the class.

As you will see from the MEAM 620 website, www.seas.upenn.edu/~meam620, this course will cover the mathematical foundations of planning and control and as well as design and implementation of real-time planning and control software modules for robotic systems which will be tested on real systems. In just one semester we will cover a few major topics in robotics, with theoretical and practical knowledge, which you can immediately start using for your research. The only way we can accomplish a great deal in three and a half months is by stuffing two credits worth of work into a one credit course. 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 the use of ROS to communicate between the 3D simulator, Gazebo, and your necessary planning and control modules. We hope to have an infrastructure in place that would allow you to do your projects in Matlab but we can't guarantee that we will but we can definitely guarantee that some coding in C++ will be required even if Matlab can be used.

We expect all of you to be off to a running start in Linux, C/C++ 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 9.10 or 10.04 and that's what we suggest you use.
  • C/C++: Again, while we hope to build an infrastructure for you that will allow you to use Matlab, you will definitely have to code in C/C++ at some point. Some packages in ROS do not offer documentation, which means if you have any questions as to how they work you have to read the code itself to understand what to do.
  • 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 (emails at the bottom). 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.

Vijay Kumar