diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index d3d9149cd2c8d..f7603af847d1f 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,5 +1,3 @@
-### Copied from .github/CODEOWNERS-manual ###
-
### Automatically generated from package.xml ###
common/autoware_ad_api_specs/** isamu.takagi@tier4.jp ryohsuke.mitsudome@tier4.jp
common/autoware_auto_common/** opensource@apex.ai satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp tomoya.kimura@tier4.jp
@@ -23,6 +21,7 @@ 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
common/kalman_filter/** koji.minoda@tier4.jp takeshi.ishita@tier4.jp yukihiro.saito@tier4.jp
+common/mission_planner_rviz_plugin/** isamu.takagi@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 yoshi.ri@tier4.jp
common/osqp_interface/** fumiya.watanabe@tier4.jp maxime.clement@tier4.jp satoshi.ota@tier4.jp takayuki.murooka@tier4.jp
@@ -32,7 +31,7 @@ common/polar_grid/** yukihiro.saito@tier4.jp
common/qp_interface/** fumiya.watanabe@tier4.jp maxime.clement@tier4.jp satoshi.ota@tier4.jp takayuki.murooka@tier4.jp
common/rtc_manager_rviz_plugin/** taiki.tanaka@tier4.jp tomoya.kimura@tier4.jp
common/signal_processing/** ali.boyali@tier4.jp fumiya.watanabe@tier4.jp kyoichi.sugahara@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp
-common/tensorrt_common/** daisuke.nishimatsu@tier4.jp dan.umeda@tier4.jp manato.hirabayashi@tier4.jp
+common/tensorrt_common/** dan.umeda@tier4.jp manato.hirabayashi@tier4.jp
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
common/tier4_automatic_goal_rviz_plugin/** dawid.moszynski@robotec.ai kyoichi.sugahara@tier4.jp satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp
@@ -55,7 +54,7 @@ common/tier4_traffic_light_rviz_plugin/** satoshi.ota@tier4.jp
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 satoshi.ota@tier4.jp shunsuke.miura@tier4.jp
+common/traffic_light_utils/** kotaro.uetake@tier4.jp satoshi.ota@tier4.jp shunsuke.miura@tier4.jp
common/tvm_utility/** ambroise.vincent@arm.com xinyu.wang@tier4.jp
control/autonomous_emergency_braking/** mamoru.sobue@tier4.jp 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
@@ -76,6 +75,7 @@ control/vehicle_cmd_gate/** takamasa.horibe@tier4.jp tomoya.kimura@tier4.jp
evaluator/diagnostic_converter/** kyoichi.sugahara@tier4.jp maxime.clement@tier4.jp takamasa.horibe@tier4.jp
evaluator/kinematic_evaluator/** dominik.jargot@robotec.ai fumiya.watanabe@tier4.jp satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp
evaluator/localization_evaluator/** dominik.jargot@robotec.ai koji.minoda@tier4.jp
+evaluator/perception_online_evaluator/** fumiya.watanabe@tier4.jp kosuke.takeuchi@tier4.jp kotaro.uetake@tier4.jp kyoichi.sugahara@tier4.jp shunsuke.miura@tier4.jp yoshi.ri@tier4.jp
evaluator/planning_evaluator/** kyoichi.sugahara@tier4.jp maxime.clement@tier4.jp
evaluator/tier4_metrics_rviz_plugin/** kyoichi.sugahara@tier4.jp maxime.clement@tier4.jp satoshi.ota@tier4.jp
launch/tier4_autoware_api_launch/** isamu.takagi@tier4.jp ryohsuke.mitsudome@tier4.jp
@@ -118,9 +118,9 @@ 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/** 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/detected_object_validation/** dai.nguyen@tier4.jp shintaro.tomie@tier4.jp shunsuke.miura@tier4.jp yukihiro.saito@tier4.jp
+perception/detection_by_tracker/** taekjin.lee@tier4.jp yoshi.ri@tier4.jp yukihiro.saito@tier4.jp
+perception/elevation_map_loader/** kosuke.takeuchi@tier4.jp shintaro.tomie@tier4.jp taichi.higashide@tier4.jp
perception/euclidean_cluster/** yukihiro.saito@tier4.jp
perception/ground_segmentation/** abrahammonrroy@yahoo.com dai.nguyen@tier4.jp shunsuke.miura@tier4.jp yukihiro.saito@tier4.jp
perception/image_projection_based_fusion/** dai.nguyen@tier4.jp koji.minoda@tier4.jp kotaro.uetake@tier4.jp shunsuke.miura@tier4.jp tao.zhong@tier4.jp yoshi.ri@tier4.jp yukihiro.saito@tier4.jp
@@ -130,8 +130,8 @@ perception/lidar_apollo_segmentation_tvm_nodes/** ambroise.vincent@arm.com xinyu
perception/lidar_centerpoint/** kenzo.lobos@tier4.jp koji.minoda@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
-perception/multi_object_tracker/** yoshi.ri@tier4.jp yukihiro.saito@tier4.jp
-perception/object_merger/** yoshi.ri@tier4.jp yukihiro.saito@tier4.jp
+perception/multi_object_tracker/** taekjin.lee@tier4.jp yoshi.ri@tier4.jp yukihiro.saito@tier4.jp
+perception/object_merger/** taekjin.lee@tier4.jp yoshi.ri@tier4.jp yukihiro.saito@tier4.jp
perception/object_range_splitter/** yukihiro.saito@tier4.jp
perception/object_velocity_splitter/** satoshi.tanaka@tier4.jp shunsuke.miura@tier4.jp yoshi.ri@tier4.jp
perception/occupancy_grid_map_outlier_filter/** abrahammonrroy@yahoo.com yoshi.ri@tier4.jp yukihiro.saito@tier4.jp
@@ -139,17 +139,17 @@ perception/probabilistic_occupancy_grid_map/** mamoru.sobue@tier4.jp yoshi.ri@ti
perception/radar_crossing_objects_noise_filter/** satoshi.tanaka@tier4.jp shunsuke.miura@tier4.jp taekjin.lee@tier4.jp yoshi.ri@tier4.jp
perception/radar_fusion_to_detected_object/** satoshi.tanaka@tier4.jp shunsuke.miura@tier4.jp taekjin.lee@tier4.jp yoshi.ri@tier4.jp
perception/radar_object_clustering/** satoshi.tanaka@tier4.jp shunsuke.miura@tier4.jp taekjin.lee@tier4.jp yoshi.ri@tier4.jp
-perception/radar_object_tracker/** satoshi.tanaka@tier4.jp yoshi.ri@tier4.jp yukihiro.saito@tier4.jp
+perception/radar_object_tracker/** satoshi.tanaka@tier4.jp taekjin.lee@tier4.jp yoshi.ri@tier4.jp yukihiro.saito@tier4.jp
perception/radar_tracks_msgs_converter/** satoshi.tanaka@tier4.jp shunsuke.miura@tier4.jp taekjin.lee@tier4.jp yoshi.ri@tier4.jp
perception/shape_estimation/** yoshi.ri@tier4.jp yukihiro.saito@tier4.jp
perception/simple_object_merger/** satoshi.tanaka@tier4.jp shunsuke.miura@tier4.jp yoshi.ri@tier4.jp
-perception/tensorrt_classifier/** mingyu.li@tier4.jp
-perception/tensorrt_yolox/** daisuke.nishimatsu@tier4.jp dan.umeda@tier4.jp manato.hirabayashi@tier4.jp
-perception/tracking_object_merger/** yoshi.ri@tier4.jp yukihiro.saito@tier4.jp
+perception/tensorrt_classifier/** kotaro.uetake@tier4.jp shunsuke.miura@tier4.jp
+perception/tensorrt_yolox/** dan.umeda@tier4.jp manato.hirabayashi@tier4.jp
+perception/tracking_object_merger/** taekjin.lee@tier4.jp yoshi.ri@tier4.jp yukihiro.saito@tier4.jp
perception/traffic_light_arbiter/** kenzo.lobos@tier4.jp shunsuke.miura@tier4.jp
perception/traffic_light_classifier/** shunsuke.miura@tier4.jp yukihiro.saito@tier4.jp
-perception/traffic_light_fine_detector/** shunsuke.miura@tier4.jp tao.zhong@tier4.jp
-perception/traffic_light_map_based_detector/** yukihiro.saito@tier4.jp
+perception/traffic_light_fine_detector/** shintaro.tomie@tier4.jp shunsuke.miura@tier4.jp tao.zhong@tier4.jp
+perception/traffic_light_map_based_detector/** shunsuke.miura@tier4.jp yukihiro.saito@tier4.jp
perception/traffic_light_multi_camera_fusion/** shunsuke.miura@tier4.jp tao.zhong@tier4.jp
perception/traffic_light_occlusion_predictor/** shunsuke.miura@tier4.jp tao.zhong@tier4.jp
perception/traffic_light_visualization/** yukihiro.saito@tier4.jp
@@ -186,7 +186,7 @@ planning/costmap_generator/** kosuke.takeuchi@tier4.jp takamasa.horibe@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
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/mission_planner/** isamu.takagi@tier4.jp kosuke.takeuchi@tier4.jp mamoru.sobue@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 satoshi.ota@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
@@ -217,7 +217,7 @@ sensing/radar_scan_to_pointcloud2/** satoshi.tanaka@tier4.jp shunsuke.miura@tier
sensing/radar_static_pointcloud_filter/** satoshi.tanaka@tier4.jp shunsuke.miura@tier4.jp taekjin.lee@tier4.jp yoshi.ri@tier4.jp
sensing/radar_threshold_filter/** satoshi.tanaka@tier4.jp shunsuke.miura@tier4.jp taekjin.lee@tier4.jp yoshi.ri@tier4.jp
sensing/radar_tracks_noise_filter/** satoshi.tanaka@tier4.jp shunsuke.miura@tier4.jp taekjin.lee@tier4.jp yoshi.ri@tier4.jp
-sensing/tier4_pcl_extensions/** ryu.yamamoto@tier4.jp
+sensing/tier4_pcl_extensions/** david.wong@tier4.jp kenzo.lobos@tier4.jp ryu.yamamoto@tier4.jp
sensing/vehicle_velocity_converter/** ryu.yamamoto@tier4.jp
simulator/dummy_perception_publisher/** yukihiro.saito@tier4.jp
simulator/fault_injection/** keisuke.shima@tier4.jp
@@ -232,10 +232,12 @@ system/default_ad_api_helpers/automatic_pose_initializer/** isamu.takagi@tier4.j
system/diagnostic_graph_aggregator/** isamu.takagi@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/duplicated_node_checker/** mamoru.sobue@tier4.jp shumpei.wakabayashi@tier4.jp uken.ryu@tier4.jp
system/emergency_handler/** makoto.kurihara@tier4.jp ryuta.kambe@tier4.jp tetsuhiro.kawaguchi@tier4.jp
+system/hazard_status_converter/** isamu.takagi@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/mrm_handler/** makoto.kurihara@tier4.jp ryuta.kambe@tier4.jp tetsuhiro.kawaguchi@tier4.jp
system/system_error_monitor/** fumihito.ito@tier4.jp
system/system_monitor/** fumihito.ito@tier4.jp tetsuhiro.kawaguchi@tier4.jp
system/topic_state_monitor/** ryohsuke.mitsudome@tier4.jp
@@ -245,3 +247,5 @@ vehicle/external_cmd_converter/** takamasa.horibe@tier4.jp
vehicle/raw_vehicle_cmd_converter/** makoto.kurihara@tier4.jp taiki.tanaka@tier4.jp takamasa.horibe@tier4.jp
vehicle/steer_offset_estimator/** taiki.tanaka@tier4.jp
vehicle/vehicle_info_util/** shumpei.wakabayashi@tier4.jp taiki.tanaka@tier4.jp tomoya.kimura@tier4.jp
+
+### Copied from .github/CODEOWNERS-manual ###
diff --git a/.github/workflows/build-and-test-differential.yaml b/.github/workflows/build-and-test-differential.yaml
index e9db0d140d947..e4231a12a6add 100644
--- a/.github/workflows/build-and-test-differential.yaml
+++ b/.github/workflows/build-and-test-differential.yaml
@@ -24,7 +24,6 @@ jobs:
rosdistro:
- humble
container-suffix:
- - ""
- -cuda
include:
- rosdistro: humble
@@ -74,38 +73,3 @@ jobs:
- name: Check disk space after build
run: df -h
-
- clang-tidy-differential:
- runs-on: [self-hosted, linux, X64]
- container: ghcr.io/autowarefoundation/autoware-universe:humble-latest-cuda
- needs: build-and-test-differential
- steps:
- - name: Check out repository
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
-
- - name: Remove exec_depend
- uses: autowarefoundation/autoware-github-actions/remove-exec-depend@v1
-
- - name: Get modified packages
- id: get-modified-packages
- uses: autowarefoundation/autoware-github-actions/get-modified-packages@v1
-
- - name: Get modified files
- id: get-modified-files
- uses: tj-actions/changed-files@v35
- with:
- files: |
- **/*.cpp
- **/*.hpp
-
- - name: Run clang-tidy
- if: ${{ steps.get-modified-files.outputs.all_changed_files != '' }}
- uses: autowarefoundation/autoware-github-actions/clang-tidy@v1
- with:
- rosdistro: humble
- target-packages: ${{ steps.get-modified-packages.outputs.modified-packages }}
- target-files: ${{ steps.get-modified-files.outputs.all_changed_files }}
- clang-tidy-config-url: https://raw.githubusercontent.com/autowarefoundation/autoware/main/.clang-tidy
- build-depends-repos: build_depends.repos
diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml
index 7568c89908fd7..a6eea766cd80d 100644
--- a/.github/workflows/build-and-test.yaml
+++ b/.github/workflows/build-and-test.yaml
@@ -9,7 +9,7 @@ on:
jobs:
build-and-test:
if: ${{ github.event_name != 'push' || github.ref_name == github.event.repository.default_branch }}
- runs-on: ubuntu-latest
+ runs-on: [self-hosted, linux, X64]
container: ${{ matrix.container }}${{ matrix.container-suffix }}
strategy:
fail-fast: false
@@ -27,14 +27,6 @@ jobs:
- name: Check out repository
uses: actions/checkout@v3
- - name: Free disk space (Ubuntu)
- uses: jlumbroso/free-disk-space@v1.2.0
- with:
- tool-cache: false
- dotnet: false
- swap-storage: false
- large-packages: false
-
- name: Remove exec_depend
uses: autowarefoundation/autoware-github-actions/remove-exec-depend@v1
diff --git a/.github/workflows/json-schema-check.yaml b/.github/workflows/json-schema-check.yaml
index 332d8eebaa518..77ce4576b4952 100644
--- a/.github/workflows/json-schema-check.yaml
+++ b/.github/workflows/json-schema-check.yaml
@@ -2,13 +2,26 @@ name: json-schema-check
on:
pull_request:
- paths:
- - "**/schema/*.schema.json"
- - "**/config/*.param.yaml"
workflow_dispatch:
jobs:
+ check-if-relevant-files-changed:
+ runs-on: ubuntu-latest
+ outputs:
+ run-check: ${{ steps.paths_filter.outputs.json_or_yaml }}
+ steps:
+ - uses: actions/checkout@v3
+ - uses: dorny/paths-filter@v3
+ id: paths_filter
+ with:
+ filters: |
+ json_or_yaml:
+ - '**/schema/*.schema.json'
+ - '**/config/*.param.yaml'
+
json-schema-check:
+ needs: check-if-relevant-files-changed
+ if: needs.check-if-relevant-files-changed.outputs.run-check == 'true'
runs-on: ubuntu-latest
steps:
- name: Check out repository
@@ -16,3 +29,11 @@ jobs:
- name: Run json-schema-check
uses: autowarefoundation/autoware-github-actions/json-schema-check@v1
+
+ no-relevant-changes:
+ needs: check-if-relevant-files-changed
+ if: needs.check-if-relevant-files-changed.outputs.run-check == 'false'
+ runs-on: ubuntu-latest
+ steps:
+ - name: Dummy step
+ run: echo "No relevant changes, passing check"
diff --git a/README.md b/README.md
index d429cc035df1d..23d0b172554fd 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,16 @@
-# autoware.universe
+# Autoware Universe
-For Autoware's general documentation, see [Autoware Documentation](https://autowarefoundation.github.io/autoware-documentation/).
+## Welcome to Autoware Universe
-For detailed documents of Autoware Universe components, see [Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/).
+Autoware Universe serves as a foundational pillar within the Autoware ecosystem, playing a critical role in enhancing the core functionalities of autonomous driving technologies.
+This repository is a pivotal element of the Autoware Core/Universe concept, managing a wide array of packages that significantly extend the capabilities of autonomous vehicles.
----
+![autoware_universe_front](docs/assets/images/autoware_universe_front.png)
+
+## Getting Started
+
+To dive into the vast world of Autoware and understand how Autoware Universe fits into the bigger picture, we recommend starting with the [Autoware Documentation](https://autowarefoundation.github.io/autoware-documentation/). This resource provides a thorough overview of the Autoware ecosystem, guiding you through its components, functionalities, and how to get started with development.
+
+### Explore Autoware Universe documentation
+
+For those looking to explore the specifics of Autoware Universe components, the [Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/), deployed with MKDocs, offers detailed insights.
diff --git a/common/autoware_overlay_rviz_plugin/autoware_overlay_rviz_plugin/package.xml b/common/autoware_overlay_rviz_plugin/autoware_overlay_rviz_plugin/package.xml
index cc0ada00fa41b..da075b2648937 100644
--- a/common/autoware_overlay_rviz_plugin/autoware_overlay_rviz_plugin/package.xml
+++ b/common/autoware_overlay_rviz_plugin/autoware_overlay_rviz_plugin/package.xml
@@ -23,7 +23,7 @@
ament_lint_auto
autoware_lint_common
- ament_cmake
+ ament_cmake_auto
ament_cmake
diff --git a/common/component_interface_specs/CMakeLists.txt b/common/component_interface_specs/CMakeLists.txt
index b519a0ddce86a..146f3688513cd 100644
--- a/common/component_interface_specs/CMakeLists.txt
+++ b/common/component_interface_specs/CMakeLists.txt
@@ -4,26 +4,8 @@ project(component_interface_specs)
find_package(autoware_cmake REQUIRED)
autoware_package()
-include_directories(
- include
- SYSTEM
- ${rclcpp_INCLUDE_DIRS}
- ${rosidl_runtime_cpp_INCLUDE_DIRS}
- ${rcl_INCLUDE_DIRS}
- ${autoware_adapi_v1_msgs_INCLUDE_DIRS}
- ${autoware_auto_planning_msgs_INCLUDE_DIRS}
- ${autoware_planning_msgs_INCLUDE_DIRS}
- ${autoware_auto_vehicle_msgs_INCLUDE_DIRS}
- ${tier4_control_msgs_INCLUDE_DIRS}
- ${nav_msgs_INCLUDE_DIRS}
- ${tier4_system_msgs_INCLUDE_DIRS}
- ${tier4_vehicle_msgs_INCLUDE_DIRS}
- ${autoware_auto_perception_msgs_INCLUDE_DIRS}
- ${tier4_map_msgs_INCLUDE_DIRS}
-)
-
if(BUILD_TESTING)
- ament_add_ros_isolated_gtest(test_component_interface_specs
+ ament_auto_add_gtest(gtest_${PROJECT_NAME}
test/gtest_main.cpp
test/test_planning.cpp
test/test_control.cpp
@@ -33,9 +15,6 @@ if(BUILD_TESTING)
test/test_perception.cpp
test/test_vehicle.cpp
)
- target_include_directories(test_component_interface_specs
- PRIVATE include
- )
endif()
ament_auto_package()
diff --git a/common/component_interface_specs/include/component_interface_specs/planning.hpp b/common/component_interface_specs/include/component_interface_specs/planning.hpp
index 567ea9d69f2a7..9efd8c871f68f 100644
--- a/common/component_interface_specs/include/component_interface_specs/planning.hpp
+++ b/common/component_interface_specs/include/component_interface_specs/planning.hpp
@@ -17,77 +17,48 @@
#include
-#include
-#include
-#include
-#include
#include
#include
+#include
+#include
+#include
+#include
namespace planning_interface
{
-struct SetRoutePoints
+struct SetLaneletRoute
{
- using Service = autoware_adapi_v1_msgs::srv::SetRoutePoints;
- static constexpr char name[] = "/planning/mission_planning/set_route_points";
+ using Service = tier4_planning_msgs::srv::SetLaneletRoute;
+ static constexpr char name[] = "/planning/mission_planning/route_selector/main/set_lanelet_route";
};
-struct SetRoute
+struct SetWaypointRoute
{
- using Service = autoware_adapi_v1_msgs::srv::SetRoute;
- static constexpr char name[] = "/planning/mission_planning/set_route";
-};
-
-struct ChangeRoutePoints
-{
- using Service = autoware_adapi_v1_msgs::srv::SetRoutePoints;
- static constexpr char name[] = "/planning/mission_planning/change_route_points";
-};
-
-struct ChangeRoute
-{
- using Service = autoware_adapi_v1_msgs::srv::SetRoute;
- static constexpr char name[] = "/planning/mission_planning/change_route";
+ using Service = tier4_planning_msgs::srv::SetWaypointRoute;
+ static constexpr char name[] =
+ "/planning/mission_planning/route_selector/main/set_waypoint_route";
};
struct ClearRoute
{
- using Service = autoware_adapi_v1_msgs::srv::ClearRoute;
- static constexpr char name[] = "/planning/mission_planning/clear_route";
+ using Service = tier4_planning_msgs::srv::ClearRoute;
+ static constexpr char name[] = "/planning/mission_planning/route_selector/main/clear_route";
};
struct RouteState
{
- using Message = autoware_adapi_v1_msgs::msg::RouteState;
- static constexpr char name[] = "/planning/mission_planning/route_state";
- static constexpr size_t depth = 1;
- static constexpr auto reliability = RMW_QOS_POLICY_RELIABILITY_RELIABLE;
- static constexpr auto durability = RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL;
-};
-
-struct Route
-{
- using Message = autoware_planning_msgs::msg::LaneletRoute;
- static constexpr char name[] = "/planning/mission_planning/route";
- static constexpr size_t depth = 1;
- static constexpr auto reliability = RMW_QOS_POLICY_RELIABILITY_RELIABLE;
- static constexpr auto durability = RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL;
-};
-
-struct NormalRoute
-{
- using Message = autoware_planning_msgs::msg::LaneletRoute;
- static constexpr char name[] = "/planning/mission_planning/normal_route";
+ using Message = tier4_planning_msgs::msg::RouteState;
+ static constexpr char name[] = "/planning/mission_planning/route_selector/main/state";
static constexpr size_t depth = 1;
static constexpr auto reliability = RMW_QOS_POLICY_RELIABILITY_RELIABLE;
static constexpr auto durability = RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL;
};
-struct MrmRoute
+struct LaneletRoute
{
using Message = autoware_planning_msgs::msg::LaneletRoute;
- static constexpr char name[] = "/planning/mission_planning/mrm_route";
+ static constexpr char name[] = "/planning/mission_planning/route_selector/main/route";
static constexpr size_t depth = 1;
static constexpr auto reliability = RMW_QOS_POLICY_RELIABILITY_RELIABLE;
static constexpr auto durability = RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL;
diff --git a/common/component_interface_specs/package.xml b/common/component_interface_specs/package.xml
index 67279d0ae2b7f..1ad5f410a814a 100644
--- a/common/component_interface_specs/package.xml
+++ b/common/component_interface_specs/package.xml
@@ -9,14 +9,8 @@
Apache License 2.0
ament_cmake_auto
- ament_cmake_core
- ament_cmake_export_dependencies
- ament_cmake_test
autoware_cmake
- ament_cmake_core
- ament_cmake_test
-
autoware_adapi_v1_msgs
autoware_auto_perception_msgs
autoware_auto_planning_msgs
@@ -28,9 +22,11 @@
rosidl_runtime_cpp
tier4_control_msgs
tier4_map_msgs
+ tier4_planning_msgs
tier4_system_msgs
tier4_vehicle_msgs
- ament_cmake_ros
+
+ ament_cmake_gtest
ament_lint_auto
autoware_lint_common
diff --git a/common/component_interface_specs/test/test_planning.cpp b/common/component_interface_specs/test/test_planning.cpp
index 8c504cb119854..c9cf353de5f34 100644
--- a/common/component_interface_specs/test/test_planning.cpp
+++ b/common/component_interface_specs/test/test_planning.cpp
@@ -27,26 +27,8 @@ TEST(planning, interface)
}
{
- using planning_interface::Route;
- Route route;
- size_t depth = 1;
- EXPECT_EQ(route.depth, depth);
- EXPECT_EQ(route.reliability, RMW_QOS_POLICY_RELIABILITY_RELIABLE);
- EXPECT_EQ(route.durability, RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL);
- }
-
- {
- using planning_interface::NormalRoute;
- NormalRoute route;
- size_t depth = 1;
- EXPECT_EQ(route.depth, depth);
- EXPECT_EQ(route.reliability, RMW_QOS_POLICY_RELIABILITY_RELIABLE);
- EXPECT_EQ(route.durability, RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL);
- }
-
- {
- using planning_interface::MrmRoute;
- MrmRoute route;
+ using planning_interface::LaneletRoute;
+ LaneletRoute route;
size_t depth = 1;
EXPECT_EQ(route.depth, depth);
EXPECT_EQ(route.reliability, RMW_QOS_POLICY_RELIABILITY_RELIABLE);
diff --git a/common/mission_planner_rviz_plugin/CMakeLists.txt b/common/mission_planner_rviz_plugin/CMakeLists.txt
new file mode 100644
index 0000000000000..2b06e6db3e70d
--- /dev/null
+++ b/common/mission_planner_rviz_plugin/CMakeLists.txt
@@ -0,0 +1,23 @@
+cmake_minimum_required(VERSION 3.14)
+project(mission_planner_rviz_plugin)
+
+find_package(autoware_cmake REQUIRED)
+autoware_package()
+
+find_package(Qt5 REQUIRED Core Widgets)
+set(QT_LIBRARIES Qt5::Widgets)
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+ament_auto_add_library(${PROJECT_NAME} SHARED
+ src/mrm_goal.cpp
+ src/route_selector_panel.cpp
+)
+
+target_link_libraries(${PROJECT_NAME}
+ ${QT_LIBRARIES}
+)
+
+pluginlib_export_plugin_description_file(rviz_common plugins/plugin_description.xml)
+
+ament_auto_package()
diff --git a/common/mission_planner_rviz_plugin/README.md b/common/mission_planner_rviz_plugin/README.md
new file mode 100644
index 0000000000000..59d36a0a2f840
--- /dev/null
+++ b/common/mission_planner_rviz_plugin/README.md
@@ -0,0 +1,18 @@
+# mission_planner_rviz_plugin
+
+## MrmGoalTool
+
+This is a copy of `rviz_default_plugins::tools::GoalTool`. Used together with the RouteSelectorPanel to set the MRM route.
+After adding the tool, change the topic name to `/rviz/route_selector/mrm/goal` from the topic property panel in rviz.
+
+## RouteSelectorPanel
+
+This panel shows the main and mrm route state in the route_selector and the route states in the mission_planner.
+Additionally, it provides clear and set functions for each main route and mrm route.
+
+| Trigger | Action |
+| -------------------------------------- | ------------------------------------------------------------------------ |
+| main route clear button | call `/planning/mission_planning/route_selector/main/clear_route` |
+| mrm route clear button | call `/planning/mission_planning/route_selector/mrm/clear_route` |
+| `/rviz/route_selector/main/goal` topic | call `/planning/mission_planning/route_selector/main/set_waypoint_route` |
+| `/rviz/route_selector/mrm/goal` topic | call `/planning/mission_planning/route_selector/mrm/set_waypoint_route` |
diff --git a/common/mission_planner_rviz_plugin/package.xml b/common/mission_planner_rviz_plugin/package.xml
new file mode 100644
index 0000000000000..e45cf2739f260
--- /dev/null
+++ b/common/mission_planner_rviz_plugin/package.xml
@@ -0,0 +1,29 @@
+
+
+
+ mission_planner_rviz_plugin
+ 0.0.0
+ The mission_planner_rviz_plugin package
+ Takagi, Isamu
+ Apache License 2.0
+
+ ament_cmake_auto
+ autoware_cmake
+
+ geometry_msgs
+ libqt5-core
+ libqt5-gui
+ libqt5-widgets
+ rclcpp
+ rviz_common
+ rviz_default_plugins
+ tier4_planning_msgs
+
+ ament_lint_auto
+ autoware_lint_common
+
+
+ ament_cmake
+
+
+
diff --git a/common/mission_planner_rviz_plugin/plugins/plugin_description.xml b/common/mission_planner_rviz_plugin/plugins/plugin_description.xml
new file mode 100644
index 0000000000000..c8285fcc604d7
--- /dev/null
+++ b/common/mission_planner_rviz_plugin/plugins/plugin_description.xml
@@ -0,0 +1,8 @@
+
+
+ MrmGoalTool
+
+
+ RouteSelectorPanel
+
+
diff --git a/common/mission_planner_rviz_plugin/src/mrm_goal.cpp b/common/mission_planner_rviz_plugin/src/mrm_goal.cpp
new file mode 100644
index 0000000000000..ef5529abfb4a7
--- /dev/null
+++ b/common/mission_planner_rviz_plugin/src/mrm_goal.cpp
@@ -0,0 +1,34 @@
+// Copyright 2024 The Autoware Contributors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "mrm_goal.hpp"
+
+namespace rviz_plugins
+{
+
+MrmGoalTool::MrmGoalTool()
+{
+ shortcut_key_ = 'm';
+}
+
+void MrmGoalTool::onInitialize()
+{
+ GoalTool::onInitialize();
+ setName("MRM Goal Pose");
+}
+
+} // namespace rviz_plugins
+
+#include
+PLUGINLIB_EXPORT_CLASS(rviz_plugins::MrmGoalTool, rviz_common::Tool)
diff --git a/common/mission_planner_rviz_plugin/src/mrm_goal.hpp b/common/mission_planner_rviz_plugin/src/mrm_goal.hpp
new file mode 100644
index 0000000000000..e16b0abf0bab3
--- /dev/null
+++ b/common/mission_planner_rviz_plugin/src/mrm_goal.hpp
@@ -0,0 +1,34 @@
+// Copyright 2024 The Autoware Contributors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef MRM_GOAL_HPP_
+#define MRM_GOAL_HPP_
+
+#include
+
+namespace rviz_plugins
+{
+
+class MrmGoalTool : public rviz_default_plugins::tools::GoalTool
+{
+ Q_OBJECT
+
+public:
+ MrmGoalTool();
+ void onInitialize() override;
+};
+
+} // namespace rviz_plugins
+
+#endif // MRM_GOAL_HPP_
diff --git a/common/mission_planner_rviz_plugin/src/route_selector_panel.cpp b/common/mission_planner_rviz_plugin/src/route_selector_panel.cpp
new file mode 100644
index 0000000000000..b4b376b1e76ec
--- /dev/null
+++ b/common/mission_planner_rviz_plugin/src/route_selector_panel.cpp
@@ -0,0 +1,148 @@
+// Copyright 2024 The Autoware Contributors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "route_selector_panel.hpp"
+
+#include
+#include
+
+#include
+#include
+
+namespace rviz_plugins
+{
+
+QString to_string_state(const RouteState & state)
+{
+ // clang-format off
+ switch (state.state) {
+ case RouteState::UNKNOWN: return "unknown";
+ case RouteState::INITIALIZING: return "initializing";
+ case RouteState::UNSET: return "unset";
+ case RouteState::ROUTING: return "routing";
+ case RouteState::SET: return "set";
+ case RouteState::REROUTING: return "rerouting";
+ case RouteState::ARRIVED: return "arrived";
+ case RouteState::ABORTED: return "aborted";
+ case RouteState::INTERRUPTED: return "interrupted";
+ default: return "-----";
+ }
+ // clang-format on
+}
+
+RouteSelectorPanel::RouteSelectorPanel(QWidget * parent) : rviz_common::Panel(parent)
+{
+ main_state_ = new QLabel("unknown");
+ main_clear_ = new QPushButton("clear");
+ mrm_state_ = new QLabel("unknown");
+ mrm_clear_ = new QPushButton("clear");
+ planner_state_ = new QLabel("unknown");
+
+ connect(main_clear_, &QPushButton::clicked, this, &RouteSelectorPanel::onMainClear);
+ connect(mrm_clear_, &QPushButton::clicked, this, &RouteSelectorPanel::onMrmClear);
+
+ const auto layout = new QGridLayout();
+ setLayout(layout);
+ layout->addWidget(new QLabel("main"), 0, 0);
+ layout->addWidget(main_state_, 0, 1);
+ layout->addWidget(main_clear_, 0, 2);
+ layout->addWidget(new QLabel("mrm"), 1, 0);
+ layout->addWidget(mrm_state_, 1, 1);
+ layout->addWidget(mrm_clear_, 1, 2);
+ layout->addWidget(new QLabel("planner"), 2, 0);
+ layout->addWidget(planner_state_, 2, 1);
+}
+
+void RouteSelectorPanel::onInitialize()
+{
+ auto lock = getDisplayContext()->getRosNodeAbstraction().lock();
+ auto node = lock->get_raw_node();
+
+ const auto durable_qos = rclcpp::QoS(1).transient_local();
+
+ sub_main_goal_ = node->create_subscription(
+ "/rviz/route_selector/main/goal", rclcpp::QoS(1),
+ std::bind(&RouteSelectorPanel::onMainGoal, this, std::placeholders::_1));
+ sub_mrm_goal_ = node->create_subscription(
+ "/rviz/route_selector/mrm/goal", rclcpp::QoS(1),
+ std::bind(&RouteSelectorPanel::onMrmGoal, this, std::placeholders::_1));
+ sub_main_state_ = node->create_subscription(
+ "/planning/mission_planning/route_selector/main/state", durable_qos,
+ std::bind(&RouteSelectorPanel::onMainState, this, std::placeholders::_1));
+ sub_mrm_state_ = node->create_subscription(
+ "/planning/mission_planning/route_selector/mrm/state", durable_qos,
+ std::bind(&RouteSelectorPanel::onMrmState, this, std::placeholders::_1));
+ sub_planner_state_ = node->create_subscription(
+ "/planning/mission_planning/state", durable_qos,
+ std::bind(&RouteSelectorPanel::onPlannerState, this, std::placeholders::_1));
+
+ cli_main_clear_ =
+ node->create_client("/planning/mission_planning/route_selector/main/clear_route");
+ cli_mrm_clear_ =
+ node->create_client("/planning/mission_planning/route_selector/mrm/clear_route");
+ cli_main_set_waypoint_ = node->create_client(
+ "/planning/mission_planning/route_selector/main/set_waypoint_route");
+ cli_mrm_set_waypoint_ = node->create_client(
+ "/planning/mission_planning/route_selector/mrm/set_waypoint_route");
+}
+
+void RouteSelectorPanel::onMainGoal(const PoseStamped::ConstSharedPtr msg)
+{
+ const auto req = std::make_shared();
+ req->header = msg->header;
+ req->goal_pose = msg->pose;
+ req->allow_modification = true;
+ cli_main_set_waypoint_->async_send_request(req);
+}
+
+void RouteSelectorPanel::onMrmGoal(const PoseStamped::ConstSharedPtr msg)
+{
+ const auto req = std::make_shared();
+ req->header = msg->header;
+ req->goal_pose = msg->pose;
+ req->allow_modification = true;
+ cli_mrm_set_waypoint_->async_send_request(req);
+}
+
+void RouteSelectorPanel::onMainState(RouteState::ConstSharedPtr msg)
+{
+ main_state_->setText(to_string_state(*msg));
+}
+
+void RouteSelectorPanel::onMrmState(RouteState::ConstSharedPtr msg)
+{
+ mrm_state_->setText(to_string_state(*msg));
+}
+
+void RouteSelectorPanel::onPlannerState(RouteState::ConstSharedPtr msg)
+{
+ planner_state_->setText(to_string_state(*msg));
+}
+
+void RouteSelectorPanel::onMainClear()
+{
+ const auto req = std::make_shared();
+ cli_main_clear_->async_send_request(req);
+}
+
+void RouteSelectorPanel::onMrmClear()
+{
+ const auto req = std::make_shared();
+ cli_mrm_clear_->async_send_request(req);
+}
+
+} // namespace rviz_plugins
+
+#include
+PLUGINLIB_EXPORT_CLASS(rviz_plugins::RouteSelectorPanel, rviz_common::Panel)
diff --git a/common/mission_planner_rviz_plugin/src/route_selector_panel.hpp b/common/mission_planner_rviz_plugin/src/route_selector_panel.hpp
new file mode 100644
index 0000000000000..99101730661e0
--- /dev/null
+++ b/common/mission_planner_rviz_plugin/src/route_selector_panel.hpp
@@ -0,0 +1,75 @@
+// Copyright 2024 The Autoware Contributors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef ROUTE_SELECTOR_PANEL_HPP_
+#define ROUTE_SELECTOR_PANEL_HPP_
+
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+
+namespace rviz_plugins
+{
+
+using geometry_msgs::msg::PoseStamped;
+using tier4_planning_msgs::msg::RouteState;
+using tier4_planning_msgs::srv::ClearRoute;
+using tier4_planning_msgs::srv::SetWaypointRoute;
+
+class RouteSelectorPanel : public rviz_common::Panel
+{
+ Q_OBJECT
+
+public:
+ explicit RouteSelectorPanel(QWidget * parent = nullptr);
+ void onInitialize() override;
+
+private:
+ QLabel * main_state_;
+ QLabel * mrm_state_;
+ QLabel * planner_state_;
+ QPushButton * main_clear_;
+ QPushButton * mrm_clear_;
+
+ rclcpp::Subscription::SharedPtr sub_main_goal_;
+ rclcpp::Subscription::SharedPtr sub_mrm_goal_;
+ void onMainGoal(const PoseStamped::ConstSharedPtr msg);
+ void onMrmGoal(const PoseStamped::ConstSharedPtr msg);
+
+ rclcpp::Subscription::SharedPtr sub_main_state_;
+ rclcpp::Subscription::SharedPtr sub_mrm_state_;
+ rclcpp::Subscription::SharedPtr sub_planner_state_;
+ void onMainState(RouteState::ConstSharedPtr msg);
+ void onMrmState(RouteState::ConstSharedPtr msg);
+ void onPlannerState(RouteState::ConstSharedPtr msg);
+
+ rclcpp::Client::SharedPtr cli_main_clear_;
+ rclcpp::Client::SharedPtr cli_mrm_clear_;
+ rclcpp::Client::SharedPtr cli_main_set_waypoint_;
+ rclcpp::Client::SharedPtr cli_mrm_set_waypoint_;
+
+private Q_SLOTS:
+ void onMainClear();
+ void onMrmClear();
+};
+
+} // namespace rviz_plugins
+
+#endif // ROUTE_SELECTOR_PANEL_HPP_
diff --git a/common/tensorrt_common/package.xml b/common/tensorrt_common/package.xml
index 7d3995f93f7fe..f5a3896b55881 100644
--- a/common/tensorrt_common/package.xml
+++ b/common/tensorrt_common/package.xml
@@ -6,7 +6,6 @@
Taichi Higashide
Daisuke Nishimatsu
- Daisuke Nishimatsu
Dan Umeda
Manato Hirabayashi
diff --git a/common/tier4_autoware_utils/include/tier4_autoware_utils/geometry/boost_geometry.hpp b/common/tier4_autoware_utils/include/tier4_autoware_utils/geometry/boost_geometry.hpp
index 04bcfbacbbc17..d986d0f23fc85 100644
--- a/common/tier4_autoware_utils/include/tier4_autoware_utils/geometry/boost_geometry.hpp
+++ b/common/tier4_autoware_utils/include/tier4_autoware_utils/geometry/boost_geometry.hpp
@@ -18,6 +18,7 @@
#include
#include
#include
+#include
#define EIGEN_MPL2_ONLY
#include
@@ -98,5 +99,6 @@ BOOST_GEOMETRY_REGISTER_POINT_2D( // NOLIN
tier4_autoware_utils::Point2d, double, cs::cartesian, x(), y()) // NOLINT
BOOST_GEOMETRY_REGISTER_POINT_3D( // NOLINT
tier4_autoware_utils::Point3d, double, cs::cartesian, x(), y(), z()) // NOLINT
+BOOST_GEOMETRY_REGISTER_RING(tier4_autoware_utils::LinearRing2d) // NOLINT
#endif // TIER4_AUTOWARE_UTILS__GEOMETRY__BOOST_GEOMETRY_HPP_
diff --git a/common/traffic_light_utils/package.xml b/common/traffic_light_utils/package.xml
index 37b4d46ce356a..7adb856c3c447 100644
--- a/common/traffic_light_utils/package.xml
+++ b/common/traffic_light_utils/package.xml
@@ -4,7 +4,7 @@
traffic_light_utils
0.1.0
The traffic_light_utils package
- Mingyu Li
+ Kotaro Uetake
Shunsuke Miura
Satoshi Ota
Apache License 2.0
diff --git a/control/control_validator/src/utils.cpp b/control/control_validator/src/utils.cpp
index fa8261e9c3f95..fab8b9f6f888b 100644
--- a/control/control_validator/src/utils.cpp
+++ b/control/control_validator/src/utils.cpp
@@ -104,10 +104,10 @@ Trajectory alignTrajectoryWithReferenceTrajectory(
// If first point of predicted_trajectory is in front of start of trajectory, erase points which
// are in front of trajectory start point and insert pNew along the predicted_trajectory
- // predicted_trajectory: p1-----p2-----p3----//------pN
+ // predicted_trajectory: p1-----p2-----p3----//------pN
// trajectory: t1--------//------tN
// ↓
- // predicted_trajectory: pNew--p3----//------pN
+ // predicted_trajectory: pNew--p3----//------pN
// trajectory: t1--------//------tN
auto predicted_trajectory_point_removed = removeFrontTrajectoryPoint(
trajectory_points, modified_trajectory_points, predicted_trajectory_points);
@@ -119,7 +119,7 @@ Trajectory alignTrajectoryWithReferenceTrajectory(
// If last point of predicted_trajectory is behind of end of trajectory, erase points which are
// behind trajectory last point and insert pNew along the predicted_trajectory
- // predicted_trajectory: p1-----//------pN-2-----pN-1-----pN
+ // predicted_trajectory: p1-----//------pN-2-----pN-1-----pN
// trajectory: t1-----//-----tN-1--tN
// ↓
// predicted_trajectory: p1-----//------pN-2-pNew
diff --git a/control/joy_controller/README.md b/control/joy_controller/README.md
index b8ee8ad79a33d..4674ebdadb51d 100644
--- a/control/joy_controller/README.md
+++ b/control/joy_controller/README.md
@@ -4,6 +4,21 @@
`joy_controller` is the package to convert a joy msg to autoware commands (e.g. steering wheel, shift, turn signal, engage) for a vehicle.
+## Usage
+
+### ROS 2 launch
+
+```bash
+# With default config (ds4)
+ros2 launch joy_controller joy_controller.launch.xml
+
+# Default config but select from the existing parameter files
+ros2 launch joy_controller joy_controller_param_selection.launch.xml joy_type:=ds4 # or g29, p65, xbox
+
+# Override the param file
+ros2 launch joy_controller joy_controller.launch.xml config_file:=/path/to/your/param.yaml
+```
+
## Input / Output
### Input topics
diff --git a/control/joy_controller/config/joy_controller.param.yaml b/control/joy_controller/config/joy_controller_ds4.param.yaml
similarity index 92%
rename from control/joy_controller/config/joy_controller.param.yaml
rename to control/joy_controller/config/joy_controller_ds4.param.yaml
index c9fe348867e68..73a5d028985c5 100644
--- a/control/joy_controller/config/joy_controller.param.yaml
+++ b/control/joy_controller/config/joy_controller_ds4.param.yaml
@@ -1,6 +1,6 @@
/**:
ros__parameters:
- joy_type: $(var joy_type)
+ joy_type: DS4
update_rate: 10.0
accel_ratio: 3.0
brake_ratio: 5.0
diff --git a/control/joy_controller/config/joy_controller_g29.param.yaml b/control/joy_controller/config/joy_controller_g29.param.yaml
new file mode 100644
index 0000000000000..c28a6c01d1326
--- /dev/null
+++ b/control/joy_controller/config/joy_controller_g29.param.yaml
@@ -0,0 +1,16 @@
+/**:
+ ros__parameters:
+ joy_type: G29
+ update_rate: 10.0
+ accel_ratio: 3.0
+ brake_ratio: 5.0
+ steer_ratio: 0.5
+ steering_angle_velocity: 0.1
+ accel_sensitivity: 1.0
+ brake_sensitivity: 1.0
+ control_command:
+ raw_control: false
+ velocity_gain: 3.0
+ max_forward_velocity: 20.0
+ max_backward_velocity: 3.0
+ backward_accel_ratio: 1.0
diff --git a/control/joy_controller/config/joy_controller_p65.param.yaml b/control/joy_controller/config/joy_controller_p65.param.yaml
new file mode 100644
index 0000000000000..4b13348f95fb6
--- /dev/null
+++ b/control/joy_controller/config/joy_controller_p65.param.yaml
@@ -0,0 +1,16 @@
+/**:
+ ros__parameters:
+ joy_type: P65
+ update_rate: 10.0
+ accel_ratio: 3.0
+ brake_ratio: 5.0
+ steer_ratio: 0.5
+ steering_angle_velocity: 0.1
+ accel_sensitivity: 1.0
+ brake_sensitivity: 1.0
+ control_command:
+ raw_control: false
+ velocity_gain: 3.0
+ max_forward_velocity: 20.0
+ max_backward_velocity: 3.0
+ backward_accel_ratio: 1.0
diff --git a/control/joy_controller/config/joy_controller_xbox.param.yaml b/control/joy_controller/config/joy_controller_xbox.param.yaml
new file mode 100644
index 0000000000000..7b45c2c164454
--- /dev/null
+++ b/control/joy_controller/config/joy_controller_xbox.param.yaml
@@ -0,0 +1,16 @@
+/**:
+ ros__parameters:
+ joy_type: XBOX
+ update_rate: 10.0
+ accel_ratio: 3.0
+ brake_ratio: 5.0
+ steer_ratio: 0.5
+ steering_angle_velocity: 0.1
+ accel_sensitivity: 1.0
+ brake_sensitivity: 1.0
+ control_command:
+ raw_control: false
+ velocity_gain: 3.0
+ max_forward_velocity: 20.0
+ max_backward_velocity: 3.0
+ backward_accel_ratio: 1.0
diff --git a/control/joy_controller/launch/joy_controller.launch.xml b/control/joy_controller/launch/joy_controller.launch.xml
index c392ca100a9c0..5236077680d0d 100644
--- a/control/joy_controller/launch/joy_controller.launch.xml
+++ b/control/joy_controller/launch/joy_controller.launch.xml
@@ -1,5 +1,4 @@
-
@@ -13,7 +12,7 @@
-
+
diff --git a/control/joy_controller/launch/joy_controller_param_selection.launch.xml b/control/joy_controller/launch/joy_controller_param_selection.launch.xml
new file mode 100644
index 0000000000000..d8e3d0bfe8b25
--- /dev/null
+++ b/control/joy_controller/launch/joy_controller_param_selection.launch.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/control/lane_departure_checker/include/lane_departure_checker/lane_departure_checker.hpp b/control/lane_departure_checker/include/lane_departure_checker/lane_departure_checker.hpp
index dc55576640133..be2411cd3268b 100644
--- a/control/lane_departure_checker/include/lane_departure_checker/lane_departure_checker.hpp
+++ b/control/lane_departure_checker/include/lane_departure_checker/lane_departure_checker.hpp
@@ -29,14 +29,20 @@
#include
#include
+#include
+#include
#include
-#include
#include
+#include
+#include
+#include
+#include
#include