The mpro package provides programs and libraries for network-based control of an iRobot MagellanPro robot. Included are programs for on-board control of the robot, remote control, simulation, and more, along with a client library for writing robot controllers that run off-board the robot. mpro was designed to be used in teaching activities but is also be useful for research.

Download mpro

mpro is provided in source code form only. For instructions on compiling and installing the programs and library, read the INSTALL file that is included in the distribution. For instruction on using mpro, read the README file or this website.

Current version: 0.1.8 (4/8/2006)

NOTE: If you need help with mpro, you can email me. However, I do not guarantee any kind of response, as I am usually too busy playing with robots.

NOTE 2: If you find bugs in mpro, please let me know. Ideally, please send me code to fix the bugs! Do the same if you add features.


The iRobot MagellanPro is a research robot with a differential drive system, 16 bump sensors, 16 infrared range sensors, and 16 sonar range sensors. (iRobot no longer builds or supports these robots.) The mpro package provides support for writing software to control a MagellanPro and can be used on both *nix based and Windows based systems. It includes the following:


Example session

Following is an example session showing a series of commands that you can try in order to familiarize yourself with mpro. This assumes you are using a Unix-based operating system (the '&' signs run programs in the background). In Windows you may need to use a separate command shell for each program. It also assumes the programs have been installed somewhere in your path.

  # run the simulator in the background with the test map (provided in
  # the distribution in the data directory).  
  mprosim --map data/test.pgm --pixels-per-meter 40 &

  # run the gui, which connects to your computer by default
  mprogui &

  # run the remote control program
  # now drive the robot around a bit, then press 'q' to quit

  # compile the example programs and then run move-until-ir, which
  # connects to localhost by default
  cd examples

  # quit the GUI by pressing 'q', and terminate the simulator with:
  killall mprosim

  # now let's try the same thing on a real robot

  mprogui -h &

  # when you get bored, do:

  # now write your own programs!