rosaria/Legacy/Aria/include/ArCommands.h

173 lines
10 KiB
C
Raw Permalink Normal View History

2021-12-16 15:07:59 +01:00
/*
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