【ROS】郭老二博文之:ROS目录
1、简述
前面的例子中,使用过同步节点 SyncActionNode,当调用到该节点时,成功返回SUCCESS,失败返回FAILURE,并且线程会等待该节点执行完毕。
如果需要异步操作,比如节点执行需要很长时间,不能立刻返回结果,可以先去执行其它任务,等该节点执行完毕再返回。
可以继承 StatefulActionNode 节点,来实现异步操作。StatefulActionNode的派生类必须重写以下虚拟方法,而不再是tick():
- NodeStatus onStart():当 Node 处于 IDLE(空闲) 状态时调用。它可能立即成功SUCCESS或失败FAILURE,或者返回 RUNNING。在 RUNNING 情况下,onRunning 方法将在下次收到 tick 时执行。
- NodeStatus onRunning():当节点处于 RUNNING 状态时调用。返回新的状态。
- void onHalted():当此节点