ARIA Core Library
The ARIA C++ library is provided with all robots
ARIA provides an interface and framework for controlling and receiving data from all MobileRobots (ActivMedia) robot platforms, as well as many sensors and other accessory devices, all from a simple, single C++ library. ARIA includes utilities useful for writing robot control software as well as tools for writing cross-platform (Windows and Linux) code (such as network sockets and threads). ARIA is the foundation for all other MobileRobots software libraries, such as ArNetworking and ARNL.
- Full source code provided, under the GNU General Public License.
- Libraries provided for Linux and Windows. ARIA is portable C++, and can be recompiled for different compilers and platforms.
- Easy to use, single library, with minimal library dependencies (only standard system libraries) and uses standard development tools (GCC and Make on Linux, MS Visual C++ on Windows).
- Java interface included (via wrapper library and JNI)
- Python interface included (via wrapper library)
- Matlab interface included (for a subset of ARIA features)
- ROS interface available from ros.org
- Includes reference manual and example programs
- Optional high level "actions" framework combines multiple independent motion behaviors into unified robot motion state. Several predefined action components are provided including obstacle avoidance.
- All ARIA classes are either thread-safe or provide locking functions for thread-safe access.
ARIA provides interface and utilities for all built-in robot features, and many accessory devices, including: (as of ARIA 2.7.4):
- Robot velocity and position control (direct command or through multi-actions system); set parameters (speed limits, etc)
- Robot state (position, velocity battery level, etc.), type information (type, dimensions, sensor positions, etc.) and event callbacks
- built in Pioneer sonar
- SICK LMS-200, LMS-100, LMS-111, LMS-500, S-300, S-3000, and TiM laser rangefinders
- Hokuyo URG 04LX laser range finder (SCIP 1.0 and 2.0)
- Keyence SZ-16D laser rangefinder
- Canon VC-C, Sony, RVision, Axis and other pan/tilt/zoom control
- built in robot bumpers
- FLIR/DirectedPerceptions DPPTU pan-tilt unit
- All GPS receivers supporting the NMEA standard protocol (including MobileRobots-supplied Trimble AgGPS and Novatel)
- TCM2 compass
- PeopleBot IR sensors
- Pioneer gripper
- USB and robot joysticks
- Keyboard key handler
- Robot built-in general-purpose digital and analog I/O and auxilliary serial for user-added devices
- Additional digital I/O available on some onboard computers
- Communication with ACTS to receive positions of tracked objects
- Various legacy and discontinued MobileRobots devices (including Sony pan/tilt camera, AMPTU, Pioneer 2 arm, PB-9 IR, etc.)
- Interfaces for some other accessories (camera video images, robot arms, stereo cameras, speech synthesis and recognition, and more) are provided by separate libraries that can be used along with ARIA.
ARIA also includes many cross-platform utilities for network sockets, threading tools (threads and mutexes), callback functions and functors for decoupled and asynchronous programming, serial port communications, playing sounds, handling command-line arguments, stored program configuration, robot maps, 2d transforms, conversions to and from GPS datum coordinates, math routines, timekeeping and measurement, and miscellaneous OS functions.
ARIA programs will transparently run on any MobileRobots/ActivMedia robot platform or simulated robot in the MobileSim simulator without any recompilation or reconfiguration.
The ArNetworking library is included along with ARIA, and is provided with all robots
ArNetworking provides a simple extensible framework for client-server network programming. ArNetworking includes predefined services which provide remote access over a network to robot information and control, including user teleoperation, sensor data, graphical visualizations of robot and sensor data, a "wander" mode, user alerts (via pop-up dialog box or other UI), and sets of general-purpose data values and commands. ArNetworking also includes some tools to manage information about multiple robots, so they can coordinate or share information. Full source code is provided under the GNU GPL, as well as documentation, example servers, and Java, Python and Matlab interface libraries. Use ArNetworking for access by a remote user interface application, such as MobileEyes, or your own software, or both. Also, use ArNetworking for multi-robot communication and coordination or to communicate with other off-board software.
See Also Navigation Software Speech Synthesis
Packages and Libraries MobileEyes MobileSim