Example program demonstrating use of the Pioneer gripper.Shows how to control the Pioneer 2DOF gripper accessory. In addition to the arrow keys to teleoperate the robot, Use the following keyboard keys to control it: u Lift the gripper up d Lift the gripper down o Open the gripper c Close the gripper s Stop gripper movement.
- See also
- ArModeGripper (the gripper control mode used in the "demo" program)
#include "Aria.h"
class PrintGripStatus
{
public:
myGripper(gripper),
myPrintCB(this, &PrintGripStatus::printStatus)
{
}
{
}
void printStatus()
{
}
};
class GripperControlHandler
{
public:
myGripper(gripper),
myUpCB(this, &GripperControlHandler::liftUp),
myDownCB(this, &GripperControlHandler::liftDown),
myOpenCB(this, &GripperControlHandler::open),
myCloseCB(this, &GripperControlHandler::close),
myStopCB(this, &GripperControlHandler::stop)
{
}
void addKeyHandlers(
ArRobot *robot)
{
if(keyHandler == NULL)
{
}
}
void liftUp()
{
}
void liftDown()
{
}
void stop()
{
}
void close()
{
}
void open()
{
}
};
int main(int argc, char **argv)
{
argParser.loadDefaultArguments();
{
return 1;
}
if (!connector.connectRobot(&robot))
{
return 2;
}
gripper.logState();
{
return -1;
}
joydriveAction.setStopIfNoButtonPressed(false);
PrintGripStatus printStatus(&gripper);
GripperControlHandler gripControl(&gripper);
printStatus.addRobotTask(&robot);
gripControl.addKeyHandlers(&robot);
ArLog::log(
ArLog::Normal,
"You may now operate the robot with arrow keys or joystick. Operate the gripper with the u, d, o, c, and page up/page down keys.");
return 0;
}
Provides an interface to the Pioneer gripper device.
Definition: ArGripper.h:76
bool liftDown(void)
Lowers the lift to the bottom.
Definition: ArGripper.cpp:114
Page Up (not supported on Windows yet)
Definition: ArKeyHandler.h:103
There isn't a gripper.
Definition: ArGripper.h:137
Perform actions when keyboard keys are pressed.
Definition: ArKeyHandler.h:65
bool liftUp(void)
Raises the lift to the top.
Definition: ArGripper.cpp:102
static ArKeyHandler * getKeyHandler(void)
Gets a pointer to the global key handler, if one has been set with setKeyHandler()
Definition: Aria.cpp:630
Action to limit speed (and stop) based on whether the "table"-sensors see anything.
Definition: ArActionLimiterTableSensor.h:40
Use terse logging.
Definition: ArLog.h:61
Legacy connector for robot and laser.
Definition: ArSimpleConnector.h:51
Page Down (not supported on Windows yet)
Definition: ArKeyHandler.h:104
void enableMotors()
Enables the motors on the robot.
Definition: ArRobot.cpp:6521
static void setKeyHandler(ArKeyHandler *keyHandler)
Sets the key handler, so that other classes can find it using getKeyHandler()
Definition: Aria.cpp:624
void addRangeDevice(ArRangeDevice *device)
Adds a rangeDevice to the robot's list of them, and set the ArRangeDevice object's robot pointer to t...
Definition: ArRobot.cpp:5757
static void exit(int exitCode=0)
Shutdown all Aria processes/threads, call exit callbacks, and exit the program.
Definition: Aria.cpp:367
static void log(LogLevel level, const char *str,...)
Log a message, with formatting and variable number of arguments.
Definition: ArLog.cpp:93
void logState(void) const
logs the gripper state
Definition: ArGripper.cpp:406
bool addKeyHandler(int keyToHandle, ArFunctor *functor)
This adds a keyhandler, when the keyToHandle is hit, functor will fire.
Definition: ArKeyHandler.cpp:144
bool addUserTask(const char *name, int position, ArFunctor *functor, ArTaskState::State *state=NULL)
Adds a user task to the list of synchronous taskes.
Definition: ArRobot.cpp:3021
static void init(SigHandleMethod method=SIGHANDLE_THREAD, bool initSockets=true, bool sigHandleExitNotShutdown=true)
Initialize Aria global data struture and perform OS-specific initialization, including adding OS sign...
Definition: Aria.cpp:128
Central class for communicating with and operating the robot.
Definition: ArRobot.h:82
Parse and store program command-line arguments for use by other ARIA classes.
Definition: ArArgumentParser.h:64
static void logOptions(void)
Logs all the options for the program (Calls all the callbacks added with addLogOptionsCB())
Definition: Aria.cpp:794
bool gripClose(void)
Closes the gripper paddles.
Definition: ArGripper.cpp:78
Keep track of recent sonar readings from a robot as an ArRangeDevice.
Definition: ArSonarDevice.h:51
This action will use the joystick for input to drive the robot.
Definition: ArActionJoydrive.h:51
bool gripOpen(void)
Opens the gripper paddles.
Definition: ArGripper.cpp:66
bool addAction(ArAction *action, int priority)
Adds an action to the list with the given priority.
Definition: ArRobot.cpp:3278
static bool parseArgs(void)
Parses the arguments for the program (calls all the callbacks added with addParseArgsCB())
Definition: Aria.cpp:759
This action will use the keyboard arrow keys for input to drive the robot.
Definition: ArActionKeydrive.h:37
Use normal logging.
Definition: ArLog.h:62
Action to limit the backwards motion of the robot based on range sensor readings.
Definition: ArActionLimiterBackwards.h:40
void run(bool stopRunIfNotConnected, bool runNonThreaded=false)
Starts the instance to do processing in this thread.
Definition: ArRobot.cpp:255
bool gripperHalt(void)
Halts the lift and the gripper paddles.
Definition: ArGripper.cpp:162
void attachKeyHandler(ArKeyHandler *keyHandler, bool exitOnEscape=true, bool useExitNotShutdown=true)
Attachs a key handler.
Definition: ArRobot.cpp:6641
Action to limit the forwards motion of the robot based on range sensor readings.
Definition: ArActionLimiterForwards.h:39