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, Srećko Jurić-Kavelj (University of Zagreb, Croatia), and others
Available Packages
All MobileRobots mobile robot platforms use compatible communications protocols.
You may choose to use one of three packages for using these robots with ROS: ROSARIA or p2os for velocity control of the platform, or ros-arnl to use Adpept MobileRobot's optional ARNL localization autonomous navigation system.
1. ROSARIA
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.
2. p2os
The p2os package (see p2os-purdue for a currently active fork; older versions were p2os and p2os-vanderbilt) on the other hand, contains its own implementation of the Pioneer protocol, and communicates directly with the robot, rather than via the ARIA library, so installing ARIA is not necessary.
3. ros-arnl
If you have purchased the ARNL laser navigation system, you can also use ros-arnl to send the robot to goal points in a mapped environment. ros-arnl partially implements the same interface as the standard ROS navigation stack. See ros-arnl for details.
Contents
- Adept MobileRobots Pioneer and Pioneer-compatible platforms
Available Robots
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 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 16.04, Ubuntu 12.04, Debian 5, Debian 3 or RedHat 7.
If it has Debian 3 or RedHat, reinstall with the latest Ubuntu LTS release (16.04 LTS as of 2016). If it has Windows, either try the ROS Windows installation instructions (Windows support is still in development) or reinstall with Ubuntu. See http://robots.mobilerobots.com/wiki/Reinstalling_Linux for more notes on how to reinstall Linux from scratch.
If it has Debian 5, you can reinstall Ubuntu from CD-ROM or bootable USB storage, or you can upgrade the system to a later version of Debian, 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.
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.) Similarly, Ubuntu 12 packages released by MobileRobots will generally also work with Ubuntu 16. However, an Ubuntu 16 package, if available, is preferred (these contain an "+ubuntu16" 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 July 2017, you may use ROSARIA with ROS Indigo, Kinetic, or Lunar. Groovy and Hydro may work, but are not as 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.
Robot Model Descriptions (URDF)
Models of some robots are available in the http://github.com/MobileRobots/amr-ros-config repository. (This repository provides a ROS package called amr-ros-config so you can refer to files via that package name if in your ROS path.) See the README files in amr-ros-config for more information. If you would like to help create new URDF files or improve the existing ones, please discuss via the ros-sig-pioneer mailing list.
Launch Files and Other Configuration
Some example launch files are available in the http://github.com/MobileRobots/amr-ros-config repository. (This repository provides a ROS package called amr-ros-config so you can refer to files via that package name if in your ROS path.) See the README files in amr-ros-config for more information. You can copy and modify these launch files as needed.
Simulation
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, STDR Simulator or Gazebo instead of MobileSim and RosAria. However, configuration for Pioneer 3 and other MobileRobots platforms is not complete for Gazebo or STDR simulator; discuss development of this configuration on ros-sig-pioneer mailing list.
Webots also provides full-featured simulation models of the Pioneer 2, Pioneer 3-DX and Pioneer 3AT robots.
1. Gazebo Support
Gazebo configuration P3AT and P3DX is generally complete and well tested. Configuration for Pioneer LX (and LX Manipulator configuration) robot is also available with some testing. Support for Seekur Jr. has been started but is not as well tested. See the http://github.com/MobileRobots/amr-ros-config repository for some example launch files and other supporting configuration for use with Gazebo. To discuss improvements to Gazebo support, please join the ros-sig-pioneer mailing list.
Laser Rangefinders
There are several options for connecting to laser rangefinder sensors. If you are using ROSARIA, you can set the ~publish_aria_lasers parameter to true. If set to true, then in addition to connecting to the mobile robot, RosAria will connect to any laser rangefinders configured in the [http://robots.mobilerobots.com/wiki/Robot_Parameters ARIA robot parameter files]. If your robot came with a laser rangefinder installed and configured by MobileRobots, then this will generally work by default. RosAria will use ARIA to read and interpret laser rangefinder data, and provide this as a 2D point cloud topic in the robot global odometry coordinate frame. It also provides raw range values as a laserscan topic.
Alternatively, for more customization, you can run a ROS node dedicated to a specific type of laser rangefinder. See the list below for links to possible ROS node choices for different laser rangefinder types.
Note for LMS-200 on Pioneer 3: If using the sicktoolbox_wrapper node to connect to a SICK LMS-200 installed by MobileRobots on a Pioneer 3 robot (P3DX, P3AT, or PeopleBot), then you must set its ~connect_delay parameter to allow time for the LMS-200 to switch on and initialize. For example: rosrun sicktoolbox_wrapper sicklms _connect_delay:=30
You can use laser filter nodes to modify 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. In addition, on some robots, the laser is mounted upside down to achieve a lower sensing plane. ARIA normally handles this if running ROSARIA with ~publish_aria_lasers set to true, but with separate laser driver nodes you will need to use ROS to handle these cases. Sometimes this can be configured in the laser driver node, but if the laser driver doesn't support it, the laser data needs to be filtered, inverted or reversed. Various other ways of processing or modifying laser data is also available in the laser filter nodes. 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.
Support
For questions about software, please use the standard ways to get support for ROS. Please post questions to http://answers.ros.org with the tag "pioneer" or "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
1. Basic Configuration
Capability |
ROS package/stack |
Robot base control and data |
|
Robot models (URDF) |
See https://github.com/MobileRobots/amr-ros-config/tree/master/description (or p2os_urdf for alternative P3DX]] |
2. Hardware Drivers and Simulation
Component |
ROS package/stack |
Tested on a robot? (Contact ReedHedges if you have tested it) |
Mobile Robot Platform |
yes |
|
Sonar |
yes |
|
Bumper switches |
yes |
|
Pioneer Gripper |
not yet supported in ROSARIA, available in p2os-purdue |
no |
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 |
unsupported |
no |
FLIR/Directed Perception DPPTU-46 Pan/Tilt Unit |
flir_ptu_driver. Move connection to a computer serial port if currently connected to robot controller AUX serial port. Use its ~port parameter to specify serial port device name. |
not yet |
FLIR/Directed Perception DPPTU-47 Pan/Tilt Unit |
not yet |
|
SICK LMS-200 laser rangefinder |
sicktoolbox_wrapper or enable ~publish_aria_lasers parameter when running ROSARIA and configure laser in ARIA. Note: 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. |
yes? |
SICK LMS-100 and LMS-111 laser rangefinders |
Use LMS1xx, or use Clearpath's fork of sicktoolbox_wrapper2, or enable ~publish_aria_lasers parameter when running ROSARIA and configure laser in ARIA. |
yes? |
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. Or enable ~publish_aria_lasers parameter when running ROSARIA and configure laser in ARIA. |
yes? |
SICK S300 laser rangefinder |
cob_sick_s300 or sicks300 with this patch applied, or enable ~publish_aria_lasers parameter when running ROSARIA. Set serial port parameter, and baud rate to 230400 or other value depending on laser's configuration, and inverted flag if inverted. |
yes |
Hokuyo URG laser rangefinders |
urg_node or hokuyo_node or enable ~publish_aria_lasers parameter when running ROSARIA and configure laser in ARIA. |
not yet |
SICK TiM laser rangefinder |
sick_tim or enable ~publish_aria_lasers parameter when running ROSARIA and configure laser in ARIA robot parameters |
no |
SICK S3000 laser rangefinder |
Enable ~publish_aria_lasers parameter when running ROSARIA and configure laser in ARIA robot parameters |
no |
Keyence SZ-16D laser rangefinder |
Enable ~publish_aria_lasers parameter when running ROSARIA and configure laser in ARIA robot parameters |
no |
Kinect version 1 |
Use freenect_stack (uses libfreenect, recommended, newer) or use openni_kinect (uses OpenNI, may have more features, but not as recently updated) |
? |
Kinect version 2 |
See https://github.com/code-iai/iai_kinect2 and http://robots.mobilerobots.com/wiki/Kinect_Version_2_Notes |
yes |
Cyton Gamma manipulator arm |
see Robots/Cyton-Gamma for interface to Actin/CytonViewer. For direct control of joint modules, can also try https://github.com/bandi13/cyton_gamma_300_ROS |
? |
GPS Receiver |
nmea_navsat_driver (or nmea_gps_driver with Fuerte or Groovy), or gpsd_client |
no? |
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 |
yes |
|
PointGrey Bumblebee Stereo Camera |
? |
|
use schunk_bringup to setup the schunk_powercube_chain (use schunk_bringup_sim for simulation |
no |
|
TCM2 Compass |
not supported |
no |
Kinova Jaco2 Arms |
|
|
Schunk LWA4P/Powerball Arm |
not yet |
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.
Simulation |
Configuration for stdr_simualtor and Gazebo is still under development. Or run MobileSim then RosAria (see above) |