rpos::core::Action Class
Header File
rpos/core/action.h
Applies to
- Slamware
Methods
/**
* Get the current action working status. Refer to ActionStatus for details.
*/
ActionStatus getStatus();
/**
* Cancel the action to let it stop working.
*/
void cancel();
/**
* Wait the action to stop (ether finish working, been cancelled or stopped by some error). Returns the action execution result via the ActionStatus Enum.
*/
ActionStatus waitUntilDone();
/**
* Check whether the current Action is an empty action. If the current action is empty, it means the SLAMWARE system is in idle state.
*/
bool isEmpty();
/**
* Retrieves the ActionID of the action.
*/
rpos::core::ActionID getActionId();
/**
* Retrieves the detailed error description text message once the Action::getStatus() method returns ActionStatusError.
*/
std::string Action::getReason();
Reason Text | Available Actions | Descriptions |
---|---|---|
"failed" |
all actions | the action just fails |
"aborted" |
all actions | the action has been aborted (been cancelled or aborted by a new action ) |
"unreachable" |
actions returned by moveTo() | there is no valid path to the destination point |
"blocked[X]" e.g. "blocked[lidar;contact]" |
actions returned by moveTo() with MoveOptionFlagKeyPoints set | action failed due to there exists obstacles in front of the robot when following virtual tracks. The X can be any combination of the following items: "lidar" : obstacle is detected by LIDAR(s) "wall" : obstacle is a virtual wall "contact" : obstacle is detected by bump sensors "depth_camera" : obstacle is detected by depth camera(s) "sonar" : obstacle is detected by ultrasonic sensor(s). If more than one above items should be included in the X, a semi-colons (;) symbol is used to join these items. |
/**
* cast a rpos::core::Action to its child class object
*/
template<class ActionT> ActionT cast()
Example
rpos::core::Action someAction = robotPlatform.startSomeAction();
rpos::actions::MoveAction moveAction = someAction.cast<rpos::actions::MoveAction>();