diff --git a/perception/radar_tracks_msgs_converter/README.md b/perception/radar_tracks_msgs_converter/README.md
index fb8f117c82245..fa08eb08f521a 100644
--- a/perception/radar_tracks_msgs_converter/README.md
+++ b/perception/radar_tracks_msgs_converter/README.md
@@ -23,7 +23,7 @@ This package converts from [radar_msgs/msg/RadarTracks](https://github.com/ros-p
- `new_frame_id` (string): The header frame of the output topic.
- Default parameter is "base_link"
- `use_twist_compensation` (bool): If the parameter is true, then the twist of the output objects' topic is compensated by ego vehicle motion.
- - Default parameter is "false"
+ - Default parameter is "true"
- `use_twist_yaw_compensation` (bool): If the parameter is true, then the ego motion compensation will also consider yaw motion of the ego vehicle.
- Default parameter is "false"
- `static_object_speed_threshold` (float): Specify the threshold for static object speed which determines the flag `is_stationary` [m/s].
diff --git a/perception/radar_tracks_msgs_converter/launch/radar_tracks_msgs_converter.launch.xml b/perception/radar_tracks_msgs_converter/launch/radar_tracks_msgs_converter.launch.xml
index a6a3f394b1f40..cc2bb80c6f4f7 100644
--- a/perception/radar_tracks_msgs_converter/launch/radar_tracks_msgs_converter.launch.xml
+++ b/perception/radar_tracks_msgs_converter/launch/radar_tracks_msgs_converter.launch.xml
@@ -4,7 +4,7 @@
-
+
diff --git a/planning/behavior_path_goal_planner_module/src/goal_planner_module.cpp b/planning/behavior_path_goal_planner_module/src/goal_planner_module.cpp
index 3f765c99cffa9..a13344ee87e7c 100644
--- a/planning/behavior_path_goal_planner_module/src/goal_planner_module.cpp
+++ b/planning/behavior_path_goal_planner_module/src/goal_planner_module.cpp
@@ -458,13 +458,6 @@ bool GoalPlannerModule::isExecutionRequested() const
return false;
}
- // if goal modification is not allowed
- // 1) goal_pose is in current_lanes, plan path to the original fixed goal
- // 2) goal_pose is NOT in current_lanes, do not execute goal_planner
- if (!utils::isAllowedGoalModification(route_handler)) {
- return goal_is_in_current_lanes;
- }
-
// if (A) or (B) is met execute pull over
// (A) target lane is `road` and same to the current lanes
// (B) target lane is `road_shoulder` and neighboring to the current lanes
diff --git a/planning/behavior_path_planner/src/behavior_path_planner_node.cpp b/planning/behavior_path_planner/src/behavior_path_planner_node.cpp
index 9b3fbedc37203..3eb5eca5954fb 100644
--- a/planning/behavior_path_planner/src/behavior_path_planner_node.cpp
+++ b/planning/behavior_path_planner/src/behavior_path_planner_node.cpp
@@ -784,6 +784,7 @@ void BehaviorPathPlannerNode::onTrafficSignals(const TrafficSignalArray::ConstSh
{
std::lock_guard lock(mutex_pd_);
+ planner_data_->traffic_light_id_map.clear();
for (const auto & signal : msg->signals) {
TrafficSignalStamped traffic_signal;
traffic_signal.stamp = msg->stamp;
diff --git a/planning/behavior_velocity_planner/src/node.cpp b/planning/behavior_velocity_planner/src/node.cpp
index e2c29ef868257..9fa5634c6dd65 100644
--- a/planning/behavior_velocity_planner/src/node.cpp
+++ b/planning/behavior_velocity_planner/src/node.cpp
@@ -323,6 +323,11 @@ void BehaviorVelocityPlannerNode::onTrafficSignals(
{
std::lock_guard lock(mutex_);
+ // clear previous observation
+ planner_data_.traffic_light_id_map_raw_.clear();
+ const auto traffic_light_id_map_last_observed_old =
+ planner_data_.traffic_light_id_map_last_observed_;
+ planner_data_.traffic_light_id_map_last_observed_.clear();
for (const auto & signal : msg->signals) {
TrafficSignalStamped traffic_signal;
traffic_signal.stamp = msg->stamp;
@@ -334,9 +339,12 @@ void BehaviorVelocityPlannerNode::onTrafficSignals(
});
// if the observation is UNKNOWN and past observation is available, only update the timestamp
// and keep the body of the info
- if (
- is_unknown_observation &&
- planner_data_.traffic_light_id_map_last_observed_.count(signal.traffic_signal_id) == 1) {
+ const auto old_data = traffic_light_id_map_last_observed_old.find(signal.traffic_signal_id);
+ if (is_unknown_observation && old_data != traffic_light_id_map_last_observed_old.end()) {
+ // copy last observation
+ planner_data_.traffic_light_id_map_last_observed_[signal.traffic_signal_id] =
+ old_data->second;
+ // update timestamp
planner_data_.traffic_light_id_map_last_observed_[signal.traffic_signal_id].stamp =
msg->stamp;
} else {