Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages | Examples

Robot Parameter Files

ARIA's robot parameter files contain information that can differ between different robot model types (e.g. "p3dx", "p3dx-sh", "p3at", "p3at-sh", "amigo", "amigo-sh", etc.), and between individual robots. This includes some physical dimensions, device connection settings, and protocol conversion factors. The parameter files are included with ARIA and are installed along with the rest of ARIA in the "params" subdirectory. These files always end with ".p".

The parameter files are read by ArRobot after it connects to the robot, and stored in the ArRobot and ArRobotParams classes (Use ArRobot::getRobotParams() to get a pointer to its ArRobotParams object.)

When ArRobot connects to a robot it receives strings identifying the robot model (the model's Pioneer "subtype" or "subclass") and an individual robot nickname. It uses these names to load parameter files. It first loads the parameter file that corresponds to the model subtype, e.g. "p3dx-sh.p" or "powerbot.p" and stores those parameters. A log message is printed indicating that it loaded parameters from that file. ARIA includes robot parameter files for all current robot types. If such a file cannot be found, but ARIA recognizes the robot subtype, it stores internal default constants as those parameter values, and prints a log message indicating this.

Next, if a file exists which corresponds to this particular robot's nickname (name.p), then it loads that file, which can override any settings provided in the robot type parameters or defaults.

An individual robot's nickname is stored in the robot firmware configuration, and may be changed using the firmware configuration tool. For example, if a robot uses the ARCOS firmware for the SH microcontroller, connect with ARCOScf and change the "Name" parameter, then save the new configuration. Each robot is assigned a unique name when assembled and configured by MobileRobots, but you may change it if you want to use your own names. However, if you change the name stored in the firmware configuration, you must rename its parameter files in any ARIA or ARNL/SONARNL/MOGS installation on all computers that connect to it as well.

In almost all circumstances, modifying the standard parameters for robot types is unneccesary; change your robot's name.p instead.

Device Parameters

The most common parameters that must be changed in name.p are parameters regarding how some of an individual robot's devices are connected to the robot or the onboard computer, if an individual robot has a unique configuration. When your robot was assembled and ARIA installed, MobileRobots generated an appropriate name.p file based on the robot's configuration. This file is also included on the software CD. If you reinstall the operating system and erase the disk, make a backup of this file. If you change any connections, or need to recreate a lost name.p file, however, you can edit name.p in the "params" subdirectory.

In addition to the parameter files, if a program is using ARIA's argument parsing and connector classes, then it can be executed with command-line arguments which also affect robot and device parameters (see Command Line Option Summary), and may override some of the device parameters given in the parameter file.

Laser Rangefinding Devices

For each laser rangefinder device, a "Laser parameters" section is added to the parameter file.

Section Laser parameters
LaserType lms2xx         ; type of laser
LaserPortType            ; type of port the laser is on
LaserPort COM3           ; port the laser is on
LaserAutoConnect false   ; if the laser connector should autoconnect this laser
                         ; or not
LaserFlipped false       ; if the laser is upside-down or not
LaserPowerControlled true ; if the power to the laser is controlled by serial
LaserMaxRange 0          ; Max range of the laser, 0 to use default (only use
                         ; if you want to shorten it from the default), mm
LaserX 21                ; x location of laser, mm
LaserY 0                 ; y location of laser, mm
LaserTh 0                ; rotation of laser, deg
LaserZ 0                 ; height of the laser off the ground, mm (0 means
                         ; unknown)
LaserIgnore              ; Readings within a degree of the listed degrees
                         ; (separated by a space) will be ignored
LaserStartDegrees        ; start degrees for the sensor (leave blank for
                         ; default, use this to constrain the range) (double)
LaserEndDegrees          ; start degrees for the sensor (leave blank for
                         ; default, use this to constrain the range) (double)
LaserDegreesChoice       ; degrees choice for the sensor (leave blank for
                         ; default, use this to constrain the range)
LaserIncrement           ; Increment for the sensor (leave blank for default,
                         ; use this to have a custom increment) (double)
LaserIncrementChoice     ; Increment for the sensor (leave blank for default,
                         ; use this to have a larger increment)
LaserUnitsChoice         ; Units for the sensor (leave blank for default, use
                         ; this to have a larger units)
LaserReflectorBitsChoice  ; ReflectorBits for the sensor (leave blank for
                         ; default, use this to have a larger units)
LaserStartingBaudChoice  ; StartingBaud for the sensor (leave blank for
                         ; default, use this to have a larger StartingBaud)
LaserAutoBaudChoice      ; AutoBaud for the sensor (leave blank for default,
                         ; use this to have a larger units)

The first and default laser is in the "Laser parameters" section. The second laser is in "Laser 2 parameters", the third in "Laser 3 parameters", and so on.

LaserType indicates the kind of laser device present: lms2xx for a SICK LMS 200 and compatible, or urg for an Hokoyu URG or UTM. Other types will be added as support is added to ARIA.

LaserPortType and LaserPort indicate how the laser is connected to the onboard computer. LaserPortType currently is either blank or has the value serial for a serial port. LaserPort identifies which port of the given type to use: COM1, COM2, COM3, etc. for the first, second, third, etc. serial ports (use the "COM" notation both on Linux and Windows). As support for other connection types such as USB and TCP are added in the future new types will be possible.

LaserAutoConnect indicates whether an ArLaserConnector object should automatically connect to the laser. If false, then a program must specifically request that the connector initiate the connection; however most programs do this if they expect to use a laser.

LaserFlipped, LaserX, LaserY, LaserTh, and LaserZ indicate the physical positioning of the laser on the robot. X, Y, Z and Th give its position relative to the center of the robot. If LaserFlipped is true then the order of the readings supplied by ArRangeDevice objects is reversed, so the order is correct for a laser mounted upside-down from normal.

You can list a set of degree values for which laser readings should be ignored after LaserIgnore. Use this if parts of the robot or mounted equipment obscure the laser's field of detection and cause undesirable readings.

The other parameters affect the configuration of the laser itself, and their meaning may depend on the type of laser. You may leave them empty (supply no value) to use defaults for that type.

GPS Devices

Section GPS parameters
GPSPossessed false       ; if the robot has a gps
GPSPX -160               ; x location of gps receiver antenna on robot, mm
GPSPY 120                ; y location of gps receiver antenna on robot, mm
GPSType standard         ; type of gps receiver (trimble, novatel, standard)
GPSPort COM2             ; port the gps is on
GPSBaud 9600             ; gps baud rate (9600, 19200, 38400, etc.)

Other Accessory Device Flags and Options

The "Accessories" section contains advisory flags indicating whether the robot has certain optional accessories. These are reflected in ArRobot and programs can check them to determine the robot's capabilities, but ARIA's internal default behavior is generally not affected by them:

Section Accessories the robot has
TableSensingIR false     ; if robot has upwards facing table sensing IR
NewTableSensingIR false  ; if table sensing IR are sent in IO packet
FrontBumpers false       ; if robot has a front bump ring
NumFrontBumpers 5        ; number of front bumpers on the robot
RearBumpers false        ; if the robot has a rear bump ring
NumRearBumpers 5         ; number of rear bumpers on the robot

Generated on Thu Jan 7 10:34:44 2010 for Aria by  doxygen 1.4.2