diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index e298dccefd827..01ccc632b0133 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -19,9 +19,9 @@ common/global_parameter_loader/** ryohsuke.mitsudome@tier4.jp
common/glog_component/** takamasa.horibe@tier4.jp
common/goal_distance_calculator/** taiki.tanaka@tier4.jp
common/grid_map_utils/** maxime.clement@tier4.jp
-common/interpolation/** fumiya.watanabe@tier4.jp takayuki.murooka@tier4.jp yutaka.shimizu@tier4.jp
+common/interpolation/** fumiya.watanabe@tier4.jp takayuki.murooka@tier4.jp
common/kalman_filter/** koji.minoda@tier4.jp takeshi.ishita@tier4.jp yukihiro.saito@tier4.jp
-common/motion_utils/** fumiya.watanabe@tier4.jp kosuke.takeuchi@tier4.jp mamoru.sobue@tier4.jp satoshi.ota@tier4.jp taiki.tanaka@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp yutaka.shimizu@tier4.jp
+common/motion_utils/** fumiya.watanabe@tier4.jp kosuke.takeuchi@tier4.jp mamoru.sobue@tier4.jp satoshi.ota@tier4.jp taiki.tanaka@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp
common/object_recognition_utils/** satoshi.tanaka@tier4.jp shunsuke.miura@tier4.jp takayuki.murooka@tier4.jp yusuke.muramatsu@tier4.jp
common/osqp_interface/** fumiya.watanabe@tier4.jp maxime.clement@tier4.jp satoshi.ota@tier4.jp takayuki.murooka@tier4.jp
common/path_distance_calculator/** isamu.takagi@tier4.jp kahhooi.tan@tier4.jp makoto.yabuta@tier4.jp
@@ -34,8 +34,9 @@ common/tensorrt_common/** daisuke.nishimatsu@tier4.jp dan.umeda@tier4.jp manato.
common/tier4_adapi_rviz_plugin/** hiroki.ota@tier4.jp isamu.takagi@tier4.jp kosuke.takeuchi@tier4.jp
common/tier4_api_utils/** isamu.takagi@tier4.jp kahhooi.tan@tier4.jp makoto.yabuta@tier4.jp
common/tier4_automatic_goal_rviz_plugin/** dawid.moszynski@robotec.ai shumpei.wakabayashi@tier4.jp
-common/tier4_autoware_utils/** mamoru.sobue@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp yutaka.shimizu@tier4.jp
+common/tier4_autoware_utils/** mamoru.sobue@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp
common/tier4_calibration_rviz_plugin/** tomoya.kimura@tier4.jp
+common/tier4_camera_view_rviz_plugin/** makoto.ybauta@tier4.jp uken.ryu@tier4.jp
common/tier4_control_rviz_plugin/** taiki.tanaka@tier4.jp
common/tier4_datetime_rviz_plugin/** isamu.takagi@tier4.jp kahhooi.tan@tier4.jp makoto.yabuta@tier4.jp
common/tier4_debug_rviz_plugin/** takayuki.murooka@tier4.jp
@@ -43,7 +44,7 @@ common/tier4_debug_tools/** ryohsuke.mitsudome@tier4.jp
common/tier4_localization_rviz_plugin/** isamu.takagi@tier4.jp kahhooi.tan@tier4.jp makoto.yabuta@tier4.jp takamasa.horibe@tier4.jp
common/tier4_logging_level_configure_rviz_plugin/** kosuke.takeuchi@tier4.jp satoshi.ota@tier4.jp takamasa.horibe@tier4.jp
common/tier4_perception_rviz_plugin/** yukihiro.saito@tier4.jp
-common/tier4_planning_rviz_plugin/** takayuki.murooka@tier4.jp yukihiro.saito@tier4.jp yutaka.shimizu@tier4.jp
+common/tier4_planning_rviz_plugin/** takayuki.murooka@tier4.jp yukihiro.saito@tier4.jp
common/tier4_screen_capture_rviz_plugin/** taiki.tanaka@tier4.jp
common/tier4_simulated_clock_rviz_plugin/** maxime.clement@tier4.jp
common/tier4_state_rviz_plugin/** hiroki.ota@tier4.jp isamu.takagi@tier4.jp
@@ -54,9 +55,8 @@ common/tier4_vehicle_rviz_plugin/** yukihiro.saito@tier4.jp
common/time_utils/** christopherj.ho@gmail.com shumpei.wakabayashi@tier4.jp tomoya.kimura@tier4.jp
common/traffic_light_recognition_marker_publisher/** shumpei.wakabayashi@tier4.jp takeshi.miura@tier4.jp tomoya.kimura@tier4.jp
common/traffic_light_utils/** mingyu.li@tier4.jp shunsuke.miura@tier4.jp
-common/trtexec_vendor/** daisuke.nishimatsu@tier4.jp yusuke.muramatsu@tier4.jp
common/tvm_utility/** ambroise.vincent@arm.com xinyu.wang@tier4.jp
-control/autonomous_emergency_braking/** takamasa.horibe@tier4.jp tomoya.kimura@tier4.jp yutaka.shimizu@tier4.jp
+control/autonomous_emergency_braking/** takamasa.horibe@tier4.jp tomoya.kimura@tier4.jp
control/control_performance_analysis/** berkay@leodrive.ai fumiya.watanabe@tier4.jp satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp taiki.tanaka@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp
control/control_validator/** kyoichi.sugahara@tier4.jp makoto.kurihara@tier4.jp takamasa.horibe@tier4.jp
control/external_cmd_selector/** fumiya.watanabe@tier4.jp satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp taiki.tanaka@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp
@@ -81,20 +81,22 @@ launch/tier4_control_launch/** takamasa.horibe@tier4.jp takayuki.murooka@tier4.j
launch/tier4_localization_launch/** kento.yabuuchi.2@tier4.jp koji.minoda@tier4.jp ryu.yamamoto@tier4.jp yamato.ando@tier4.jp
launch/tier4_map_launch/** koji.minoda@tier4.jp ryohsuke.mitsudome@tier4.jp ryu.yamamoto@tier4.jp
launch/tier4_perception_launch/** shunsuke.miura@tier4.jp yoshi.ri@tier4.jp yukihiro.saito@tier4.jp
-launch/tier4_planning_launch/** fumiya.watanabe@tier4.jp kosuke.takeuchi@tier4.jp kyoichi.sugahara@tier4.jp makoto.kurihara@tier4.jp mamoru.sobue@tier4.jp satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp taiki.tanaka@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp tomohito.ando@tier4.jp tomoya.kimura@tier4.jp yutaka.shimizu@tier4.jp zulfaqar.azmi@tier4.jp
+launch/tier4_planning_launch/** fumiya.watanabe@tier4.jp kosuke.takeuchi@tier4.jp kyoichi.sugahara@tier4.jp makoto.kurihara@tier4.jp mamoru.sobue@tier4.jp satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp taiki.tanaka@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp tomohito.ando@tier4.jp tomoya.kimura@tier4.jp zhe.shen@tier4.jp zulfaqar.azmi@tier4.jp
launch/tier4_sensing_launch/** yukihiro.saito@tier4.jp
launch/tier4_simulator_launch/** keisuke.shima@tier4.jp taiki.tanaka@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp
-launch/tier4_system_launch/** akihiro.sakurai@tier4.jp fumihito.ito@tier4.jp
+launch/tier4_system_launch/** fumihito.ito@tier4.jp tetsuhiro.kawaguchi@tier4.jp
launch/tier4_vehicle_launch/** yukihiro.saito@tier4.jp
localization/ekf_localizer/** koji.minoda@tier4.jp masahiro.sakamoto@tier4.jp takamasa.horibe@tier4.jp takeshi.ishita@tier4.jp yamato.ando@tier4.jp
+localization/geo_pose_projector/** koji.minoda@tier4.jp yamato.ando@tier4.jp
localization/gyro_odometer/** masahiro.sakamoto@tier4.jp yamato.ando@tier4.jp
localization/landmark_based_localizer/ar_tag_based_localizer/** kento.yabuuchi.2@tier4.jp masahiro.sakamoto@tier4.jp shintaro.sakoda@tier4.jp yamato.ando@tier4.jp
-localization/landmark_based_localizer/landmark_parser/** kento.yabuuchi.2@tier4.jp masahiro.sakamoto@tier4.jp shintaro.sakoda@tier4.jp yamato.ando@tier4.jp
+localization/landmark_based_localizer/landmark_manager/** kento.yabuuchi.2@tier4.jp masahiro.sakamoto@tier4.jp shintaro.sakoda@tier4.jp yamato.ando@tier4.jp
localization/localization_error_monitor/** koji.minoda@tier4.jp masahiro.sakamoto@tier4.jp yamato.ando@tier4.jp
localization/localization_util/** kento.yabuuchi.2@tier4.jp masahiro.sakamoto@tier4.jp shintaro.sakoda@tier4.jp yamato.ando@tier4.jp
localization/ndt_scan_matcher/** kento.yabuuchi.2@tier4.jp koji.minoda@tier4.jp masahiro.sakamoto@tier4.jp yamato.ando@tier4.jp
localization/pose2twist/** masahiro.sakamoto@tier4.jp yamato.ando@tier4.jp
localization/pose_initializer/** isamu.takagi@tier4.jp masahiro.sakamoto@tier4.jp yamato.ando@tier4.jp
+localization/pose_instability_detector/** kento.yabuuchi.2@tier4.jp masahiro.sakamoto@tier4.jp ryu.yamamoto@tier4.jp shintaro.sakoda@tier4.jp taiki.yamada@tier4.jp yamato.ando@tier4.jp
localization/stop_filter/** koji.minoda@tier4.jp masahiro.sakamoto@tier4.jp yamato.ando@tier4.jp
localization/tree_structured_parzen_estimator/** kento.yabuuchi.2@tier4.jp masahiro.sakamoto@tier4.jp shintaro.sakoda@tier4.jp yamato.ando@tier4.jp
localization/twist2accel/** koji.minoda@tier4.jp masahiro.sakamoto@tier4.jp yamato.ando@tier4.jp
@@ -113,20 +115,20 @@ perception/cluster_merger/** dai.nguyen@tier4.jp shunsuke.miura@tier4.jp yukihir
perception/compare_map_segmentation/** abrahammonrroy@yahoo.com dai.nguyen@tier4.jp yukihiro.saito@tier4.jp
perception/crosswalk_traffic_light_estimator/** satoshi.ota@tier4.jp shunsuke.miura@tier4.jp tao.zhong@tier4.jp
perception/detected_object_feature_remover/** tomoya.kimura@tier4.jp
-perception/detected_object_validation/** shunsuke.miura@tier4.jp yukihiro.saito@tier4.jp
+perception/detected_object_validation/** dai.nguyen@tier4.jp shunsuke.miura@tier4.jp yukihiro.saito@tier4.jp
perception/detection_by_tracker/** yoshi.ri@tier4.jp yukihiro.saito@tier4.jp
perception/elevation_map_loader/** kosuke.takeuchi@tier4.jp taichi.higashide@tier4.jp
perception/euclidean_cluster/** yukihiro.saito@tier4.jp
perception/front_vehicle_velocity_estimator/** satoshi.tanaka@tier4.jp shunsuke.miura@tier4.jp
perception/ground_segmentation/** abrahammonrroy@yahoo.com dai.nguyen@tier4.jp shunsuke.miura@tier4.jp yukihiro.saito@tier4.jp
perception/heatmap_visualizer/** kotaro.uetake@tier4.jp
-perception/image_projection_based_fusion/** yukihiro.saito@tier4.jp yusuke.muramatsu@tier4.jp
+perception/image_projection_based_fusion/** dai.nguyen@tier4.jp shunsuke.miura@tier4.jp yoshi.ri@tier4.jp yukihiro.saito@tier4.jp yusuke.muramatsu@tier4.jp
perception/lidar_apollo_instance_segmentation/** yukihiro.saito@tier4.jp
perception/lidar_apollo_segmentation_tvm/** ambroise.vincent@arm.com xinyu.wang@tier4.jp
perception/lidar_apollo_segmentation_tvm_nodes/** ambroise.vincent@arm.com xinyu.wang@tier4.jp
perception/lidar_centerpoint/** kenzo.lobos@tier4.jp yusuke.muramatsu@tier4.jp
perception/lidar_centerpoint_tvm/** carl.liu@autocore.ai xinyu.wang@tier4.jp
-perception/map_based_prediction/** kotaro.uetake@tier4.jp kyoichi.sugahara@tier4.jp shunsuke.miura@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp yoshi.ri@tier4.jp yutaka.shimizu@tier4.jp
+perception/map_based_prediction/** kotaro.uetake@tier4.jp kyoichi.sugahara@tier4.jp shunsuke.miura@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp yoshi.ri@tier4.jp
perception/multi_object_tracker/** yoshi.ri@tier4.jp yukihiro.saito@tier4.jp
perception/object_merger/** yoshi.ri@tier4.jp yukihiro.saito@tier4.jp
perception/object_range_splitter/** yukihiro.saito@tier4.jp
@@ -152,7 +154,8 @@ perception/traffic_light_multi_camera_fusion/** shunsuke.miura@tier4.jp tao.zhon
perception/traffic_light_occlusion_predictor/** shunsuke.miura@tier4.jp tao.zhong@tier4.jp
perception/traffic_light_ssd_fine_detector/** daisuke.nishimatsu@tier4.jp
perception/traffic_light_visualization/** yukihiro.saito@tier4.jp
-planning/behavior_path_planner/** fumiya.watanabe@tier4.jp kosuke.takeuchi@tier4.jp kyoichi.sugahara@tier4.jp satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp taiki.tanaka@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp yutaka.shimizu@tier4.jp zulfaqar.azmi@tier4.jp
+planning/behavior_path_planner/** fumiya.watanabe@tier4.jp kosuke.takeuchi@tier4.jp kyoichi.sugahara@tier4.jp mamoru.sobue@tier4.jp satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp taiki.tanaka@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp zulfaqar.azmi@tier4.jp
+planning/behavior_path_planner_common/** fumiya.watanabe@tier4.jp kosuke.takeuchi@tier4.jp mamoru.sobue@tier4.jp maxime.clement@tier4.jp satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp zulfaqar.azmi@tier4.jp
planning/behavior_velocity_blind_spot_module/** mamoru.sobue@tier4.jp shumpei.wakabayashi@tier4.jp tomoya.kimura@tier4.jp
planning/behavior_velocity_crosswalk_module/** kyoichi.sugahara@tier4.jp satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp
planning/behavior_velocity_detection_area_module/** kyoichi.sugahara@tier4.jp shumpei.wakabayashi@tier4.jp tomoya.kimura@tier4.jp
@@ -161,31 +164,33 @@ planning/behavior_velocity_no_drivable_lane_module/** ahmed.ebrahim@leodrive.ai
planning/behavior_velocity_no_stopping_area_module/** kosuke.takeuchi@tier4.jp shumpei.wakabayashi@tier4.jp tomoya.kimura@tier4.jp
planning/behavior_velocity_occlusion_spot_module/** shumpei.wakabayashi@tier4.jp taiki.tanaka@tier4.jp tomoya.kimura@tier4.jp
planning/behavior_velocity_out_of_lane_module/** maxime.clement@tier4.jp shumpei.wakabayashi@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp
-planning/behavior_velocity_planner/** kosuke.takeuchi@tier4.jp kyoichi.sugahara@tier4.jp makoto.kurihara@tier4.jp mamoru.sobue@tier4.jp maxime.clement@tier4.jp satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp taiki.tanaka@tier4.jp takayuki.murooka@tier4.jp tomohito.ando@tier4.jp tomoya.kimura@tier4.jp yutaka.shimizu@tier4.jp
-planning/behavior_velocity_planner_common/** isamu.takagi@tier4.jp shumpei.wakabayashi@tier4.jp tomoya.kimura@tier4.jp
-planning/behavior_velocity_run_out_module/** makoto.kurihara@tier4.jp shumpei.wakabayashi@tier4.jp tomohito.ando@tier4.jp tomoya.kimura@tier4.jp
+planning/behavior_velocity_planner/** kosuke.takeuchi@tier4.jp kyoichi.sugahara@tier4.jp makoto.kurihara@tier4.jp mamoru.sobue@tier4.jp maxime.clement@tier4.jp satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp taiki.tanaka@tier4.jp takayuki.murooka@tier4.jp tomohito.ando@tier4.jp tomoya.kimura@tier4.jp
+planning/behavior_velocity_planner_common/** fumiya.watanabe@tier4.jp isamu.takagi@tier4.jp mamoru.sobue@tier4.jp shumpei.wakabayashi@tier4.jp tomoya.kimura@tier4.jp
+planning/behavior_velocity_run_out_module/** makoto.kurihara@tier4.jp shumpei.wakabayashi@tier4.jp takayuki.murooka@tier4.jp tomohito.ando@tier4.jp tomoya.kimura@tier4.jp
planning/behavior_velocity_speed_bump_module/** mdogru@leodrive.ai shumpei.wakabayashi@tier4.jp tomoya.kimura@tier4.jp
-planning/behavior_velocity_stop_line_module/** shumpei.wakabayashi@tier4.jp tomoya.kimura@tier4.jp yutaka.shimizu@tier4.jp
+planning/behavior_velocity_stop_line_module/** fumiya.watanabe@tier4.jp shumpei.wakabayashi@tier4.jp tomoya.kimura@tier4.jp zhe.shen@tier4.jp
planning/behavior_velocity_template_module/** daniel.sanchez@tier4.jp
planning/behavior_velocity_traffic_light_module/** satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp tomoya.kimura@tier4.jp
planning/behavior_velocity_virtual_traffic_light_module/** kosuke.takeuchi@tier4.jp shumpei.wakabayashi@tier4.jp tomoya.kimura@tier4.jp
planning/behavior_velocity_walkway_module/** satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp
-planning/costmap_generator/** kosuke.takeuchi@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp yutaka.shimizu@tier4.jp
+planning/costmap_generator/** kosuke.takeuchi@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp
planning/external_velocity_limit_selector/** satoshi.ota@tier4.jp shinnosuke.hirakawa@tier4.jp shumpei.wakabayashi@tier4.jp tomohito.ando@tier4.jp tomoya.kimura@tier4.jp
-planning/freespace_planner/** kosuke.takeuchi@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp yutaka.shimizu@tier4.jp
-planning/freespace_planning_algorithms/** kosuke.takeuchi@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp yutaka.shimizu@tier4.jp
-planning/mission_planner/** isamu.takagi@tier4.jp kosuke.takeuchi@tier4.jp ryohsuke.mitsudome@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp yutaka.shimizu@tier4.jp
-planning/motion_velocity_smoother/** fumiya.watanabe@tier4.jp makoto.kurihara@tier4.jp takamasa.horibe@tier4.jp yutaka.shimizu@tier4.jp
+planning/freespace_planner/** kosuke.takeuchi@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp
+planning/freespace_planning_algorithms/** kosuke.takeuchi@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp
+planning/mission_planner/** isamu.takagi@tier4.jp kosuke.takeuchi@tier4.jp ryohsuke.mitsudome@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp
+planning/motion_velocity_smoother/** fumiya.watanabe@tier4.jp makoto.kurihara@tier4.jp takamasa.horibe@tier4.jp
+planning/objects_of_interest_marker_interface/** fumiya.watanabe@tier4.jp kosuke.takeuchi@tier4.jp zulfaqar.azmi@tier4.jp
planning/obstacle_avoidance_planner/** kosuke.takeuchi@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp
-planning/obstacle_cruise_planner/** kosuke.takeuchi@tier4.jp satoshi.ota@tier4.jp takayuki.murooka@tier4.jp yutaka.shimizu@tier4.jp
+planning/obstacle_cruise_planner/** kosuke.takeuchi@tier4.jp satoshi.ota@tier4.jp takayuki.murooka@tier4.jp
planning/obstacle_stop_planner/** berkay@leodrive.ai satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp taiki.tanaka@tier4.jp tomoya.kimura@tier4.jp
planning/obstacle_velocity_limiter/** maxime.clement@tier4.jp
planning/path_smoother/** maxime.clement@tier4.jp takayuki.murooka@tier4.jp
planning/planning_debug_tools/** taiki.tanaka@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp
planning/planning_test_utils/** kyoichi.sugahara@tier4.jp takamasa.horibe@tier4.jp
+planning/planning_topic_converter/** kosuke.takeuchi@tier4.jp satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp
planning/planning_validator/** kosuke.takeuchi@tier4.jp takamasa.horibe@tier4.jp
-planning/route_handler/** fumiya.watanabe@tier4.jp kosuke.takeuchi@tier4.jp mamoru.sobue@tier4.jp takayuki.murooka@tier4.jp yutaka.shimizu@tier4.jp zulfaqar.azmi@tier4.jp
-planning/rtc_interface/** fumiya.watanabe@tier4.jp taiki.tanaka@tier4.jp
+planning/route_handler/** fumiya.watanabe@tier4.jp kosuke.takeuchi@tier4.jp mamoru.sobue@tier4.jp takayuki.murooka@tier4.jp zulfaqar.azmi@tier4.jp
+planning/rtc_interface/** fumiya.watanabe@tier4.jp kyoichi.sugahara@tier4.jp taiki.tanaka@tier4.jp
planning/rtc_replayer/** fumiya.watanabe@tier4.jp taiki.tanaka@tier4.jp
planning/sampling_based_planner/bezier_sampler/** maxime.clement@tier4.jp
planning/sampling_based_planner/frenet_planner/** maxime.clement@tier4.jp
@@ -216,15 +221,15 @@ system/default_ad_api/** isamu.takagi@tier4.jp kahhooi.tan@tier4.jp makoto.yabut
system/default_ad_api_helpers/ad_api_adaptors/** isamu.takagi@tier4.jp kahhooi.tan@tier4.jp makoto.yabuta@tier4.jp ryohsuke.mitsudome@tier4.jp yukihiro.saito@tier4.jp
system/default_ad_api_helpers/ad_api_visualizers/** isamu.takagi@tier4.jp kahhooi.tan@tier4.jp makoto.yabuta@tier4.jp ryohsuke.mitsudome@tier4.jp yukihiro.saito@tier4.jp
system/default_ad_api_helpers/automatic_pose_initializer/** isamu.takagi@tier4.jp kahhooi.tan@tier4.jp makoto.yabuta@tier4.jp ryohsuke.mitsudome@tier4.jp yukihiro.saito@tier4.jp
-system/dummy_diag_publisher/** akihiro.sakurai@tier4.jp fumihito.ito@tier4.jp
+system/dummy_diag_publisher/** fumihito.ito@tier4.jp tetsuhiro.kawaguchi@tier4.jp
system/dummy_infrastructure/** ryohsuke.mitsudome@tier4.jp
system/duplicated_node_checker/** shumpei.wakabayashi@tier4.jp uken.ryu@tier4.jp
system/emergency_handler/** makoto.kurihara@tier4.jp
-system/mrm_comfortable_stop_operator/** makoto.kurihara@tier4.jp
-system/mrm_emergency_stop_operator/** makoto.kurihara@tier4.jp
+system/mrm_comfortable_stop_operator/** makoto.kurihara@tier4.jp tomohito.ando@tier4.jp
+system/mrm_emergency_stop_operator/** makoto.kurihara@tier4.jp tomohito.ando@tier4.jp
system/system_diagnostic_graph/** isamu.takagi@tier4.jp
system/system_error_monitor/** fumihito.ito@tier4.jp
-system/system_monitor/** akihiro.sakurai@tier4.jp fumihito.ito@tier4.jp
+system/system_monitor/** fumihito.ito@tier4.jp tetsuhiro.kawaguchi@tier4.jp
system/topic_state_monitor/** ryohsuke.mitsudome@tier4.jp
system/velodyne_monitor/** fumihito.ito@tier4.jp
tools/simulator_test/simulator_compatibility_test/** shpark@morai.ai shumpei.wakabayashi@tier4.jp tomoya.kimura@tier4.jp
diff --git a/.github/workflows/spell-check-all.yaml b/.github/workflows/spell-check-all.yaml
index 4feea0dbadcf7..057bd78da2a82 100644
--- a/.github/workflows/spell-check-all.yaml
+++ b/.github/workflows/spell-check-all.yaml
@@ -2,6 +2,8 @@ name: spell-check-all
on:
workflow_dispatch:
+ schedule:
+ - cron: 0 0 * * *
jobs:
spell-check-all:
diff --git a/common/goal_distance_calculator/config/goal_distance_calculator.param.yaml b/common/goal_distance_calculator/config/goal_distance_calculator.param.yaml
index 5b8c019de5a20..46738a33ae0bd 100644
--- a/common/goal_distance_calculator/config/goal_distance_calculator.param.yaml
+++ b/common/goal_distance_calculator/config/goal_distance_calculator.param.yaml
@@ -1,3 +1,4 @@
/**:
ros__parameters:
update_rate: 10.0
+ oneshot: false
diff --git a/common/goal_distance_calculator/launch/goal_distance_calculator.launch.xml b/common/goal_distance_calculator/launch/goal_distance_calculator.launch.xml
index 7a796049384bc..7ba2eb45c9233 100644
--- a/common/goal_distance_calculator/launch/goal_distance_calculator.launch.xml
+++ b/common/goal_distance_calculator/launch/goal_distance_calculator.launch.xml
@@ -1,8 +1,6 @@
-
-
diff --git a/common/goal_distance_calculator/schema/goal_distance_calculator.schema.json b/common/goal_distance_calculator/schema/goal_distance_calculator.schema.json
new file mode 100644
index 0000000000000..bc8d7d808619f
--- /dev/null
+++ b/common/goal_distance_calculator/schema/goal_distance_calculator.schema.json
@@ -0,0 +1,36 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Parameters for Goal Distance Calculator Node",
+ "type": "object",
+ "definitions": {
+ "goal_distance_calculator": {
+ "type": "object",
+ "properties": {
+ "update_rate": {
+ "type": "number",
+ "default": "10.0",
+ "exclusiveMinimum": 0,
+ "description": "Timer callback period. [Hz]"
+ },
+ "oneshot": {
+ "type": "boolean",
+ "default": "false",
+ "description": "Publish deviations just once or repeatedly."
+ }
+ },
+ "required": ["update_rate", "oneshot"]
+ }
+ },
+ "properties": {
+ "/**": {
+ "type": "object",
+ "properties": {
+ "ros__parameters": {
+ "$ref": "#/definitions/goal_distance_calculator"
+ }
+ },
+ "required": ["ros__parameters"]
+ }
+ },
+ "required": ["/**"]
+}
diff --git a/common/goal_distance_calculator/src/goal_distance_calculator_node.cpp b/common/goal_distance_calculator/src/goal_distance_calculator_node.cpp
index 6b147ed66d690..c6062d2a156ee 100644
--- a/common/goal_distance_calculator/src/goal_distance_calculator_node.cpp
+++ b/common/goal_distance_calculator/src/goal_distance_calculator_node.cpp
@@ -40,8 +40,8 @@ GoalDistanceCalculatorNode::GoalDistanceCalculatorNode(const rclcpp::NodeOptions
durable_qos.transient_local();
// Node Parameter
- node_param_.update_rate = declare_parameter("update_rate", 10.0);
- node_param_.oneshot = declare_parameter("oneshot", true);
+ node_param_.update_rate = declare_parameter("update_rate");
+ node_param_.oneshot = declare_parameter("oneshot");
// Core
goal_distance_calculator_ = std::make_unique();
diff --git a/common/interpolation/test/src/test_spline_interpolation.cpp b/common/interpolation/test/src/test_spline_interpolation.cpp
index c95fc902ade44..94baf50992cf5 100644
--- a/common/interpolation/test/src/test_spline_interpolation.cpp
+++ b/common/interpolation/test/src/test_spline_interpolation.cpp
@@ -222,16 +222,48 @@ TEST(spline_interpolation, splineByAkima)
TEST(spline_interpolation, SplineInterpolation)
{
- // curve: query_keys is random
- const std::vector base_keys{-1.5, 1.0, 5.0, 10.0, 15.0, 20.0};
- const std::vector base_values{-1.2, 0.5, 1.0, 1.2, 2.0, 1.0};
- const std::vector query_keys{0.0, 8.0, 18.0};
- const std::vector ans{-0.075611, 0.997242, 1.573258};
+ {
+ // curve: query_keys is random
+ const std::vector base_keys{-1.5, 1.0, 5.0, 10.0, 15.0, 20.0};
+ const std::vector base_values{-1.2, 0.5, 1.0, 1.2, 2.0, 1.0};
+ const std::vector query_keys{0.0, 8.0, 18.0};
+ const std::vector ans{-0.075611, 0.997242, 1.573258};
+
+ SplineInterpolation s(base_keys, base_values);
+ const std::vector query_values = s.getSplineInterpolatedValues(query_keys);
+
+ for (size_t i = 0; i < query_values.size(); ++i) {
+ EXPECT_NEAR(query_values.at(i), ans.at(i), epsilon);
+ }
+ }
+
+ {
+ // getSplineInterpolatedDiffValues
+ const std::vector base_keys{-1.5, 1.0, 5.0, 10.0, 15.0, 20.0};
+ const std::vector base_values{-1.2, 0.5, 1.0, 1.2, 2.0, 1.0};
+ const std::vector query_keys{0.0, 8.0, 12.0, 18.0};
+ const std::vector ans{0.671301, 0.0509853, 0.209426, -0.253628};
- SplineInterpolation s(base_keys, base_values);
- const std::vector query_values = s.getSplineInterpolatedValues(query_keys);
+ SplineInterpolation s(base_keys, base_values);
+ const std::vector query_values = s.getSplineInterpolatedDiffValues(query_keys);
- for (size_t i = 0; i < query_values.size(); ++i) {
- EXPECT_NEAR(query_values.at(i), ans.at(i), epsilon);
+ for (size_t i = 0; i < query_values.size(); ++i) {
+ EXPECT_NEAR(query_values.at(i), ans.at(i), epsilon);
+ }
+ }
+
+ {
+ // getSplineInterpolatedQuadDiffValues
+ const std::vector base_keys{-1.5, 1.0, 5.0, 10.0, 15.0, 20.0};
+ const std::vector base_values{-1.2, 0.5, 1.0, 1.2, 2.0, 1.0};
+ const std::vector query_keys{0.0, 8.0, 12.0, 18.0};
+ const std::vector ans{-0.156582, 0.0440771, -0.0116873, -0.0495025};
+
+ SplineInterpolation s(base_keys, base_values);
+ const std::vector query_values = s.getSplineInterpolatedQuadDiffValues(query_keys);
+
+ for (size_t i = 0; i < query_values.size(); ++i) {
+ EXPECT_NEAR(query_values.at(i), ans.at(i), epsilon);
+ }
}
}
diff --git a/common/motion_utils/include/motion_utils/distance/distance.hpp b/common/motion_utils/include/motion_utils/distance/distance.hpp
index 2e25f5f0e53d7..0a0d00fc9f260 100644
--- a/common/motion_utils/include/motion_utils/distance/distance.hpp
+++ b/common/motion_utils/include/motion_utils/distance/distance.hpp
@@ -15,17 +15,16 @@
#ifndef MOTION_UTILS__DISTANCE__DISTANCE_HPP_
#define MOTION_UTILS__DISTANCE__DISTANCE_HPP_
-#include
-
#include
#include
#include
+#include
#include
#include
namespace motion_utils
{
-boost::optional calcDecelDistWithJerkAndAccConstraints(
+std::optional calcDecelDistWithJerkAndAccConstraints(
const double current_vel, const double target_vel, const double current_acc, const double acc_min,
const double jerk_acc, const double jerk_dec);
diff --git a/common/motion_utils/include/motion_utils/trajectory/interpolation.hpp b/common/motion_utils/include/motion_utils/trajectory/interpolation.hpp
index 41a9e9dd41a40..c23478605c41a 100644
--- a/common/motion_utils/include/motion_utils/trajectory/interpolation.hpp
+++ b/common/motion_utils/include/motion_utils/trajectory/interpolation.hpp
@@ -21,10 +21,9 @@
#include "autoware_auto_planning_msgs/msg/path_with_lane_id.hpp"
#include "autoware_auto_planning_msgs/msg/trajectory.hpp"
-#include
-
#include
#include
+#include
#include
#include
diff --git a/common/motion_utils/include/motion_utils/trajectory/path_with_lane_id.hpp b/common/motion_utils/include/motion_utils/trajectory/path_with_lane_id.hpp
index 74862a6229a46..e088285147735 100644
--- a/common/motion_utils/include/motion_utils/trajectory/path_with_lane_id.hpp
+++ b/common/motion_utils/include/motion_utils/trajectory/path_with_lane_id.hpp
@@ -18,12 +18,11 @@
#include "autoware_auto_planning_msgs/msg/path_with_lane_id.hpp"
#include
-#include
-
+#include
#include
namespace motion_utils
{
-boost::optional> getPathIndexRangeWithLaneId(
+std::optional> getPathIndexRangeWithLaneId(
const autoware_auto_planning_msgs::msg::PathWithLaneId & path, const int64_t target_lane_id);
size_t findNearestIndexFromLaneId(
diff --git a/common/motion_utils/include/motion_utils/trajectory/trajectory.hpp b/common/motion_utils/include/motion_utils/trajectory/trajectory.hpp
index f4f9f45935347..cb815f7dd0a0c 100644
--- a/common/motion_utils/include/motion_utils/trajectory/trajectory.hpp
+++ b/common/motion_utils/include/motion_utils/trajectory/trajectory.hpp
@@ -26,10 +26,9 @@
#include
#include
-#include
-
#include
#include
+#include
#include
#include
#include
@@ -93,10 +92,10 @@ void validateNonSharpAngle(
* @return (forward / backward) driving (true / false)
*/
template
-boost::optional isDrivingForward(const T & points)
+std::optional isDrivingForward(const T & points)
{
if (points.size() < 2) {
- return boost::none;
+ return std::nullopt;
}
// check the first point direction
@@ -106,13 +105,13 @@ boost::optional isDrivingForward(const T & points)
return tier4_autoware_utils::isDrivingForward(first_pose, second_pose);
}
-extern template boost::optional
+extern template std::optional
isDrivingForward>(
const std::vector &);
-extern template boost::optional
+extern template std::optional
isDrivingForward>(
const std::vector &);
-extern template boost::optional
+extern template std::optional
isDrivingForward>(
const std::vector &);
@@ -123,10 +122,10 @@ isDrivingForward>
* @return (forward / backward) driving (true, false, none "if velocity is zero")
*/
template
-boost::optional isDrivingForwardWithTwist(const T & points_with_twist)
+std::optional isDrivingForwardWithTwist(const T & points_with_twist)
{
if (points_with_twist.empty()) {
- return boost::none;
+ return std::nullopt;
}
if (points_with_twist.size() == 1) {
if (0.0 < tier4_autoware_utils::getLongitudinalVelocity(points_with_twist.front())) {
@@ -134,20 +133,20 @@ boost::optional isDrivingForwardWithTwist(const T & points_with_twist)
} else if (0.0 > tier4_autoware_utils::getLongitudinalVelocity(points_with_twist.front())) {
return false;
} else {
- return boost::none;
+ return std::nullopt;
}
}
return isDrivingForward(points_with_twist);
}
-extern template boost::optional
+extern template std::optional
isDrivingForwardWithTwist>(
const std::vector &);
-extern template boost::optional
+extern template std::optional
isDrivingForwardWithTwist>(
const std::vector &);
-extern template boost::optional
+extern template std::optional
isDrivingForwardWithTwist>(
const std::vector &);
@@ -209,7 +208,7 @@ removeOverlapPoints
-boost::optional searchZeroVelocityIndex(
+std::optional searchZeroVelocityIndex(
const T & points_with_twist, const size_t src_idx, const size_t dst_idx)
{
try {
@@ -229,7 +228,7 @@ boost::optional searchZeroVelocityIndex(
return {};
}
-extern template boost::optional
+extern template std::optional
searchZeroVelocityIndex>(
const std::vector & points_with_twist,
const size_t src_idx, const size_t dst_idx);
@@ -242,7 +241,7 @@ searchZeroVelocityIndex
-boost::optional searchZeroVelocityIndex(const T & points_with_twist, const size_t src_idx)
+std::optional searchZeroVelocityIndex(const T & points_with_twist, const size_t src_idx)
{
try {
validateNonEmpty(points_with_twist);
@@ -254,7 +253,7 @@ boost::optional searchZeroVelocityIndex(const T & points_with_twist, con
return searchZeroVelocityIndex(points_with_twist, src_idx, points_with_twist.size());
}
-extern template boost::optional
+extern template std::optional
searchZeroVelocityIndex>(
const std::vector & points_with_twist,
const size_t src_idx);
@@ -266,12 +265,12 @@ searchZeroVelocityIndex
-boost::optional searchZeroVelocityIndex(const T & points_with_twist)
+std::optional searchZeroVelocityIndex(const T & points_with_twist)
{
return searchZeroVelocityIndex(points_with_twist, 0, points_with_twist.size());
}
-extern template boost::optional
+extern template std::optional
searchZeroVelocityIndex>(
const std::vector & points_with_twist);
@@ -329,7 +328,7 @@ findNearestIndex>
* @return index of nearest point (index or none if not found)
*/
template
-boost::optional findNearestIndex(
+std::optional findNearestIndex(
const T & points, const geometry_msgs::msg::Pose & pose,
const double max_dist = std::numeric_limits::max(),
const double max_yaw = std::numeric_limits::max())
@@ -363,20 +362,24 @@ boost::optional findNearestIndex(
min_idx = i;
is_nearest_found = true;
}
- return is_nearest_found ? boost::optional(min_idx) : boost::none;
+
+ if (is_nearest_found) {
+ return min_idx;
+ }
+ return std::nullopt;
}
-extern template boost::optional
+extern template std::optional
findNearestIndex>(
const std::vector & points,
const geometry_msgs::msg::Pose & pose, const double max_dist = std::numeric_limits::max(),
const double max_yaw = std::numeric_limits::max());
-extern template boost::optional
+extern template std::optional
findNearestIndex>(
const std::vector & points,
const geometry_msgs::msg::Pose & pose, const double max_dist = std::numeric_limits::max(),
const double max_yaw = std::numeric_limits::max());
-extern template boost::optional
+extern template std::optional
findNearestIndex>(
const std::vector & points,
const geometry_msgs::msg::Pose & pose, const double max_dist = std::numeric_limits::max(),
@@ -507,7 +510,7 @@ findNearestSegmentIndex
-boost::optional findNearestSegmentIndex(
+std::optional findNearestSegmentIndex(
const T & points, const geometry_msgs::msg::Pose & pose,
const double max_dist = std::numeric_limits::max(),
const double max_yaw = std::numeric_limits::max())
@@ -515,7 +518,7 @@ boost::optional findNearestSegmentIndex(
const auto nearest_idx = findNearestIndex(points, pose, max_dist, max_yaw);
if (!nearest_idx) {
- return boost::none;
+ return std::nullopt;
}
if (*nearest_idx == 0) {
@@ -534,17 +537,17 @@ boost::optional findNearestSegmentIndex(
return *nearest_idx;
}
-extern template boost::optional
+extern template std::optional
findNearestSegmentIndex>(
const std::vector & points,
const geometry_msgs::msg::Pose & pose, const double max_dist = std::numeric_limits::max(),
const double max_yaw = std::numeric_limits::max());
-extern template boost::optional
+extern template std::optional
findNearestSegmentIndex>(
const std::vector & points,
const geometry_msgs::msg::Pose & pose, const double max_dist = std::numeric_limits::max(),
const double max_yaw = std::numeric_limits::max());
-extern template boost::optional
+extern template std::optional
findNearestSegmentIndex>(
const std::vector & points,
const geometry_msgs::msg::Pose & pose, const double max_dist = std::numeric_limits::max(),
@@ -998,7 +1001,7 @@ calcCurvatureAndArcLength
-boost::optional calcDistanceToForwardStopPoint(
+std::optional calcDistanceToForwardStopPoint(
const T & points_with_twist, const size_t src_idx = 0)
{
try {
@@ -1011,13 +1014,13 @@ boost::optional calcDistanceToForwardStopPoint(
const auto closest_stop_idx =
searchZeroVelocityIndex(points_with_twist, src_idx, points_with_twist.size());
if (!closest_stop_idx) {
- return boost::none;
+ return std::nullopt;
}
return std::max(0.0, calcSignedArcLength(points_with_twist, src_idx, *closest_stop_idx));
}
-extern template boost::optional
+extern template std::optional
calcDistanceToForwardStopPoint>(
const std::vector & points_with_twist,
const size_t src_idx = 0);
@@ -1032,7 +1035,7 @@ calcDistanceToForwardStopPoint
-boost::optional calcLongitudinalOffsetPoint(
+std::optional calcLongitudinalOffsetPoint(
const T & points, const size_t src_idx, const double offset, const bool throw_exception = false)
{
try {
@@ -1087,15 +1090,15 @@ boost::optional calcLongitudinalOffsetPoint(
return {};
}
-extern template boost::optional
+extern template std::optional
calcLongitudinalOffsetPoint>(
const std::vector & points, const size_t src_idx,
const double offset, const bool throw_exception = false);
-extern template boost::optional
+extern template std::optional
calcLongitudinalOffsetPoint>(
const std::vector & points,
const size_t src_idx, const double offset, const bool throw_exception = false);
-extern template boost::optional
+extern template std::optional
calcLongitudinalOffsetPoint>(
const std::vector & points,
const size_t src_idx, const double offset, const bool throw_exception = false);
@@ -1109,7 +1112,7 @@ calcLongitudinalOffsetPoint
-boost::optional calcLongitudinalOffsetPoint(
+std::optional calcLongitudinalOffsetPoint(
const T & points, const geometry_msgs::msg::Point & src_point, const double offset)
{
try {
@@ -1132,15 +1135,15 @@ boost::optional calcLongitudinalOffsetPoint(
return calcLongitudinalOffsetPoint(points, src_seg_idx, offset + signed_length_src_offset);
}
-extern template boost::optional
+extern template std::optional
calcLongitudinalOffsetPoint>(
const std::vector & points,
const geometry_msgs::msg::Point & src_point, const double offset);
-extern template boost::optional
+extern template std::optional
calcLongitudinalOffsetPoint>(
const std::vector & points,
const geometry_msgs::msg::Point & src_point, const double offset);
-extern template boost::optional
+extern template std::optional
calcLongitudinalOffsetPoint>(
const std::vector & points,
const geometry_msgs::msg::Point & src_point, const double offset);
@@ -1156,7 +1159,7 @@ calcLongitudinalOffsetPoint
-boost::optional calcLongitudinalOffsetPose(
+std::optional calcLongitudinalOffsetPose(
const T & points, const size_t src_idx, const double offset,
const bool set_orientation_from_position_direction = true, const bool throw_exception = false)
{
@@ -1228,17 +1231,17 @@ boost::optional calcLongitudinalOffsetPose(
return {};
}
-extern template boost::optional
+extern template std::optional
calcLongitudinalOffsetPose>(
const std::vector & points, const size_t src_idx,
const double offset, const bool set_orientation_from_position_direction = true,
const bool throw_exception = false);
-extern template boost::optional
+extern template std::optional
calcLongitudinalOffsetPose>(
const std::vector & points,
const size_t src_idx, const double offset,
const bool set_orientation_from_position_direction = true, const bool throw_exception = false);
-extern template boost::optional
+extern template std::optional
calcLongitudinalOffsetPose>(
const std::vector & points,
const size_t src_idx, const double offset,
@@ -1255,7 +1258,7 @@ calcLongitudinalOffsetPose
-boost::optional calcLongitudinalOffsetPose(
+std::optional calcLongitudinalOffsetPose(
const T & points, const geometry_msgs::msg::Point & src_point, const double offset,
const bool set_orientation_from_position_direction = true)
{
@@ -1275,17 +1278,17 @@ boost::optional calcLongitudinalOffsetPose(
set_orientation_from_position_direction);
}
-extern template boost::optional
+extern template std::optional
calcLongitudinalOffsetPose>(
const std::vector & points,
const geometry_msgs::msg::Point & src_point, const double offset,
const bool set_orientation_from_position_direction = true);
-extern template boost::optional
+extern template std::optional
calcLongitudinalOffsetPose>(
const std::vector & points,
const geometry_msgs::msg::Point & src_point, const double offset,
const bool set_orientation_from_position_direction = true);
-extern template boost::optional
+extern template std::optional
calcLongitudinalOffsetPose>(
const std::vector & points,
const geometry_msgs::msg::Point & src_point, const double offset,
@@ -1301,7 +1304,7 @@ calcLongitudinalOffsetPose
-boost::optional insertTargetPoint(
+std::optional insertTargetPoint(
const size_t seg_idx, const geometry_msgs::msg::Point & p_target, T & points,
const double overlap_threshold = 1e-3)
{
@@ -1339,7 +1342,7 @@ boost::optional insertTargetPoint(
geometry_msgs::msg::Pose target_pose;
{
- const auto p_base = is_driving_forward.get() ? p_back : p_front;
+ const auto p_base = is_driving_forward.value() ? p_back : p_front;
const auto pitch = tier4_autoware_utils::calcElevationAngle(p_target, p_base);
const auto yaw = tier4_autoware_utils::calcAzimuthAngle(p_target, p_base);
@@ -1352,7 +1355,7 @@ boost::optional insertTargetPoint(
geometry_msgs::msg::Pose base_pose;
{
- const auto p_base = is_driving_forward.get() ? p_front : p_back;
+ const auto p_base = is_driving_forward.value() ? p_front : p_back;
const auto pitch = tier4_autoware_utils::calcElevationAngle(p_base, p_target);
const auto yaw = tier4_autoware_utils::calcAzimuthAngle(p_base, p_target);
@@ -1361,7 +1364,7 @@ boost::optional insertTargetPoint(
}
if (!overlap_with_front && !overlap_with_back) {
- if (is_driving_forward.get()) {
+ if (is_driving_forward.value()) {
tier4_autoware_utils::setPose(base_pose, points.at(seg_idx));
} else {
tier4_autoware_utils::setPose(base_pose, points.at(seg_idx + 1));
@@ -1377,17 +1380,17 @@ boost::optional insertTargetPoint(
return seg_idx;
}
-extern template boost::optional
+extern template std::optional
insertTargetPoint>(
const size_t seg_idx, const geometry_msgs::msg::Point & p_target,
std::vector & points,
const double overlap_threshold = 1e-3);
-extern template boost::optional
+extern template std::optional
insertTargetPoint>(
const size_t seg_idx, const geometry_msgs::msg::Point & p_target,
std::vector & points,
const double overlap_threshold = 1e-3);
-extern template boost::optional
+extern template std::optional
insertTargetPoint>(
const size_t seg_idx, const geometry_msgs::msg::Point & p_target,
std::vector & points,
@@ -1404,18 +1407,18 @@ insertTargetPoint
* @return index of segment id, where point is inserted
*/
template
-boost::optional insertTargetPoint(
+std::optional insertTargetPoint(
const double insert_point_length, const geometry_msgs::msg::Point & p_target, T & points,
const double overlap_threshold = 1e-3)
{
validateNonEmpty(points);
if (insert_point_length < 0.0) {
- return boost::none;
+ return std::nullopt;
}
// Get Nearest segment index
- boost::optional segment_idx = boost::none;
+ std::optional