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 accessory devices (other devices have separate interface libraries), 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 than GNU General Public License.
- Libraries (both static and dynamic) provided for Linux (GCC 3.4 or 4.x) and for Windows (MS Visual C++ 2003 and 2008). ARIA is portable C++, and can be recompiled for different compilers and platforms.
- Java interface included (via wrapper library and JNI)
- Python interface included (via wrapper library)
- 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, and S-3000 laser rangefinders
- Hokuyu URG 04LX laser range finder (SCIP 1.0 and 2.0)
- Keyence SZ-16D laser rangefinder
- Canon VC-C Pan/Tilt/Zoom camera
- RVision Pan/Tilt/Zoom camera
- built in robot bumpers
- DirectedPerceptions 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
- 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 (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), 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.
ArNetworking Library
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 and Python 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 Recognition and Synthesis Packages and Libraries
MobileEyes MobileSim