Aria
2.8.0
|
This action does obstacle avoidance, controlling both trans and rot. More...
#include <ArActionAvoidFront.h>
Inherits ArAction.
Public Member Functions | |
ArActionAvoidFront (const char *name="avoid front obstacles", double obstacleDistance=450, double avoidVelocity=200, double turnAmount=15, bool useTableIRIfAvail=true) | |
Constructor. More... | |
virtual ArActionDesired * | fire (ArActionDesired currentDesired) |
virtual ArActionDesired * | getDesired (void) |
virtual const ArActionDesired * | getDesired (void) const |
virtual | ~ArActionAvoidFront () |
Destructor. | |
Public Member Functions inherited from ArAction | |
virtual void | activate (void) |
Activate the action. | |
ArAction (const char *name, const char *description="") | |
Constructor. | |
virtual void | deactivate (void) |
Deactivate the action. | |
virtual const ArArg * | getArg (int number) const |
Gets the numbered argument. More... | |
virtual ArArg * | getArg (int number) |
Gets the numbered argument. | |
virtual const char * | getDescription (void) const |
Gets the long description of the action. | |
virtual const char * | getName (void) const |
Gets the name of the action. | |
virtual int | getNumArgs (void) const |
Find the number of arguments this action takes. | |
ArRobot * | getRobot () const |
Get the robot we are controlling, which was set by setRobot() | |
virtual bool | isActive (void) const |
Returns whether the action is active or not. | |
virtual void | log (bool verbose=true) const |
Log information about this action using ArLog. | |
virtual void | setRobot (ArRobot *robot) |
Sets the robot this action is driving. More... | |
virtual | ~ArAction () |
Desructor. | |
Protected Attributes | |
double | myAvoidVel |
ArFunctorC< ArActionAvoidFront > | myConnectCB |
ArActionDesired | myDesired |
double | myObsDist |
ArSectors | myQuadrants |
double | myTurnAmount |
double | myTurnAmountParam |
int | myTurning |
bool | myUseTableIRIfAvail |
Protected Attributes inherited from ArAction | |
std::map< int, ArArg > | myArgumentMap |
std::string | myDescription |
bool | myIsActive |
std::string | myName |
int | myNumArgs |
ArRobot * | myRobot |
The robot we are controlling, set by the action resolver using setRobot() | |
Additional Inherited Members | |
Static Public Member Functions inherited from ArAction | |
static bool | getDefaultActivationState (void) |
Gets the default activation state for all ArActions. | |
static void | setDefaultActivationState (bool defaultActivationState) |
Sets the default activation state for all ArActions. | |
Protected Member Functions inherited from ArAction | |
void | setNextArgument (ArArg const &arg) |
Sets the argument type for the next argument (must only be used in a constructor!) | |
Static Protected Attributes inherited from ArAction | |
static bool | ourDefaultActivationState = true |
This action does obstacle avoidance, controlling both trans and rot.
This action uses whatever available range device have been added to the robot to avoid obstacles. See the ArActionAvoidFront constructor documentation to see the parameters it takes.
Also note that this action does something most others don't, which is to check for a specific piece of hardware. This is the tableSensingIR. If this is set up in the parameters for the robot, it will use DigIn0 and DigIn1, where the tableSensingIRs are connected. Note that if you make useTableIRIfAvail false in the constructor it'll ignore these. Whether the action thinks the robot has them or not depends on the value of tableSensingIR in the parameter file for that robot.
ArActionAvoidFront::ArActionAvoidFront | ( | const char * | name = "avoid front obstacles" , |
double | obstacleDistance = 450 , |
||
double | avoidVelocity = 200 , |
||
double | turnAmount = 15 , |
||
bool | useTableIRIfAvail = true |
||
) |
Constructor.
name | the name of the action |
obstacleDistance | distance at which to turn. (mm) |
avoidVelocity | Speed at which to go while avoiding an obstacle. (mm/sec) |
turnAmount | Degrees to turn relative to current heading while avoiding obstacle (deg) |
useTableIRIfAvail | Whether to use the table sensing IR if they are available |