rpos::core::Action类

头文件

rpos/core/action.h

构造器

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 ActionT cast()
将rpos::core::Action的对象转换成子类的对象

示例

rpos::core::Action someAction = robotPlatform.startSomeAction();
rpos::actions::MoveAction moveAction = someAction.cast<rpos::actions::MoveAction>;