前置与后置条件理论
前置条件
例程:
//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;
}
};
有前置条件,直接跳过这个失败的节点,可以运行下一步。
后置条件
待更新。。。