Only released in EOL distros:  

Package Summary

ROSARIA provides a ROS interface for most Adept MobileRobots, MobileRobots Inc., and ActivMedia mobile robot bases including Pioneer 2, Pioneer 3, AmigoBot, PeopleBot, PowerBot, PatrolBot, Seekur, Seekur Jr., Pioneer LX, and any other past, current or future robot base supported by Adept MobileRobot's open source ARIA library. Information from the robot base, and velocity and acceleration control, is implemented via a RosAria node, which publishes topics providing data recieved from the robot's embedded controller by ARIA, and sets desired velocity, acceleration and other commands in ARIA when new commands are received from command topics.

Package Summary

The RosAria node provides a ROS interface for most Adept MobileRobots, MobileRobots Inc., and ActivMedia mobile robot bases including Pioneer 2, Pioneer 3, AmigoBot, PeopleBot, PowerBot, PatrolBot, Seekur, Seekur Jr., Pioneer LX, and any other past, current or future robot base supported by Adept MobileRobot's open source ARIA library. Information from the robot base, and velocity and acceleration control, is implemented via a RosAria node, which publishes topics providing data recieved from the robot's embedded controller by ARIA, and sets desired velocity, acceleration and other commands in ARIA when new commands are received from command topics.

Package Summary

The RosAria node provides a ROS interface for most Adept MobileRobots, MobileRobots Inc., and ActivMedia mobile robot bases including Pioneer 2, Pioneer 3, AmigoBot, PeopleBot, PowerBot, PatrolBot, Seekur, Seekur Jr., Pioneer LX, and any other past, current or future robot base supported by Adept MobileRobot's open source ARIA library. Information from the robot base, and velocity and acceleration control, is implemented via a RosAria node, which publishes topics providing data recieved from the robot's embedded controller by ARIA, and sets desired velocity, acceleration and other commands in ARIA when new commands are received from command topics.

Package Summary

The RosAria node provides a ROS interface for most Adept MobileRobots, MobileRobots Inc., and ActivMedia mobile robot bases including Pioneer 2, Pioneer 3, AmigoBot, PeopleBot, PowerBot, PatrolBot, Seekur, Seekur Jr., Pioneer LX, and any other past, current or future robot base supported by Adept MobileRobot's open source ARIA library. Information from the robot base, and velocity and acceleration control, is implemented via a RosAria node, which publishes topics providing data recieved from the robot's embedded controller by ARIA, and sets desired velocity, acceleration and other commands in ARIA when new commands are received from command topics.

Package Summary

The RosAria node provides a ROS interface for most Adept MobileRobots, MobileRobots Inc., and ActivMedia mobile robot bases including Pioneer 2, Pioneer 3, AmigoBot, PeopleBot, PowerBot, PatrolBot, Seekur, Seekur Jr., Pioneer LX, and any other past, current or future robot base supported by Adept MobileRobot's open source ARIA library. Information from the robot base, and velocity and acceleration control, is implemented via a RosAria node, which publishes topics providing data recieved from the robot's embedded controller by ARIA, and sets desired velocity, acceleration and other commands in ARIA when new commands are received from command topics.

Installation and Getting Started

Instructions on downloading, building and getting started with RosAria is covered in /Tutorials/How to use ROSARIA.

To build and install RosAria, first install the ARIA library from Adept MobileRobots at http://robots.mobilerobots.com/wiki/Aria. (If no longer available, a modified fork of ARIA is also available by cloning or forking the git repository at http://github.com/reedhedges/AriaCoda).

Then obtain the source code to RosAria from https://github.com/amor-ros-pkg/rosaria, and build using catkin. See /Tutorials/How to use ROSARIA for full instructions.

Video walkthroughs are available at /Tutorials/Video Walkthroughs.

Reporting bugs and making feature requests

Bugs and requests can be added and tracked here: https://github.com/amor-ros-pkg/rosaria/issues

Development is discussed and planned via the ros-sig-pioneer group

ROS API

These topics are by default provided under a /RosAria/ topic namespace or prefix. You can remap these to different names if desired (see Names, Remapping Arguments and the <remap> tag for launch files for information).

ROS topics are channels by which other nodes can communicate with ROSARIA by sending or reading messages. For more information on ROS topics, see Topics and rostopic.

ROS services are channels by which other nodes can cause specific events to occur on the robot via ROSARIA. For more information on services, see Services and rosservice.

Parameters are used to configure the behavior of the RosAria node during initial startup of the node, such as how to connect to the robot controller. They may be set on the command line when running rosrun or in a launch file when using roslaunch. Parameters are stored by the ROS parameter server. See also Parameter Server, rosparam, rosrun and roslaunch.

Some parameters can also be dynamically changed using dynamic_reconfigure.

RosAria

Simple node that uses ARIA to control the robot

Subscribed Topics

cmd_vel (geometry_msgs/Twist)
  • receives new velocity commands. Desired velocities are set in ARIA; the robot will achieve and maintain these velocities. ARIA will continue to send the velocity commands to the robot controller, but if no cmd_vel messages are received after 600ms (configurable or disabled via cmd_vel_timeout parameter, see below), rosaria will stop the robot. So cmd_vel commands are only needed to change velocity, or to to reset the watchdog timeout.

Published Topics

pose (nav_msgs/Odometry)
  • publishes odometry information (rate depends on the robot, normally 10Hz)
bumper_state (rosaria/BumperState)
  • publishes bumper states (thanks to Arturo Ribes of the Spanish National Research Council)
sonar (sensor_msgs/PointCloud)
  • publishes sonar readings (thanks to Michiel Blokzijl of the Imperial College London). Readings are taken if there are subscribers on the topic. When the last subscriber unsubscribes from both this and sonar_pointcloud2 topic, sonars are turned off. Only available on robots with sonar. The point cloud is two dimensional, and its coordinate frame matches the robot position. X and Y are points on the plane of the robot. Z data is always 0.
sonar_pointcloud2 (sensor_msgs/PointCloud2)
  • publishes sonar readings as sensor_msgs/PointCloud2 type. Readings are taken if there are subscribers on the topic. When the last subscriber unsubscribes from both this and sonar topic, sonars are turned off. Only available on robots with sonar. The point cloud is two dimensional, and its coordinate frame matches the robot position. X and Y are points on the plane of the robot. Z data is always 0.
battery_state_of_charge (std_msgs/Float32)
  • Battery state-of-charge percentage, range (0.0, 1.0). Only published if robot type supports state of charge (e.g. Pioneer LX, Seekur, Seekur Jr.)
battery_voltage (std_msgs/Float64)
  • Battery voltage measurement (DC volts).
battery_recharge_state (std_msgs/Int8)
  • Recharging status. Only published on Pioneer LX robot. 0 if not charging, > 0 if recharging, and < 0 on error or no data.
motors_state (std_msgs/Bool)
  • Indicates whether the motors are enabled (true) or disabled (false). (You can use the enable_motors and disable_motors services to enable/disable the motors.)
<lasername>_pointcloud (sensor_msgs/PointCloud)
  • Only published if publish_aria_lasers parameter is true. Provides laser data as a point cloud. <lasername> will be ARIA's identifier for the laser. May be repeated with different laser names if multiple lasers are configured in ARIA robot parameter file(s).
<lasername>_laserscan (sensor_msgs/LaserScan)
  • Only published if publish_aria_lasers parameter is true. Provides laser data as a laserscan type. <lasername> will be ARIA's identifier for the laser. May be repeated with different laser names if multiple lasers are configured in ARIA robot parameter file(s).

Services

enable_motors (std_srvs/Empty)
  • Enable the motors. May be used to re-enable motors if automatically disabled by an event such as e-stop button or bumper hit. ROSARIA initially enables the motors after connecting to the robot. Some robots (Seekur, Seekur Jr.) also have a separate physical MOTORS switch that must also be turned on.
disable_motors (std_srvs/Empty)
  • Disable motors. Depending on the robot this may just disable motion commands, or it may also switch off power to the motors. Use the enable_motors service to re-enable them.

Parameters

~port (string, default: /dev/ttyUSB0)
  • Serial port device the robot is is connected to, or a hostname and TCP port separated by a colon to do TCP communications (e.g 10.0.126.32:8101). Set to /dev/ttyS0 for onboard computers with direct serial connection via COM1 serial port . Set to /dev/ttyUSBx for use with a USB-serial adapter, where x is the appropriate interface index. (Use /dev/ttyS0 with onboard computer as installed by AMR in normal configuration, except Pioneer LX, which uses /dev/ttyUSB0)
~baud (int, default: Use ARIA default (internal defaults, /etc/Aria.args file if present, and ARIAARGS environment variable if set))
  • Explicit serial Baud rate. All robots should use 9600 (unless explicitly set in firmware configuration) except Pioneer LX which uses 57600. ARIA may switch to a higher baud rate if possible after connecting.
~debug_aria (bool, default: false)
  • If given, ARIA logging is set to Verbose level, ARIA log output is redirected to a file (see ~aria_log_filename), and additional robot-communications logging is turned on (Note, this will generate lots of data, >100 log messages per second)
~aria_log_filename (string, default: Aria.log)
  • ARIA log file if ~debug_aria is set to true. Unused if ~debug_aria is set to false.
~publish_aria_lasers (bool, default: false) trans_accel (float, default: none, use robot controller firmware configuration)
  • Set desired translation acceleration in m/s/s. May be set via dynamic_reconfigure
trans_decel (float, default: none, use robot controller firmware configuration)
  • Set desired translation deceleration in m/s/s. May be set via dynamic_reconfigure
rot_accel (float, default: none, use robot controller firmware configuration)
  • Set desired rotation acceleration in rad/s/s. May be set via dynamic_reconfigure
rot_decel (float, default: none, use robot controller firmware configuration)
  • Set desired rotation acceleration in rad/s/s. May be set via dynamic_reconfigure
lat_accel (float, default: none, use robot controller firmware configuration)
  • Set desired lateral (sideways) acceleration (applies to Seekur only) in m/s/s. May be set via dynamic_reconfigure
lat_decel (float, default: none, use robot controller firmware configuration)
  • Set desired lateral (sideways) deceleration (applies to Seekur only) in m/s/s. Maybe set via dynamic_reconfigure
TicksMM (float, default: none, use robot controller firmware configuration)
  • Change TicksMM odometry calibration parameter. See robot manual for information. Only available on robots with tunable odometry calibration (Pioneer 3, PeopleBot, PowerBot, AmigoBot).
DriftFactor (float, default: none, use robot controller firmware configuration)
  • Change DriftFactor odometry calibration parameter. See robot manual for information. Only available on robots with tunable odometry calibration (Pioneer 3, PeopleBot, PowerBot, AmigoBot).
RevCount (float, default: none, use robot controller firmware configuration)
  • Change RevCount odometry calibration parameter. See robot manual for information. Only available on robots with tunable odometry calibration (Pioneer 3, PeopleBot, PowerBot, AmigoBot).
cmd_vel_timeout (float, default: 0.6 sec)
  • If no cmd_vel command messages are received within this timeout period (in seconds), rosaria will command the robot to stop. If 0, this behavior is disabled and the robot will continue to use the last commanded velocity until a new cmd_vel command is received. Note that this is separate from the robot controller's own watchdog timeout, which protects against loss of communication between rosaria node and the robot controller.
odom_frame (string, default: odom)
  • Name to use to publish robot odometric pose estimate origin tf.
base_link_frame (string, default: base_link)
  • Name to use to publish base_link tf.
bumpers_frame (string, default: bumpers)
  • Name to use to publish tf associated with bumper sensor data.
sonar_frame (string, default: sonar)
  • Name to use to publish tf associate with sonar sensor data.

Examples

Wiki: ROSARIA (last edited 2018-08-09 13:38:50 by ReedHedges)