15 #ifndef BEHAVIOR_TREE_PLUGIN__ACTION_NODE_HPP_
16 #define BEHAVIOR_TREE_PLUGIN__ACTION_NODE_HPP_
18 #include <behaviortree_cpp_v3/action_node.h>
34 #include <traffic_simulator_msgs/msg/behavior_parameter.hpp>
35 #include <traffic_simulator_msgs/msg/obstacle.hpp>
36 #include <traffic_simulator_msgs/msg/waypoints_array.hpp>
37 #include <unordered_map>
42 BT::PortsList
operator+(
const BT::PortsList & ports_0,
const BT::PortsList & ports_1);
54 -> std::optional<std::string>;
58 -> std::optional<double>;
74 void halt() override final { setStatus(BT::NodeStatus::IDLE); }
80 BT::InputPort<double>(
"current_time"),
81 BT::InputPort<double>(
"matching_distance_for_lanelet_pose_calculation"),
82 BT::InputPort<double>(
"step_time"),
83 BT::InputPort<EntityStatusDict>(
"other_entity_status"),
84 BT::InputPort<lanelet::Ids>(
"route_lanelets"),
85 BT::InputPort<std::optional<double>>(
"target_speed"),
86 BT::InputPort<std::shared_ptr<hdmap_utils::HdMapUtils>>(
"hdmap_utils"),
87 BT::InputPort<std::shared_ptr<traffic_simulator::CanonicalizedEntityStatus>>(
"canonicalized_entity_status"),
88 BT::InputPort<std::shared_ptr<traffic_simulator::TrafficLightsBase>>(
"traffic_lights"),
89 BT::InputPort<traffic_simulator::behavior::Request>(
"request"),
90 BT::InputPort<std::shared_ptr<EuclideanDistancesMap>>(
"euclidean_distances_map"),
91 BT::InputPort<traffic_simulator_msgs::msg::BehaviorParameter>(
"behavior_parameter"),
92 BT::OutputPort<std::optional<traffic_simulator_msgs::msg::Obstacle>>(
"obstacle"),
93 BT::OutputPort<traffic_simulator_msgs::msg::WaypointsArray>(
"waypoints"),
94 BT::OutputPort<traffic_simulator::behavior::Request>(
"request"),
105 const double local_target_speed,
const traffic_simulator_msgs::msg::DynamicConstraints &)
const
108 const double local_target_speed,
const traffic_simulator_msgs::msg::DynamicConstraints &)
const
130 auto getDistanceToTargetEntityOnCrosswalk(
133 auto getConflictingEntityStatus(
const lanelet::Ids & following_lanelets)
const
134 -> std::optional<traffic_simulator::CanonicalizedEntityStatus>;
135 auto getConflictingEntityStatusOnCrossWalk(
const lanelet::Ids &
route_lanelets)
const
136 -> std::vector<traffic_simulator::CanonicalizedEntityStatus>;
137 auto getConflictingEntityStatusOnLane(
const lanelet::Ids &
route_lanelets)
const
138 -> std::vector<traffic_simulator::CanonicalizedEntityStatus>;
139 auto isOtherEntityAtConsideredAltitude(
Definition: action_node.hpp:45
EntityStatusDict other_entity_status
Definition: action_node.hpp:120
auto getDistanceToTrafficLightStopLine(const lanelet::Ids &route_lanelets, const math::geometry::CatmullRomSplineInterface &spline) const -> std::optional< double >
Definition: action_node.cpp:212
void halt() override final
Definition: action_node.hpp:74
~ActionNode() override=default
std::shared_ptr< EuclideanDistancesMap > euclidean_distances_map
Definition: action_node.hpp:122
lanelet::Ids route_lanelets
Definition: action_node.hpp:121
std::shared_ptr< traffic_simulator::CanonicalizedEntityStatus > canonicalized_entity_status
Definition: action_node.hpp:115
auto stopEntity() const -> void
Definition: action_node.cpp:109
auto calculateStopDistance(const traffic_simulator_msgs::msg::DynamicConstraints &) const -> double
Definition: action_node.cpp:607
traffic_simulator_msgs::msg::BehaviorParameter behavior_parameter
Definition: action_node.hpp:123
auto calculateUpdatedEntityStatus(const double local_target_speed, const traffic_simulator_msgs::msg::DynamicConstraints &) const -> traffic_simulator::EntityStatus
Definition: action_node.cpp:481
auto setCanonicalizedEntityStatus(const traffic_simulator::EntityStatus &entity_status) -> void
Definition: action_node.cpp:116
auto getHorizon() const -> double
Definition: action_node.cpp:104
std::shared_ptr< traffic_simulator::TrafficLightsBase > traffic_lights
Definition: action_node.hpp:114
double step_time
Definition: action_node.hpp:117
traffic_simulator::behavior::Request request
Definition: action_node.hpp:112
auto getDistanceToFrontEntity(const math::geometry::CatmullRomSplineInterface &spline) const -> std::optional< double >
Definition: action_node.cpp:235
auto getEntityStatus(const std::string &target_name) const -> const traffic_simulator::CanonicalizedEntityStatus &
Definition: action_node.cpp:298
std::shared_ptr< hdmap_utils::HdMapUtils > hdmap_utils
Definition: action_node.hpp:113
auto getDistanceToConflictingEntity(const lanelet::Ids &route_lanelets, const math::geometry::CatmullRomSplineInterface &spline) const -> std::optional< double >
Definition: action_node.cpp:406
double default_matching_distance_for_lanelet_pose_calculation
Definition: action_node.hpp:118
auto getYieldStopDistance(const lanelet::Ids &following_lanelets) const -> std::optional< double >
Definition: action_node.cpp:135
auto calculateUpdatedEntityStatusInWorldFrame(const double local_target_speed, const traffic_simulator_msgs::msg::DynamicConstraints &) const -> traffic_simulator::EntityStatus
Definition: action_node.cpp:522
auto getFrontEntityName(const math::geometry::CatmullRomSplineInterface &spline) const -> std::optional< std::string >
Definition: action_node.cpp:245
auto getRightOfWayEntities() const -> std::vector< traffic_simulator::CanonicalizedEntityStatus >
Definition: action_node.cpp:190
auto getOtherEntityStatus(lanelet::Id lanelet_id) const -> std::vector< traffic_simulator::CanonicalizedEntityStatus >
Definition: action_node.cpp:123
double current_time
Definition: action_node.hpp:116
static BT::PortsList providedPorts()
Definition: action_node.hpp:76
ActionNode(const std::string &name, const BT::NodeConfiguration &config)
Definition: action_node.cpp:47
auto executeTick() -> BT::NodeStatus override
throws if the derived class return RUNNING.
Definition: action_node.cpp:52
auto foundConflictingEntity(const lanelet::Ids &following_lanelets) const -> bool
Definition: action_node.cpp:461
auto getDistanceToTargetEntity(const math::geometry::CatmullRomSplineInterface &spline, const traffic_simulator::CanonicalizedEntityStatus &status) const -> std::optional< double >
Definition: action_node.cpp:323
std::optional< double > target_speed
Definition: action_node.hpp:119
virtual auto getBlackBoardValues() -> void
Definition: action_node.cpp:54
Definition: catmull_rom_spline_interface.hpp:30
Definition: entity_status.hpp:32
Definition: action_node.hpp:41
std::unordered_map< std::string, traffic_simulator::CanonicalizedEntityStatus > EntityStatusDict
Definition: behavior_plugin_base.hpp:37
BT::PortsList operator+(const BT::PortsList &ports_0, const BT::PortsList &ports_1)
Definition: action_node.cpp:40
Definition: lanelet_wrapper.hpp:40
Request
Definition: behavior.hpp:25
traffic_simulator_msgs::msg::EntityStatus EntityStatus
Definition: entity_status.hpp:25
std::string string
Definition: junit5.hpp:26