前置与后置条件理论
前置条件
例程:
//hp_get叶节点class hp_get : public BT::SyncActionNode{public:hp_get(const std::string& name, const BT::NodeConfig& config) :BT::SyncActionNode(name, config){}// 给该节点申明端口static BT::PortsList providedPorts(){return { //端口设置BT::InputPort<std::string>("GetHP"),BT::InputPort<bool>("post_bool"),};}BT::NodeStatus tick() override{//实现功能std::string GetHP_value;getInput("GetHP",GetHP_value);std::cout<<"get_hp机器人的生命值:"<<GetHP_value<<std::endl;// std::cout<<std::endl;std::cout<<std::endl;bool x;getInput("post_bool",x);return BT::NodeStatus::FAILURE;}};
有前置条件,直接跳过这个失败的节点,可以运行下一步。
后置条件
待更新。。。