1. Introduction
You can access ARIA at different levels, from simply sending commands to the robot through ArRobot to development of higher-level intelligent behavior using Actions. (For a description of how to integrate parts of ARIA with your other code, see Piecemeal Use of ARIA.)
An auxiliary library called ArNetworking is also included with ARIA. ArNetworking provides an easy to use, extensible framework for communication with remote programs over a network, such as MobileEyes.
Click a class or function link to view its details. A selection of the most important ARIA classes is listed in Important Classes in the menu to the left, as well as Optional Classes, Device Interface Classes, Utility Classes and Predefined ArAction Classes.
Important Classes:
These classes are essential far all programs using Aria to control a robot. More...
class | ArArgumentBuilder |
|
This class is to build arguments for things that require argc and argv. More... |
class | ArArgumentParser |
|
Parse(解析) and store program command-line arguments for use by other ARIA classes. More... |
class | ArFunctor |
|
An object which allows storing a generalized reference to a method with an object instance to call later (used for callback functions) More... 一种对象,它允许将一个广义引用存储到对象实例之后调用的方法 |
class | Aria |
|
Contains global initialization, deinitialization and other global functions. More... |
class | ArLog |
|
Logging utility class. More... |
class | ArRangeDevice |
|
The base class for all sensing devices which return range information from the device (mounted on a robot) to an object in the environment. More... |
class | ArRobot |
|
Central class for communicating with and operating the robot. More... |
class | ArRobotConnector |
|
Connect to robot or simulator based on program command line parameters. More... |
class | ArSonarDevice |
|
Keep track of recent sonar readings from a robot as an ArRangeDevice. More... |
class | ArUtil |
|
Contains various utility functions, including cross-platform wrappers(封装) around common system functions. More... |
class | ArLaser |
|
ArRangeDevice interface specialized for laser rangefinder sensors; see ArRangeDevice for more data access methods. More... |
class | ArLaserConnector |
|
Create laser interface objects (for any kind of laser supported by ARIA) and connect to lasers based on parameters from robot parameter file and command-line arguments. More... |
2. Robot Communication
ArRobotConnector also parses some command line arguments if supplied, which can explicitly specify a remote hostname and/or port to connect with via TCP, or to specify an alternate local serial port to use for robot connection, as well as other options. If a program uses ArRobotConnector, running it with the "-help" command line argument will print a list of options.
3. Specifying Details about Robot and Device Connections
The device interface and connector classes (ArRobotConnector, ArLaserConnector, etc.) need information about what devices are connected and how they are connected, especially if they vary from their defaults.
This information is obtained from two sources: ARIA's parameter file(s) for the robot, and from program runtime arguments via ArArgumentParser (which reads default program argument values from /etc/Aria.args (on Linux) and the ARIAARGS environment variable (on both Linux and Windows), then reads current program arguments from the command line).
Furthermore, if you are connecting to a robot over a wireless TCP connection from an offboard computer rather than an onboard computer, you must provide a runtime command line argument giving the robot network name (and optionally port number).Arguments are provided to other ARIA classes by an ArArgumentParser object.
(1)All ARIA programs should create an ArArgumentParser, call ArArgumentParser::loadDefaultArguments() to load any arguments that appear in the /etc/Aria.args
file or ARIAARGS
environment variable, and provide that object to any class constructors that accept it.
(2)Once all such objects are created, you can call Aria::logOptions() to print out a summary of all relevant options
e.g. call Aria::logOptions(); and Aria::exit() if ArArgumentParser::checkHelpAndWarnUnparsed() returns true
, because the user gave the --help
option.
Finally, call Aria::parseArgs() to cause each of them to check the ArArgumentParser