I would go for a commonly used framework. As you are interested in path planning, pick a framework that already has simulated robots, and just write the planning services you need to generate paths for it.

ROS is very cool, and has quite a large selection of useful perception services, as well as the full PR2 stack. It uses gazebo (part of player/stage) for simulation, and includes a few off the shelf robots (erratic would be ideal for this). Its quite new, but very active.

MRDS has several suitable robots, and frankly better simulated environments then ROS, but not quite as much by way of high level services. The lego robot simulator would be fine for what you want to do, and gives you the choice of validating on real hardware cheaply in the future.

These two have the lions share of developers at the moment. Really the decision boils down to whether you are happier developing in visual studio under windows, or on linux platforms. Both are free for students (MSRS is under ELMS / dreamspark programs), both have a learning curve, both have pretty good community support. For MRDS, go sign up to the forum, for ROS, join the mailing list.


It sounds like all you need is a 2D simulator. So i would avoid the overhead and headaches of a 3D simulator. Some notes on your choices:

  1. Player includes a 2D simulator (Stage) and a 3D physics simulator (Gazeebo) which i think uses ODE
  2. MRDS includes a 3D physics simulator by PhysX

  3. ROS is only an architecture and i don't believe it has its own simulator. although it does have some different visualization tools. it also wraps Player.

Another popular simulator / architecture is WeBots. But i think that is only 3D.

That's all i know. Good luck. -Ben


I've been programming against SimSpark. It's the open-source simulation engine behind the RoboCup 3D Simulated Soccer League.

It's extensible for different simulations. You can plug in your own sensors, actuators and models using C++, Ruby and/or RSG (Ruby Scene Graph) files.

I don't know if it's the best simulator, but I've enjoyed using it.

EDIT In response to Arkapravo's comment.

I have written a .NET API for writing your own RoboCup 3D agents called TinMan.

There are a bunch of videos on YouTube of simulated 3D soccer matches. This is one of my favourites.

RoboCup 2010 is taking place this week in Singapore, though unfortunately I won't be able to make it.

RoboCup 3D runs on a physical simulation engine called SimSpark. It has a comprehensive Wiki with lots of information explaining how it all works.

My agent is still quite primitive, so I don't have anything published about it just yet. There are plenty of open source agent implementations in different languages if you're interested.