#include <ArActionJoydrive.h>
Inheritance diagram for ArActionJoydrive:
Public Member Functions | |
ArActionJoydrive (const char *name="joydrive", double transVelMax=400, double turnAmountMax=15, bool stopIfNoButtonPressed=true, bool useOSCalForJoystick=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). | |
ArJoyHandler * | getJoyHandler (void) |
Gets the joyHandler. | |
bool | getStopIfNoButtonPressed (void) |
Get if we'll stop if no button is pressed, otherwise just do nothing. | |
bool | getUseOSCal (void) |
Gets whether OSCalibration is being used for the joystick or not. | |
bool | joystickInited (void) |
Whether the joystick is initalized or not. | |
void | setSpeeds (double transVelMax, double turnAmountMax) |
Set Speeds. | |
void | setStopIfNoButtonPressed (bool stopIfNoButtonPressed) |
Set if we'll stop if no button is pressed, otherwise just do nothing. | |
void | setThrottleParams (double lowSpeed, double highSpeed) |
Sets the params on the throttle (throttle unused unless you call this). | |
void | setUseOSCal (bool useOSCal) |
Sets whether to use OSCalibration the joystick or not. | |
virtual | ~ArActionJoydrive () |
Destructor. | |
Protected Attributes | |
ArActionDesired | myDesired |
double | myHighThrottle |
ArJoyHandler * | myJoyHandler |
double | myLowThrottle |
bool | myPreviousUseOSCal |
bool | myStopIfNoButtonPressed |
double | myTransVelMax |
double | myTurnAmountMax |
bool | myUseOSCal |
bool | myUseThrottle |
This class creates its own ArJoyHandler to get input from the joystick. Then it will scale the speed between 0 and the given max for velocity and turning, up and down on the joystick go forwards/backwards while right and left go right and left. You must press in one of the two joystick buttons for the class to pay attention to the joystick.
NOTE: The joystick does not save calibration information, so you must calibrate the joystick before each time you use it. To do this, press the button for at least a half a second while the joystick is in the middle. Then let go of the button and hold the joystick in the upper left for at least a half second and then in the lower right corner for at least a half second.
Definition at line 50 of file ArActionJoydrive.h.
|
Constructor. This action is for driving around the robot with a joystick, you must hold in a button on the joystick and then lean the joytsick over to have it drive. You may need to calibrate the joystick for it to work right, for details about this see ArJoyHandler. If the Aria static class already has a joyhandler this class will use that otherwise it'll make and initialize one and use that (setting it in the Aria class)
Definition at line 59 of file ArActionJoydrive.cpp. References ArJoyHandler::init(), Aria::setJoyHandler(), ArAction::setNextArgument(), and setSpeeds(). |
|
Fires the action, returning what the action wants to do.
Implements ArAction. Definition at line 142 of file ArActionJoydrive.cpp. References ArJoyHandler::getAxis(), ArJoyHandler::getButton(), ArJoyHandler::getDoubles(), ArJoyHandler::haveJoystick(), ArJoyHandler::haveZAxis(), ArActionDesired::reset(), ArActionDesired::setDeltaHeading(), ArJoyHandler::setUseOSCal(), and ArActionDesired::setVel(). |
|
Gets whether OSCalibration is being used for the joystick or not.
Definition at line 123 of file ArActionJoydrive.cpp. |
|
Sets whether to use OSCalibration the joystick or not.
Definition at line 113 of file ArActionJoydrive.cpp. References ArJoyHandler::setUseOSCal(). |