Skip to content

Commit b056de9

Browse files
authored
feat(bpp-intersection): use planning factor (#1728)
Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com>
1 parent bb03595 commit b056de9

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

planning/behavior_path_planner/autoware_behavior_path_planner/include/autoware/behavior_path_planner/behavior_path_planner_node.hpp

+3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "autoware/universe_utils/ros/logger_level_configure.hpp"
2121
#include "planner_manager.hpp"
2222

23+
#include <autoware/motion_utils/factor/planning_factor_interface.hpp>
2324
#include <autoware/motion_utils/factor/steering_factor_interface.hpp>
2425
#include <autoware/universe_utils/ros/polling_subscriber.hpp>
2526
#include <autoware/universe_utils/ros/published_time_publisher.hpp>
@@ -51,6 +52,7 @@
5152

5253
namespace autoware::behavior_path_planner
5354
{
55+
using autoware::motion_utils::PlanningFactorInterface;
5456
using autoware::motion_utils::SteeringFactorInterface;
5557
using autoware_adapi_v1_msgs::msg::OperationModeState;
5658
using autoware_map_msgs::msg::LaneletMapBin;
@@ -137,6 +139,7 @@ class BehaviorPathPlannerNode : public rclcpp::Node
137139
std::shared_ptr<PlannerManager> planner_manager_;
138140

139141
SteeringFactorInterface steering_factor_interface_;
142+
std::unique_ptr<PlanningFactorInterface> planning_factor_interface_;
140143

141144
std::mutex mutex_pd_; // mutex for planner_data_
142145
std::mutex mutex_manager_; // mutex for bt_manager_ or planner_manager_

planning/behavior_path_planner/autoware_behavior_path_planner/src/behavior_path_planner_node.cpp

+16-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ using autoware::vehicle_info_utils::VehicleInfoUtils;
3232
using tier4_planning_msgs::msg::PathChangeModuleId;
3333

3434
BehaviorPathPlannerNode::BehaviorPathPlannerNode(const rclcpp::NodeOptions & node_options)
35-
: Node("behavior_path_planner", node_options)
35+
: Node("behavior_path_planner", node_options),
36+
planning_factor_interface_{
37+
std::make_unique<PlanningFactorInterface>(this, "behavior_path_planner")}
3638
{
3739
using std::placeholders::_1;
3840
using std::chrono_literals::operator""ms;
@@ -476,6 +478,17 @@ void BehaviorPathPlannerNode::publish_steering_factor(
476478
steering_factor_interface_.set(
477479
{intersection_pose, intersection_pose}, {intersection_distance, intersection_distance},
478480
steering_factor_direction, SteeringFactor::TURNING, "");
481+
482+
const uint16_t planning_factor_direction = std::invoke([&turn_signal]() {
483+
if (turn_signal.command == TurnIndicatorsCommand::ENABLE_LEFT) {
484+
return PlanningFactor::TURN_LEFT;
485+
}
486+
return PlanningFactor::TURN_RIGHT;
487+
});
488+
489+
planning_factor_interface_->add(
490+
intersection_distance, intersection_distance, intersection_pose, intersection_pose,
491+
planning_factor_direction, SafetyFactorArray{});
479492
} else {
480493
steering_factor_interface_.reset();
481494
}
@@ -490,6 +503,8 @@ void BehaviorPathPlannerNode::publish_steering_factor(
490503
}
491504

492505
pub_steering_factors_->publish(steering_factor_array);
506+
507+
planning_factor_interface_->publish();
493508
}
494509

495510
void BehaviorPathPlannerNode::publish_reroute_availability() const

0 commit comments

Comments
 (0)