#include <ArActionAvoidFront.h>
Inheritance diagram for ArActionAvoidFront:
Public Member Functions | |
ArActionAvoidFront (const char *name="avoid front obstacles", double obstacleDistance=450, double avoidVelocity=200, double turnAmount=15, bool useTableIRIfAvail=true) | |
Constructor. | |
virtual ArActionDesired * | fire (ArActionDesired currentDesired) |
Fires the action, returning what the action wants to do. | |
virtual ArActionDesired * | getDesired (void) |
Gets what this action wants to do (for display purposes). | |
virtual | ~ArActionAvoidFront () |
Destructor. | |
Protected Attributes | |
double | myAvoidVel |
ArFunctorC< ArActionAvoidFront > | myConnectCB |
ArActionDesired | myDesired |
double | myObsDist |
ArSectors | myQuadrants |
double | myTurnAmount |
double | myTurnAmountParam |
int | myTurning |
bool | myUseTableIRIfAvail |
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.
Definition at line 50 of file ArActionAvoidFront.h.
|
Constructor.
Definition at line 45 of file ArActionAvoidFront.cpp. References ArAction::setNextArgument(). |
|
Fires the action, returning what the action wants to do.
Implements ArAction. Definition at line 76 of file ArActionAvoidFront.cpp. References ArRobot::checkRangeDevicesCurrentPolar(), ArSectors::clear(), ArSectors::didAll(), ArActionDesired::getDeltaHeadingStrength(), ArRobot::getRobotRadius(), ArRobot::getTh(), ArRobot::hasTableSensingIR(), ArRobot::isLeftTableSensingIRTriggered(), ArRobot::isRightTableSensingIRTriggered(), ArActionDesired::reset(), ArActionDesired::setDeltaHeading(), ArActionDesired::setVel(), and ArSectors::update(). |