Class SimpleBTBuilder

Inheritance Relationships

Base Type

Class Documentation

class SimpleBTBuilder : public plansys2::BTBuilder

Public Functions

SimpleBTBuilder()
virtual void initialize(const std::string &bt_action_1 = "", const std::string &bt_action_2 = "", int precision = 3)
virtual std::string get_tree(const plansys2_msgs::msg::Plan &current_plan)
inline virtual Graph::Ptr get_graph()
inline virtual bool propagate(Graph::Ptr)
virtual std::string get_dotgraph(std::shared_ptr<std::map<std::string, ActionExecutionInfo>> action_map, bool enable_legend = false, bool enable_print_graph = false)

Protected Functions

ActionGraph::Ptr get_graph(const plansys2_msgs::msg::Plan &current_plan)
std::vector<ActionStamped> get_plan_actions(const plansys2_msgs::msg::Plan &plan)
void prune_backwards(ActionNode::Ptr new_node, ActionNode::Ptr node_satisfy)
void prune_forward(ActionNode::Ptr current, std::list<ActionNode::Ptr> &used_nodes)
void get_state(const ActionNode::Ptr &node, std::list<ActionNode::Ptr> &used_nodes, std::vector<plansys2::Predicate> &predicates, std::vector<plansys2::Function> &functions) const
bool is_action_executable(const ActionStamped &action, std::vector<plansys2::Predicate> &predicates, std::vector<plansys2::Function> &functions) const
std::list<ActionNode::Ptr> get_roots(std::vector<plansys2::ActionStamped> &action_sequence, std::vector<plansys2::Predicate> &predicates, std::vector<plansys2::Function> &functions, int &node_counter)
ActionNode::Ptr get_node_satisfy(const plansys2_msgs::msg::Tree &requirement, const ActionGraph::Ptr &graph, const ActionNode::Ptr &current)
ActionNode::Ptr get_node_satisfy(const plansys2_msgs::msg::Tree &requirement, const ActionNode::Ptr &node, const ActionNode::Ptr &current)
std::list<ActionNode::Ptr> get_node_contradict(const ActionGraph::Ptr &graph, const ActionNode::Ptr &current)
void get_node_contradict(const ActionNode::Ptr &node, const ActionNode::Ptr &current, std::list<ActionNode::Ptr> &parents)
void remove_existing_requirements(std::vector<plansys2_msgs::msg::Tree> &requirements, std::vector<plansys2::Predicate> &predicates, std::vector<plansys2::Function> &functions) const
bool is_parallelizable(const plansys2::ActionStamped &action, const std::vector<plansys2::Predicate> &predicates, const std::vector<plansys2::Function> &functions, const std::list<ActionNode::Ptr> &ret) const
std::string get_flow_tree(ActionNode::Ptr node, std::list<std::string> &used_nodes, int level = 0)
void get_flow_dotgraph(ActionNode::Ptr node, std::set<std::string> &edges)
std::string get_node_dotgraph(ActionNode::Ptr node, std::shared_ptr<std::map<std::string, ActionExecutionInfo>> action_map, int level = 0)
ActionExecutor::Status get_action_status(ActionStamped action, std::shared_ptr<std::map<std::string, ActionExecutionInfo>> action_map)
void addDotGraphLegend(std::stringstream &ss, int tab_level, int level_counter, int node_counter)
std::string t(int level)
std::string execution_block(const ActionNode::Ptr &node, int l)
void print_node(const ActionNode::Ptr &node, int level, std::set<ActionNode::Ptr> &used_nodes) const
void print_graph(const plansys2::ActionGraph::Ptr &graph) const
void print_node_csv(const ActionNode::Ptr &node, uint32_t root_num) const
void print_graph_csv(const plansys2::ActionGraph::Ptr &graph) const
void get_node_tabular(const plansys2::ActionNode::Ptr &node, uint32_t root_num, std::vector<std::tuple<uint32_t, uint32_t, uint32_t, std::string>> &graph) const
std::vector<std::tuple<uint32_t, uint32_t, uint32_t, std::string>> get_graph_tabular(const plansys2::ActionGraph::Ptr &graph) const

Protected Attributes

std::shared_ptr<plansys2::DomainExpertClient> domain_client_
std::shared_ptr<plansys2::ProblemExpertClient> problem_client_
ActionGraph::Ptr graph_
std::string bt_
std::string bt_action_