Skip to content

Commit 08ea2de

Browse files
committedMay 14, 2024
suppres launch
Signed-off-by: Yuki Takagi <yuki.takagi@tier4.jp>
1 parent fd89ca2 commit 08ea2de

File tree

1 file changed

+25
-1
lines changed
  • planning/behavior_velocity_virtual_traffic_light_module/src

1 file changed

+25
-1
lines changed
 

‎planning/behavior_velocity_virtual_traffic_light_module/src/manager.cpp

+25-1
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,17 @@
1414

1515
#include "manager.hpp"
1616

17+
#include "tier4_autoware_utils/geometry/boost_geometry.hpp"
18+
1719
#include <behavior_velocity_planner_common/utilization/util.hpp>
20+
#include <lanelet2_extension/utility/utilities.hpp>
1821
#include <tier4_autoware_utils/math/unit_conversion.hpp>
1922
#include <tier4_autoware_utils/ros/parameter.hpp>
2023

24+
#include <boost/geometry/algorithms/intersects.hpp>
25+
26+
#include <lanelet2_core/geometry/LineString.h>
27+
2128
#include <memory>
2229
#include <set>
2330
#include <string>
@@ -51,13 +58,30 @@ VirtualTrafficLightModuleManager::VirtualTrafficLightModuleManager(rclcpp::Node
5158
void VirtualTrafficLightModuleManager::launchNewModules(
5259
const autoware_auto_planning_msgs::msg::PathWithLaneId & path)
5360
{
61+
tier4_autoware_utils::LineString2d ego_path_linestring;
62+
for (const auto & path_point : path.points) {
63+
ego_path_linestring.push_back(
64+
tier4_autoware_utils::fromMsg(path_point.point.pose.position).to_2d());
65+
}
66+
5467
for (const auto & m : planning_utils::getRegElemMapOnPath<VirtualTrafficLight>(
5568
path, planner_data_->route_handler_->getLaneletMapPtr(),
5669
planner_data_->current_odometry->pose)) {
70+
const auto stop_line_opt = m.first->getStopLine();
71+
if (!stop_line_opt) {
72+
RCLCPP_FATAL(
73+
logger_, "No stop line at traffic_light_reg_elem_id = %ld, please fix the map!",
74+
m.first->id());
75+
continue;
76+
}
77+
5778
// Use lanelet_id to unregister module when the route is changed
5879
const auto lane_id = m.second.id();
5980
const auto module_id = lane_id;
60-
if (!isModuleRegistered(module_id)) {
81+
if (
82+
!isModuleRegistered(module_id) &&
83+
boost::geometry::intersects(
84+
ego_path_linestring, lanelet::utils::to2D(stop_line_opt.value()).basicLineString())) {
6185
registerModule(std::make_shared<VirtualTrafficLightModule>(
6286
module_id, lane_id, *m.first, m.second, planner_param_,
6387
logger_.get_child("virtual_traffic_light_module"), clock_));

0 commit comments

Comments
 (0)