rpos::core::Action类
头文件
rpos/core/action.h
适用于
- Slamware
构造器
Action(const Action&) 拷贝构造函数
运算符
Action& operator=(const Action&) 赋值运算符
方法
ActionStatus getStatus()获得当前动作状态,返回值详见ActionStatus枚举
double getProgress()
未实现
void cancel()
取消当前动作
ActionStatus waitUntilDone()
等待动作完成或出错,返回值为动作结束时的动作状态,详见ActionStatus枚举
bool isEmpty();
判断Action是否为空
rpos::core::ActionID getActionId();
获取Action ID。
std::string Action::getReason(); 在Action::getStatus()返回状态为 ActionStatusError的情况下,可以调用getReason查询具体失败原因,该接口返回一个字符串。
对于所有action返回: “failed” 表示action失败
“aborted” 表示action被打断(主动调用cancel或者在action没结束的情况下启动新的action)
对于moveTo接口返回的action: “unreachable”表示目标点不可达(搜索路径失败)
对于moveTo接口加上MoveOptionFlagKeyPoints这个flag,也就是虚拟轨道的moveto: “blocked[lidar;wall;contact;depth_camera;sonar]” 表示在虚拟轨道导航的时候前方有障碍物导致失败,”[]”内的为具体原因,用”;”分隔,可以有一个或者多个,表示发现障碍物的传感器种类。
lidar:激光雷达;wall:虚拟墙;contact:碰撞传感器;depth_camera:深度摄像头;sonar:超声波
template
将rpos::core::Action的对象转换成子类的对象
示例
rpos::core::Action someAction = robotPlatform.startSomeAction();
rpos::actions::MoveAction moveAction = someAction.cast<rpos::actions::MoveAction>;