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

ArActionAvoidFront Class Reference

This action does obstacle avoidance, controlling both trans and rot. More...

#include <ArActionAvoidFront.h>

Inheritance diagram for ArActionAvoidFront:

ArAction List of all members.

Public Member Functions

 ArActionAvoidFront (const char *name="avoid front obstacles", double obstacleDistance=450, double avoidVelocity=200, double turnAmount=15, bool useTableIRIfAvail=true)
 Constructor.
virtual ArActionDesiredfire (ArActionDesired currentDesired)
 Fires the action, returning what the action wants to do.
virtual ArActionDesiredgetDesired (void)
 Gets what this action wants to do (for display purposes).
virtual ~ArActionAvoidFront ()
 Destructor.

Protected Attributes

double myAvoidVel
ArFunctorC< ArActionAvoidFrontmyConnectCB
ArActionDesired myDesired
double myObsDist
ArSectors myQuadrants
double myTurnAmount
double myTurnAmountParam
int myTurning
bool myUseTableIRIfAvail

Detailed Description

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.

Definition at line 50 of file ArActionAvoidFront.h.


Constructor & Destructor Documentation

ArActionAvoidFront::ArActionAvoidFront const char *  name = "avoid front obstacles",
double  obstacleDistance = 450,
double  avoidVelocity = 200,
double  turnAmount = 15,
bool  useTableIRIfAvail = true
 

Constructor.

Parameters:
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

Definition at line 45 of file ArActionAvoidFront.cpp.

References ArAction::setNextArgument().


Member Function Documentation

ArActionDesired * ArActionAvoidFront::fire ArActionDesired  currentDesired  )  [virtual]
 

Fires the action, returning what the action wants to do.

Parameters:
currentDesired this is what the current resolver has for its desired, this is SOLELY for the purpose of giving information to the action
Returns:
pointer to what this action wants to do, NULL if it wants to do nothing

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().


The documentation for this class was generated from the following files:
Generated on Wed Oct 19 12:56:39 2005 for Aria by  doxygen 1.4.0