173 lines
10 KiB
C
173 lines
10 KiB
C
|
/*
|
||
|
Adept MobileRobots Robotics Interface for Applications (ARIA)
|
||
|
Copyright (C) 2004, 2005 ActivMedia Robotics LLC
|
||
|
Copyright (C) 2006, 2007, 2008, 2009, 2010 MobileRobots Inc.
|
||
|
Copyright (C) 2011, 2012, 2013 Adept Technology
|
||
|
|
||
|
This program is free software; you can redistribute it and/or modify
|
||
|
it under the terms of the GNU General Public License as published by
|
||
|
the Free Software Foundation; either version 2 of the License, or
|
||
|
(at your option) any later version.
|
||
|
|
||
|
This program is distributed in the hope that it will be useful,
|
||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
GNU General Public License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU General Public License
|
||
|
along with this program; if not, write to the Free Software
|
||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||
|
|
||
|
If you wish to redistribute ARIA under different terms, contact
|
||
|
Adept MobileRobots for information about a commercial version of ARIA at
|
||
|
robots@mobilerobots.com or
|
||
|
Adept MobileRobots, 10 Columbia Drive, Amherst, NH 03031; +1-603-881-7960
|
||
|
*/
|
||
|
#ifndef ARCOMMANDS_H
|
||
|
#define ARCOMMANDS_H
|
||
|
|
||
|
/// A class containing names for most robot microcontroller system commands
|
||
|
/**
|
||
|
A class with an enum of the commands that can be sent to the robot, see the
|
||
|
robot operations manual for more detailed descriptions.
|
||
|
@ingroup OptionalClasses
|
||
|
*/
|
||
|
class ArCommands
|
||
|
{
|
||
|
public:
|
||
|
enum Commands {
|
||
|
PULSE = 0, ///< none, keep alive command, so watchdog doesn't trigger
|
||
|
OPEN = 1, ///< none, sent after connection to initiate connection
|
||
|
CLOSE = 2, ///< none, sent to close the connection to the robot
|
||
|
POLLING = 3, ///< string, string that sets sonar polling sequence
|
||
|
ENABLE = 4, ///< int, enable (1) or disable (0) motors
|
||
|
SETA = 5, ///< int, sets translational accel (+) or decel (-) (mm/sec/sec)
|
||
|
SETV = 6, ///< int, sets maximum velocity (mm/sec)
|
||
|
SETO = 7, ///< int, resets robots origin back to 0, 0, 0
|
||
|
MOVE = 8, ///< int, translational move (mm)
|
||
|
ROTATE = 9, ///< int, set rotational velocity, duplicate of RVEL (deg/sec)
|
||
|
SETRV = 10, ///< int, sets the maximum rotational velocity (deg/sec)
|
||
|
VEL = 11, ///< int, set the translational velocity (mm/sec)
|
||
|
HEAD = 12, ///< int, turn to absolute heading 0-359 (degrees)
|
||
|
DHEAD = 13, ///< int, turn relative to current heading (degrees)
|
||
|
//DROTATE = 14, does not really exist
|
||
|
SAY = 15, /**< string, makes the robot beep.
|
||
|
up to 20 pairs of duration (20 ms incrs) and tones (halfcycle) */
|
||
|
JOYINFO = 17, // int, requests joystick packet, 0 to stop, 1 for 1, 2 for continuous
|
||
|
CONFIG = 18, ///< int, request configuration packet
|
||
|
ENCODER = 19, ///< int, > 0 to request continous stream of packets, 0 to stop
|
||
|
SETRVDIR = 20, ///< int, Sets the rot vel max in each direction
|
||
|
RVEL = 21, ///< int, set rotational velocity (deg/sec)
|
||
|
DCHEAD = 22, ///< int, colbert relative heading setpoint (degrees)
|
||
|
SETRA = 23, ///< int, sets rotational accel(+) or decel(-) (deg/sec)
|
||
|
SONAR = 28, ///< int, enable (1) or disable (0) sonar
|
||
|
STOP = 29, ///< int, stops the robot
|
||
|
DIGOUT = 30, ///< int, sets the digout lines
|
||
|
//TIMER = 31, ... no clue about this one
|
||
|
VEL2 = 32, /**< int, independent wheel velocities,
|
||
|
first 8 bits = right, second 8 bits = left, multiplied by Vel2 divisor. See manual. */
|
||
|
GRIPPER = 33, ///< int, gripper server command, see gripper manual for detail
|
||
|
//KICK = 34, um...
|
||
|
ADSEL = 35, ///< int, select the port given as argument
|
||
|
GRIPPERVAL = 36, ///< p2 gripper server value, see gripper manual for details
|
||
|
GRIPPERPACREQUEST = 37, ///< p2 gripper packet request
|
||
|
IOREQUEST = 40, ///< request iopackets from p2os
|
||
|
PTUPOS = 41, ///< most-sig byte is port number, least-sig byte is pulse width
|
||
|
TTY2 = 42, ///< string, send string argument to serial dev connected to aux1
|
||
|
GETAUX = 43, ///< int, requests 1-200 bytes from aux1 serial channel, 0 flush
|
||
|
BUMPSTALL = 44, /**< int, stop and register a stall if front (1), rear (2),
|
||
|
or both (3) bump rings are triggered, Off (default) is 0 */
|
||
|
TCM2 = 45, ///< TCM2 module commands, see tcm2 manual for details
|
||
|
JOYDRIVE = 47, /**< Command to tell p2os to drive with the joystick
|
||
|
plugged into the robot */
|
||
|
MOVINGBLINK = 49, ///< int, 1 to blink lamp quickly before moving, 0 not to (for patrolbot)
|
||
|
HOSTBAUD = 50, ///< int, set baud rate for host port - 0=9600, 1=19200, 2=38400, 3=57600, 4=115200
|
||
|
AUX1BAUD = 51, ///< int, set baud rate for Aux1 - 0=9600, 1=19200, 2=38400, 3=57600, 4=115200
|
||
|
AUX2BAUD = 52, ///< int, set baud rate for Aux2 - 0=9600, 1=19200, 2=38400, 3=57600, 4=115200
|
||
|
ESTOP = 55, ///< none, emergency stop, overrides decel
|
||
|
ESTALL = 56, // ?
|
||
|
GYRO = 58, ///< int, set to 1 to enable gyro packets, 0 to disable
|
||
|
TTY4 = 60,
|
||
|
GETAUX3 = 61,
|
||
|
BATTERYINFO = 62, ///< int, requests battery info packets, 0 to stop, 1 for 1, 2 for continuous
|
||
|
TTY3 = 66,
|
||
|
GETAUX2 = 67,
|
||
|
BATTEST = 250,
|
||
|
|
||
|
// SRISIM specific:
|
||
|
LOADPARAM = 61, ///< @deprecated only supported by SRISim. Conflicts with GETAUX3
|
||
|
OLDSIM_LOADPARAM = 61, ///< @deprecated only supported by SRISim. Conflicts with GETAUX3
|
||
|
ENDSIM = 62, ///< @deprecated use SIM_EXIT
|
||
|
OLDSIM_EXIT = 62, ///< @deprecated use SIM_EXIT
|
||
|
LOADWORLD = 63, ///< @deprecated only supported by SRISim
|
||
|
OLDSIM_LOADWORLD = 63, ///< @deprecated only supported by SRISim
|
||
|
STEP = 64, ///< @deprecated only supported by SRISim
|
||
|
OLDSIM_STEP = 64, ///< @deprecated only supported by SRISim
|
||
|
|
||
|
// for calibrating the compass:
|
||
|
CALCOMP = 65, ///< int, commands for calibrating compass, see compass manual
|
||
|
|
||
|
// SRISIM specific:
|
||
|
// SETORIGINX and SETORIGINY overlap with TTY3 and GETAUX2 so they are disabled:
|
||
|
//SETSIMORIGINX = 66,
|
||
|
//SETSIMORIGINY = 67,
|
||
|
//OLDSIM_SETORIGINX = 66,
|
||
|
//OLDSIM_SETORIGINY = 67,
|
||
|
SETSIMORIGINTH = 68, ///< @deprecated use SIM_SET_POSE
|
||
|
OLDSIM_SETORIGINTH = 68, ///< @deprecated use SIM_SET_POSE
|
||
|
RESETSIMTOORIGIN = 69, ///< @deprecated use SIM_RESET
|
||
|
OLDSIM_RESETTOORIGIN = 69, ///< @deprecated use SIM_RESET
|
||
|
|
||
|
// AmigoBot-H8 specific:
|
||
|
SOUND = 90, ///< int, AmigoBot (old H8 model) specific, plays sound with given number
|
||
|
PLAYLIST = 91, /**< int, AmigoBot (old H8 model) specific, requests name of sound,
|
||
|
0 for all, otherwise for specific sound */
|
||
|
SOUNDTOG = 92, ///< int, AmigoBot (old H8 model) specific, enable(1) or diable(0) sound
|
||
|
|
||
|
// Power commands
|
||
|
POWER_PC = 95, ///< int, Powers on or off the PC (if the firwmare is set up to do this in its power settings)
|
||
|
POWER_LRF = 96, ///< int, Powers on or off the laser (if the firwmare is set up to do this in its power settings)
|
||
|
POWER_5V = 97, ///< int, Powers on or off the 5v accessories (if the firwmare is set up to do this in its power settings)
|
||
|
POWER_12V = 98, ///< int, Powers on or off the 12v accessories (if the firwmare is set up to do this in its power settings)
|
||
|
POWER_24V = 98, ///< int, Powers on or off the 24v accessories (if the firwmare is set up to do this in its power settings)
|
||
|
POWER_AUX_PC = 125, ///< int, Powers on or off the auxilliary PC (if the firwmare is set up to do this in its power settings)
|
||
|
POWER_TOUCHSCREEN = 126, ///< int, Powers on or off the touchscreen (if the firwmare is set up to do this in its power settings)
|
||
|
POWER_PTZ = 127, ///< int, Powers on or off the PTZ (if the firwmare is set up to do this in its power settings)
|
||
|
POWER_AUDIO = 128, ///< int, Powers on or off the audio (if the firwmare is set up to do this in its power settings)
|
||
|
POWER_LRF2 = 129, ///< int, Powers on or off the second laser (if the firwmare is set up to do this in its power settings)
|
||
|
|
||
|
// For SEEKUR or later lateral-capable robots
|
||
|
LATVEL = 110, ///< int, sets the lateral velocity (mm)
|
||
|
LATACCEL = 113, ///< int, sets the lateral acceleration (+, mm/sec2) or lateral deceleration (-, mm/sec2)
|
||
|
SETLATV = 0, /// set max. lat. vel. (not available yet)
|
||
|
|
||
|
// MTX commands
|
||
|
SRECORD = 210, /// < int, (for downloading MTX firmware) byte with 0 for wait, 1 for OK, -1 for ERROR (waiting might take 3-5 seconds
|
||
|
MARCDEBUG = 211, ///< for debug messages from MARC, possibly responses, possibly pushed... they are ascii strings that should be logged
|
||
|
WHEEL_LIGHT = 212, ///< For the wheel lights
|
||
|
ABSOLUTE_MAXES = 213, ///< To set the absolute maxes
|
||
|
|
||
|
SAFETY_STATE_INFO = 214, ///< int, request safety state info packets (0 == stop, 1 == send once, 2 == send continuous),
|
||
|
SAFETY_SET_STATE = 215, ///< 2 bytes, first byte which system, second byte for value
|
||
|
SAFETY_DISABLE_POWER_OFF_TIMER = 216, ///< int, 0 set off, 1 set on
|
||
|
|
||
|
|
||
|
// MobileSim specific:
|
||
|
SIM_SET_POSE = 224, ///< int4,int4,int4 Move robot to global pose in simulator (does not change odometry). Each value is a 4-byte integer.
|
||
|
SIM_RESET= 225, ///< none, Reset robot's state to original in simulator and reset odometry to 0,0,0.
|
||
|
SIM_LRF_ENABLE = 230, ///< int, 1 to begin sending packets of data from a simulated laser rangefinder (on the same socket connection), 2 to send extended-information laser packets (with reading flags), 0 to disable LRF
|
||
|
SIM_LRF_SET_FOV_START = 231, ///< int Set angle (degrees from center) at which the simulater laser takes its first reading (normally -90).
|
||
|
SIM_LRF_SET_FOV_END = 232, ///< int Set angle (degrees from center) at which the simulated laser takes its last reading (normally 90).
|
||
|
SIM_LRF_SET_RES = 233, ///< int Set the number of degrees between laser readings (in combination with FOV, determines the number of readings per sweep) (normally 1)
|
||
|
SIM_CTRL = 236, ///< int,..., Send a simulator meta-command (an operation on the simulator itself). The initial 2-byte integer argument selects the operation. See simulator documentation.
|
||
|
SIM_STAT = 237, ///< none, Request that the simulator reply with a SIMSTAT (0x62) packet. You must have a packet handler registered with ArRobot to receive its output. See simulator documentation.
|
||
|
SIM_MESSAGE = 238, ///< string, Display a log message in the simulator. Argument is a length-prefixed ASCII byte string.
|
||
|
SIM_EXIT = 239 ///< int, Exit the simulator. Argument is the exit code (use 0 for a "normal" exit).
|
||
|
};
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif // ARCOMMANDS_H
|
||
|
|
||
|
|