Adept MobileRobots Pioneer and Pioneer-compatible platforms

(Including Pioneer 2, Pioneer 3, Pioneer LX, AmigoBot, PeopleBot, PatrolBot, PowerBot, Seekur and Seekur Jr.)

ROS Software Maintainers: Reed Hedges (Adept MobileRobots), Srećko Jurić-Kavelj (University of Zagreb, Croatia), and others

All Adept MobileRobots mobile robot platforms use compatible communications protocols.

You may choose to use one of two packages for using these robots with ROS: ROSARIA or p2os.

ROSARIA provides an interface between ROS and (parts of) Adept MobileRobots' open source ARIA library. When using ROSARIA, communications with the robot, and the differences between some robot platforms and configurations is taken care of automatically by ARIA (and customizations on specific robots can be configured in ARIA). When ROSARIA is built (with catkin or rosmake), it automatically downloads the current ARIA release from MobileRobots. ROSARIA provides interfaces to the mobile robot control and position estimate; use device-specific ROS nodes for sensors and other devices on the robot base.

The p2os package on the other hand, contains its own implementation of the Pioneer protocol, and communicates directly with the robot, rather than via the ARIA library.

Available Robots



Pioneer LX

Pioneer 2/3-DX

Pioneer 2/3-AT

Pioneer LX








Seekur Jr



Seekur Jr.


In addition, older Pioneer 2 robots will also work as well.

All Adept MobileRobots robots are compatible and will work with ROSARIA. Different robots have different capabilities, and different robot types and your individual robot's configuration may require different parameters. For example, some robots have one onboard computer, some have multiple, some have none and are either operated remotely by wifi or by adding your own laptop. Different configurations are discussed in the documentation of ROSARIA and in the overview below.

Notes on Computer OS Selection

ROS is easiest to install and use on a recent stable release of Ubuntu. Check ROS/Installation for information on packages for different versions of ROS available and documented for different versions of Ubuntu. Ubuntu is what most people currently use with ROS and the most effort is made to make ROS work easily on the current stable version of Ubuntu.

It is also possible to install most (but not all) packages on Debian 6 (squeeze) as well.

If your robot has an onboard computer supplied by MobileRobots, it was originally set up with Linux or Windows. Depending on the age of the robot, the Linux installation is either Ubuntu 12.04 (LTS), Debian 5, Debian 3 or RedHat 7.

If it has Debian 3 or RedHat, reinstall with the latest Ubuntu LTS release (12.04 LTS as of October 2012), or with Debian 6 if you prefer. If it has Windows, either try the ROS Windows installation instructions (Windows support is still in development) or reinstall with Ubuntu. See for more notes on how to reinstall Linux from scratch.

If it has Debian 5, you can install Ubuntu from CD-ROM or bootable USB storage, or you can upgrade the system from Debian 5 (lenny) to Debian 6 (squeeze), if you prefer to stay with Debian.

If it has Ubuntu 12.0 and you wish to update it to a later version of Ubuntu, use the <tt>sudo apt-get dist-upgrade</tt> command, or use the Ubuntu Update Manager to upgrade.

If your robot does not have an onboard computer, use a laptop or workstation with Ubuntu or Debian 6.

Debian 5 packages released by MobileRobots generally will also work with Debian 6 or Ubuntu as well. (These will be marked as packages for Debian 5 or Lenny on the download page and will contain the "+debian5" tag in the package file name.) However, an Ubuntu 12 package, if available, is preferred (these contain an "+ubuntu12" tag in the package file name.)

Installing ROS

Follow the ROS installation instructions for either Ubuntu or Debian, depending on your OS choice above. If you are installing ROS on an onboard computer, only the "ROS Base" software is needed. ("Full" contains UI tools that will only be needed on your own laptop or workstations.)

As of October 2014, you may use ROSARIA with ROS Indigo, Hydro or Groovy. Fuerte and Electric might work using older versions of ROSARIA, but are not actively tested.

Getting Started with ROSARIA

For step by step instructions on downloading and building the ROSARIA package and using the RosAria node, see ROSARIA/Tutorials/How to use ROSARIA.

Laser Data Tools

You can use laser filters to modify raw laser data from a laser rangefinder. For example, on some robots (PatrolBot, PioneerLX, Seekur), edges or parts of the robot itself are within the field of view of some lasers, and those readings should be discarded. (ARIA normally handles this, but with ROS, a separate laser driver node is used to communicate with the laser, and the ROSARIA or p2os nodes only control the robot itself.) In addition, on some robots, the laser is mounted upside down to achieve a lower sensing plane. Sometimes this can be handled in the laser driver, but if the laser driver doesn't support it, the laser data needs to be inverted or reversed. Various other ways of processing or modifying laser data is also available. For more information, see laser_pipeline/Tutorials/IntroductionToWorkingWithLaserScannerData, laser_filters/Tutorials/Laser filtering using the filter nodes, and the other documentation associated with the laser_pipeline, laser_filters, and laser_assembler packages.

(In future, automatic generalized laser support may be added to ROSARIA. Join the ROSARIA development community if you would like to help.)


For questions about software, please use the standard ways to get support for ROS. Please post questions to with the tag "pioneer" or "rosaria".


ARIA will automatically connect to the MobileSim simulator from MobileRobots if it is running. Therefore, one easy way to do simple simulation of the robot in 2D is to just run MobileSim before running the RosAria node. However, note that not everything provided by MobileSim will be available through the RosAria node -- only what data and commands the RosAria node includes i.e. mobile robot base state, position and control, as well as sonar and bumpers. Laser rangefinders, cameras, and other separate accessories are not available via RosAria.

For more full-featured simulation in ROS, use Stage or Gazebo instead of MobileSim and RosAria.

Development and Discussion

If you would like to be involved in discussions regarding improving and extending ROS support for Pioneer and other AMR robots (via ROSARIA, p2os, and other packages), join ros-sig-pioneer, or contact the maintainers of the packages you wish to work on.

Library Overview

Basic Configuration


ROS package/stack

Robot base control and data

ROSARIA or p2os

Robot models (URDF)

see p2os_urdf for Pioneer 3 DX and AT definitions

Hardware Drivers and Simulation


ROS package/stack

Tested on a robot? (Contact ReedHedges if you have tested it)

Mobile Robot Platform

ROSARIA or p2os



ROSARIA or p2os


Bumper switches



Pioneer Gripper

not yet supported in ROSARIA, available in p2os


General purpose digital I/O

not yet supported

not yet

Canon VCC Camera Pan/Tilt/Zoom Control

not yet supported ?

not yet

Sony D30 Camera Pan/Tilt/Zoom Control



DPPTU-46 Pan/Tilt Unit


not yet

DPPTU-47 Pan/Tilt Unit


not yet

SICK LMS-200 laser rangefinder

sicktoolbox_wrapper. On most Pioneer-2 and -3 family robots, the laser is only powered on when software opens a serial connection to the laser. Run the laser node after the main robot control node (p2os or rosaria), and set the ~connect_delay parameter to 20 or 30 seconds to allow the laser time to power on and initialize.


SICK LMS-100 and LMS-111 laser rangefinders

Use LMS1xx, or use Clearpath's fork of sicktoolbox_wrapper2.


SICK LMS-500 laser rangefinder

Try LMS1xx package. If it doesn't work, try rebuilding LMS1xx node using the most recent version of liblms1xx from github. Or, use Clearpath's fork of sicktoolbox_wrapper2.


SICK S300 laser rangefinder

cob_sick_s300 or sicks300 with this patch applied. Set serial port parameter, and baud rate to 230400 or other value depending on laser's configuration, and inverted flag if inverted.


Hokuyo URG laser rangefinders

urg_node or hokuyo_node

not yet


Use freenect_stack (uses libfreenect, recommended, newer) or use openni_kinect (uses OpenNI, may have more features, but not as recently updated)


Cyton Gamma manipulator arm

see Robots/Cyton-Gamma


GPS Receiver

nmea_navsat_driver (or nmea_gps_driver with Fuerte or Groovy), or gpsd_client


Firewire cameras (not stereo)



USB Camera



Video Images (Analog) from Canon, Sony, RVision, cameras via Sensoray 311 analog framegrabber

gscam (configure before running with: export GSCAM_CONFIG="v4l2src ! video/x-raw-yuv, width=320, height=240 ! ffmpegcolorspace"), or any other driver using v4l

not yet

Video Images from Axis ethernet camera or framegrabber


not yet

PointGrey Bumblebee Stereo Camera



PowerCube Arm (PowerBot Arm)

use schunk_bringup to setup the schunk_powercube_chain (use schunk_bringup_sim for simulation


TCM2 Compass

not supported


If you have any information to add or change in this list, you may do so by editing this page, or contact ReedHedges with comments.


use Gazebo or run MobileSim then RosAria (see above)

Wiki: Robots/AMR_Pioneer_Compatible (last edited 2014-09-26 12:39:25 by ReedHedges)