Skip to content

Commit 2e51216

Browse files
satoshi-otasoblin
authored andcommitted
feat(dynamic_obstacle_stop): output planning factor interface (#1732)
* feat(motion_velocity_planner): use planning factor interface Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> * feat(dynamic_obstacle_stop): output planning factor interface Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> --------- Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com>
1 parent 7ff3085 commit 2e51216

File tree

4 files changed

+17
-0
lines changed

4 files changed

+17
-0
lines changed

planning/motion_velocity_planner/autoware_motion_velocity_dynamic_obstacle_stop_module/src/dynamic_obstacle_stop_module.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ void DynamicObstacleStopModule::init(rclcpp::Node & node, const std::string & mo
4545
clock_ = node.get_clock();
4646
velocity_factor_interface_.init(autoware::motion_utils::PlanningBehavior::ROUTE_OBSTACLE);
4747

48+
planning_factor_interface_ = std::make_unique<autoware::motion_utils::PlanningFactorInterface>(
49+
&node, "dynamic_obstacle_stop");
50+
4851
debug_publisher_ =
4952
node.create_publisher<visualization_msgs::msg::MarkerArray>("~/" + ns_ + "/debug_markers", 1);
5053
virtual_wall_publisher_ =
@@ -163,6 +166,9 @@ VelocityPlanningResult DynamicObstacleStopModule::plan(
163166
const auto stop_pose_reached =
164167
planner_data->current_odometry.twist.twist.linear.x < 1e-3 &&
165168
autoware::universe_utils::calcDistance2d(ego_data.pose, *stop_pose) < 1e-3;
169+
planning_factor_interface_->add(
170+
ego_trajectory_points, ego_data.pose, *stop_pose, PlanningFactor::STOP,
171+
SafetyFactorArray{});
166172
velocity_factor_interface_.set(
167173
ego_trajectory_points, ego_data.pose, *stop_pose,
168174
stop_pose_reached ? autoware::motion_utils::VelocityFactor::STOPPED

planning/motion_velocity_planner/autoware_motion_velocity_dynamic_obstacle_stop_module/src/dynamic_obstacle_stop_module.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class DynamicObstacleStopModule : public PluginModuleInterface
3333
{
3434
public:
3535
void init(rclcpp::Node & node, const std::string & module_name) override;
36+
void publish_planning_factor() override { planning_factor_interface_->publish(); };
3637
void update_parameters(const std::vector<rclcpp::Parameter> & parameters) override;
3738
VelocityPlanningResult plan(
3839
const std::vector<autoware_planning_msgs::msg::TrajectoryPoint> & ego_trajectory_points,

planning/motion_velocity_planner/autoware_motion_velocity_planner_common/include/autoware/motion_velocity_planner_common/plugin_module_interface.hpp

+8
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "planner_data.hpp"
1919
#include "velocity_planning_result.hpp"
2020

21+
#include <autoware/motion_utils/factor/planning_factor_interface.hpp>
2122
#include <autoware/motion_utils/factor/velocity_factor_interface.hpp>
2223
#include <autoware/universe_utils/ros/processing_time_publisher.hpp>
2324
#include <rclcpp/rclcpp.hpp>
@@ -32,6 +33,9 @@
3233
namespace autoware::motion_velocity_planner
3334
{
3435

36+
using tier4_planning_msgs::msg::PlanningFactor;
37+
using tier4_planning_msgs::msg::SafetyFactorArray;
38+
3539
class PluginModuleInterface
3640
{
3741
public:
@@ -42,6 +46,7 @@ class PluginModuleInterface
4246
const std::vector<autoware_planning_msgs::msg::TrajectoryPoint> & ego_trajectory_points,
4347
const std::shared_ptr<const PlannerData> planner_data) = 0;
4448
virtual std::string get_module_name() const = 0;
49+
virtual void publish_planning_factor() {}
4550
autoware::motion_utils::VelocityFactorInterface velocity_factor_interface_;
4651
rclcpp::Logger logger_ = rclcpp::get_logger("");
4752
rclcpp::Publisher<visualization_msgs::msg::MarkerArray>::SharedPtr debug_publisher_;
@@ -50,6 +55,9 @@ class PluginModuleInterface
5055
rclcpp::Publisher<autoware_internal_debug_msgs::msg::Float64Stamped>::SharedPtr
5156
processing_time_publisher_;
5257
autoware::motion_utils::VirtualWallMarkerCreator virtual_wall_marker_creator{};
58+
59+
protected:
60+
std::unique_ptr<autoware::motion_utils::PlanningFactorInterface> planning_factor_interface_;
5361
};
5462

5563
} // namespace autoware::motion_velocity_planner

planning/motion_velocity_planner/autoware_motion_velocity_planner_node/src/planner_manager.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@ std::vector<VelocityPlanningResult> MotionVelocityPlannerManager::plan_velocitie
102102
VelocityPlanningResult res = plugin->plan(ego_trajectory_points, planner_data);
103103
results.push_back(res);
104104

105+
plugin->publish_planning_factor();
106+
105107
if (res.stop_points.size() > 0) {
106108
const auto stop_decision_metric = make_decision_metric(plugin->get_module_name(), "stop");
107109
metrics_.push_back(stop_decision_metric);

0 commit comments

Comments
 (0)