diff --git a/system/default_ad_api/README.md b/system/default_ad_api/README.md new file mode 100644 index 0000000000000..0b6cdf30778a2 --- /dev/null +++ b/system/default_ad_api/README.md @@ -0,0 +1,11 @@ +# default_ad_api + +This package is a default implementation AD API. + +- [autoware state (backward compatibility)](document/autoware-state.md) +- [fail-safe](document/fail-safe.md) +- [interface](document/interface.md) +- [localization](document/localization.md) +- [motion](document/motion.md) +- [operation mode](document/operation-mode.md) +- [routing](document/routing.md) diff --git a/system/default_ad_api/document/autoware-state.md b/system/default_ad_api/document/autoware-state.md new file mode 100644 index 0000000000000..e26756de1f4ba --- /dev/null +++ b/system/default_ad_api/document/autoware-state.md @@ -0,0 +1,16 @@ +# Autoware state compatibility + +## Overview + +Since `/autoware/state` was so widely used, default_ad_api creates it from the states of AD API for backwards compatibility. +The diagnostic checks that ad_service_state_monitor used to perform have been replaced by component_state_monitor. +The service `/autoware/shutdown` to change autoware state to finalizing is also supported for compatibility. + +![autoware-state-architecture](images/autoware-state-architecture.drawio.svg) + +## Conversion + +This is the correspondence between AD API states and autoware states. +The launch state is the data that default_ad_api node holds internally. + +![autoware-state-table](images/autoware-state-table.drawio.svg) diff --git a/system/default_ad_api/document/fail-safe.md b/system/default_ad_api/document/fail-safe.md new file mode 100644 index 0000000000000..b9967089c5e3a --- /dev/null +++ b/system/default_ad_api/document/fail-safe.md @@ -0,0 +1,5 @@ +# Fail-safe API + +## Overview + +The fail-safe API simply relays the MRM state. See the [autoware-documentation](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/list/api/fail_safe/) for AD API specifications. diff --git a/system/default_ad_api/document/images/autoware-state-architecture.drawio.svg b/system/default_ad_api/document/images/autoware-state-architecture.drawio.svg new file mode 100644 index 0000000000000..40aebd20ae43f --- /dev/null +++ b/system/default_ad_api/document/images/autoware-state-architecture.drawio.svg @@ -0,0 +1,332 @@ + + + + + + + + + + + +
+
+
+ component state monitor +
+
+
+
+ component state monitor +
+
+ + + + + + +
+
+
+ localization +
+ initialization state +
+
+
+
+ localization... +
+
+ + + + + + +
+
+
+ routing state +
+
+
+
+ routing state +
+
+ + + + + + +
+
+
+ operation mode +
+
+
+
+ operation mode +
+
+ + + + + + +
+
+
+ topic check status +
+ for startup +
+
+
+
+ topic check status... +
+
+ + + + + + +
+
+
+ topic check status +
+ for autonomous +
+
+
+
+ topic check status... +
+
+ + + + + + + + + + +
+
+
+ default_ad_api +
+ (localization, routing, operation mode) +
+
+
+
+ default_ad_api... +
+
+ + + + + + +
+
+
+ diagnostics +
+
+
+
+ diagnostics +
+
+ + + + + + +
+
+
+ topic state monitor +
+
+
+
+ topic state monitor +
+
+ + + + + + +
+
+
+ default_ad_api +
+ (autoware state) +
+
+
+
+ default_ad_api... +
+
+ + + + +
+
+
+ autoware +
+ state +
+
+
+
+ autoware... +
+
+ + + + + + +
+
+
+ autoware +
+ shutdown +
+
+
+
+ autoware... +
+
+ + + + + + +
+
+
+ topics that ad_service_state_monitor was checking before +
+
+
+
+ topics that ad_service_state_monitor was checking before +
+
+ + + + + +
+
+
+ node +
+
+
+
+ node +
+
+ + + + +
+
+
+ service +
+
+
+
+ service +
+
+ + + + +
+
+
+ topic +
+
+
+
+ topic +
+
+
+ + + + Viewer does not support full SVG 1.1 + + +
diff --git a/system/default_ad_api/document/images/autoware-state-table.drawio.svg b/system/default_ad_api/document/images/autoware-state-table.drawio.svg new file mode 100644 index 0000000000000..ab21c1b865407 --- /dev/null +++ b/system/default_ad_api/document/images/autoware-state-table.drawio.svg @@ -0,0 +1,457 @@ + + + + + + + + +
+
+
+ WaitingForRoute +
+
+
+
+ WaitingForRoute +
+
+ + + + +
+
+
+ localization state +
+
+
+
+ localization state +
+
+ + + + +
+
+
+ routing state +
+
+
+
+ routing state +
+
+ + + + +
+
+
+ operation mode +
+
+
+
+ operation mode +
+
+ + + + +
+
+
+ auto mode available +
+
+
+
+ auto mode available +
+
+ + + + +
+
+
+ initializing +
+
+
+
+ initializing +
+
+ + + + +
+
+
+ running +
+
+
+
+ running +
+
+ + + + +
+
+
+ uninitialized +
+
+
+
+ uninitialized +
+
+ + + + +
+
+
+ initializing +
+
+
+
+ initializing +
+
+ + + + +
+
+
+ initialized +
+
+
+
+ initialized +
+
+ + + + +
+
+
+ unset, arrived +
+
+
+
+ unset, arrived +
+
+ + + + +
+
+
+ set +
+
+
+
+ set +
+
+ + + + +
+
+
+ arrived +
+
+
+
+ arrived +
+
+ + + + +
+
+
+ finalizing +
+
+
+
+ finalizing +
+
+ + + + +
+
+
+ stop +
+
+
+
+ stop +
+
+ + + + +
+
+
+ not stop +
+
+
+
+ not stop +
+
+ + + + +
+
+
+ false +
+
+
+
+ false +
+
+ + + + +
+
+
+ true +
+
+
+
+ true +
+
+ + + + +
+
+
+ Initializing +
+
+
+
+ Initializing +
+
+ + + + +
+
+
+ launch state +
+
+
+
+ launch state +
+
+ + + + +
+
+
+ Planning +
+
+
+
+ Planning +
+
+ + + + +
+
+
+ WaitingForEngage +
+
+
+
+ WaitingForEngage +
+
+ + + + +
+
+
+ Driving +
+
+
+
+ Driving +
+
+ + + + +
+
+
+ ArrivedGoal +
+
+
+
+ ArrivedGoal +
+
+ + + + +
+
+
+ Finalizing +
+
+
+
+ Finalizing +
+
+ + + + + + + +
+ + + + Viewer does not support full SVG 1.1 + + +
diff --git a/system/default_ad_api/document/images/localization.drawio.svg b/system/default_ad_api/document/images/localization.drawio.svg new file mode 100644 index 0000000000000..3c1347e8b4a3c --- /dev/null +++ b/system/default_ad_api/document/images/localization.drawio.svg @@ -0,0 +1,553 @@ + + + + + + + + + + + + + +
+
+
+ Applications (FMS, etc.) +
+
+
+
+ Applications (FMS, etc.) +
+
+ + + + + + +
+
+
+ /api/localization/initialize +
+
+
+
+ /api/localization/initialize +
+
+ + + + + + +
+
+
+ AD API +
+ (default implementation) +
+
+
+
+ AD API... +
+
+ + + + + + + + +
+
+
+ /localization/initialize +
+
+
+
+ /localization/initialize +
+
+ + + + +
+
+
+ component_state_monitor +
+
+
+
+ component_state_monitor +
+
+ + + + + + +
+
+
+ initialpose3d +
+
+
+
+ initialpose3d +
+
+ + + + + + + + + +
+
+
+ simple_planning_simulator +
+
+
+
+ simple_planning_simulator +
+
+ + + + +
+
+
+ NDT +
+
+
+
+ NDT +
+
+ + + + + + + +
+
+
+ ndt_align_srv +
+
+
+
+ ndt_align_srv +
+
+ + + + +
+
+
+ common +
+
+
+
+ common +
+
+ + + + +
+
+
+ psim +
+
+
+
+ psim +
+
+ + + + +
+
+
+ lsim/real +
+
+
+
+ lsim/real +
+
+ + + + +
+
+
+ node +
+
+
+
+ node +
+
+ + + + +
+
+
+ service +
+
+
+
+ service +
+
+ + + + +
+
+
+ topic +
+
+
+
+ topic +
+
+ + + + + + + + + + + +
+
+
+ + initial_pose_adaptor +
+ (Fix z position to fit map) +
+
+
+
+
+ initial_pose_adaptor... +
+
+ + + + + + +
+
+
+ EKF +
+
+
+
+ EKF +
+
+ + + + + + +
+
+
+ gnss pose +
+
+
+
+ gnss pose +
+
+ + + + +
+
+
+ Module when using GNSS +
+ (Fix z position to fit map) +
+
+
+
+ Module when using GNSS... +
+
+ + + + + + +
+
+
+ automatic_pose_initializer +
+ (Call the API when state is uninitialized) +
+
+
+
+ automatic_pose_initializer... +
+
+ + + + + + +
+
+
+ initialpose (from rviz) +
+
+
+
+ initialpose (from rviz) +
+
+ + + + + + + + + + +
+
+
+ fit_map_height +
+
+
+
+ fit_map_height +
+
+ + + + +
+
+
+ map_height_fitter +
+
+
+
+ map_height_fitter +
+
+ + + + +
+
+
+ Module when using NDT +
+
+
+
+ Module when using NDT +
+
+ + + + + + +
+
+
+ /localization/initialization_state +
+
+
+
+ /localization/initialization_state +
+
+ + + + + + +
+
+
+ sensing twist +
+
+
+
+ sensing twist +
+
+ + + + +
+
+
+ pose_initializer +
+
+
+
+ pose_initializer +
+
+ + + + +
+
+
+ Module to check vehicle stops +
+
+
+
+ Module to check vehicle stops +
+
+
+ + + + Viewer does not support full SVG 1.1 + + +
diff --git a/system/default_ad_api/document/images/motion-architecture.drawio.svg b/system/default_ad_api/document/images/motion-architecture.drawio.svg new file mode 100644 index 0000000000000..24271b1c65643 --- /dev/null +++ b/system/default_ad_api/document/images/motion-architecture.drawio.svg @@ -0,0 +1,255 @@ + + + + + + + + + + + +
+
+
+ AD API +
+
+
+
+ AD API +
+
+ + + + + + +
+
+
+ Applications +
+
+
+
+ Applications +
+
+ + + + + + + + +
+
+
+ vehicle_cmd_gate +
+
+
+
+ vehicle_cmd_gate +
+
+ + + + + + +
+
+
+ /localization/kinematic_state +
+
+
+
+ /localization/kinematic_state +
+
+ + + + + + +
+
+
+ is_paused +
+
+
+
+ is_paused +
+
+ + + + + + +
+
+
+ is_start_requested +
+
+
+
+ is_start_requested +
+
+ + + + + + +
+
+
+ set_pause +
+
+
+
+ set_pause +
+
+ + + + + + +
+
+
+ localization +
+
+
+
+ localization +
+
+ + + + + + +
+
+
+ accept_start +
+
+
+
+ accept_start +
+
+ + + + + + +
+
+
+ motion_state +
+
+
+
+ motion_state +
+
+ + + + + +
+
+
+ node +
+
+
+
+ node +
+
+ + + + +
+
+
+ service +
+
+
+
+ service +
+
+ + + + +
+
+
+ topic +
+
+
+
+ topic +
+
+
+ + + + Viewer does not support full SVG 1.1 + + +
diff --git a/system/default_ad_api/document/motion.drawio.svg b/system/default_ad_api/document/images/motion-state.drawio.svg similarity index 74% rename from system/default_ad_api/document/motion.drawio.svg rename to system/default_ad_api/document/images/motion-state.drawio.svg index c6e2593ed0eb7..3387b8ed29bb7 100644 --- a/system/default_ad_api/document/motion.drawio.svg +++ b/system/default_ad_api/document/images/motion-state.drawio.svg @@ -3,13 +3,31 @@ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" - width="342px" + width="521px" height="282px" - viewBox="-0.5 -0.5 342 282" - content="<mxfile><diagram id="Cz8Q8T6vesO4MC4sh1-d" name="Page-1">5VpNc5swEP01vmZAAhkf2zRpL5nJ1IeeZZCBqUCMkL/66ytAfIo4tgE7iXPIoGUl0Nu3T9LiGXyM9j85ToIX5hE6A4a3n8EfMwDmAMr/meFQGCwTFAafh15hMmvDMvxHlNFQ1k3okbTlKBijIkzaRpfFMXFFy4Y5Z7u225rR9lMT7BPNsHQx1a1/Qk8EymqiRX3jFwn9QD3aAfPiRoRLZzWTNMAe2zVM8GkGHzljoriK9o+EZtiVuBT9nt+4W70YJ7E4pQNUPVJxKCdHPDlX1WRcBMxnMaZPtfU7Z5vYI9kIhmwFIqLy0pSXqcBcfMsAlgaX4jQN3dL8HNLSrXhk9pw337p8LbbhrvJSFJFj+UR5wQoxyTTCIiL4QbpwQrEIt+3RsYq5X/nVsMgLhcwbKNmfGiVrIEx5V/nC+NBwSFgYi7Qx8mtmkA4qyYGhKK5yfNEh4lnu8qJ4fh2uaiInRVDBssV0o+b7ijepjE43rnXUshjsglCQZYJzdHdSy9qRXMtoPTLKeN4Xrh2XuEUoOftLGndWjm3ZRhXULeGC7I+HVY9X2QG1kTJLLdnVUuQoU9AQIcsYngjAOZoIMYvJEa6r202iGxcTHepEH8rzk+VAI9Nvkm6iMPZHpZNnE8ez+ujkgBVEaBw6QXBDOi0u0NUz2dWW4cu4ZulcQ7fQVNhJfYCOi+o7/oNVFcLJ1sVRtaInfvaVtMLq14qRV57bSEW1Zl9DKtCHWXlsnU3gSmyyNTZl25ixF57b7GOuySZoaIB9yIUHjS9co2zmwfy83XzHf/DCg7Q8eGHbz7n/0tLA0dOg4vzYeTDXcNTzIvY6RPdwGlSQNuA7leI6FI2p2j0zLW3ncVwjZRdoe/GA7EX9N28PWOShGuMI160u11EnMEX2agNdQHtHC1cqWCItecMQXJq78ZPMFF3xatJZBbXJfWXCNPRj2aRknY2QsTx0Mf2mzFHoebku9mVVn/gNSpNu8KzTFgswQpIsjqO+xjS9G9jR9WAvi713KU7mXIoTGkeQTGcyQTJNLUZJVle7R0kyr5kb4B3c70mUzJ4d01TAw+PH0A9T8YA9JY+hX0tGKVmZxnklq47/8JKVXpBZZoiPfoZer0H/GdpDK2RPdHjo2RVNdnaA+r4Iuy5JxASy40o8CL+58MD+j1RNuNFEwmPpHx10Jfqqu6HF4sGeDz+pVatCR1sm2BhZusy4kZfzj1aLtF6E+qIL9ImVvVHyRC+R5sAjHGVTjVdpksOTR6G0+iKf990E5IobJuuuSkxdhdFqQbeXKtmsf15UuNe/0YJP/wE=</diagram></mxfile>" + viewBox="-0.5 -0.5 521 282" + content="<mxfile><diagram id="Cz8Q8T6vesO4MC4sh1-d" name="Page-1">5Vpdc6IwFP01vnaAQMRHa223D906a2f3OUIEZoE4IWq7v36DhM+gxRq0rT44cEkgOffck5sLAzCJXh8oWvlPxMXhwNDc1wG4GxjGSDf4f2p4ywwW1DKDRwM3M+mlYR78w8KYN1sHLk5qDRkhIQtWdaND4hg7rGZDlJJtvdmShPWnrpCHJcPcQaFs/RO4zBdWHY7KCz9w4Pni0bYxzC5EKG8sZpL4yCXbiglMB2BCCWHZUfQ6wWGKXY5L1u9+z9ViYBTHrEsHU4x4g8K1mNycIYbTJjH/G9+lf7NHMVr2lkNAyTp2cXoXbQBut37A8HyFnPTqlvuc23wWhfxM54dLEjPhRe56cLvBlAUcznEYeDE3MpJ2ECPh1/Dr3unoBUicXJhEmNE33kR0ME2BqyCWLU63FS/l0PsVBxmaMCLBDK+4dQkePxD4tWMJdAkl7HLeiFNCmU88EqNwWlpv6zhWMEsYomyckpUbnBAlSeDk5vsgzJvtQYiPgqypI4Yhwo139bBoBTJTOsCDwFIcIhZs6sQ/CSXrK6FkqoZp15UPGL1VGqxIELOkcudZaihprdt1Wo8aQX1Uc36QPb90VzGRTh40JMmYoXXCvbNfI/QOGsG9NSEhobu+YGk72MlcSclfXLmysC3T0g45VZKQvXqhN/SiEIeKYNgtemEqkAvDPhgIMYnxAa6Ly1WiH8SkSnQgE105zzvLgUSmXzhZR0HsKaWTa2HbNdvoZBsLAKEaOgHtgnQafUBXj2RXXYY7cc2UuQY/haaCRugb8LCovtP+ZFUFoLd18RStaPGfdSmtMNu1QvHKcxmpKDLQc0gFvNTKY8lsMi7FJktiU5rGqF54LpPHnJNNQJMA+wwLDzyDcClJ5o3hcdl8o/3JCw+U4uCJbL5m/iWFQcv+v+C86jgYSjjKcRG7DaK7KPELSCvw7QXjXfJWpmq1zDS3HcdxiZRNoK3RDbRG5W9Yv2EWmOIeh5KsJtdhwzFZOEs3+gDtbcldSVqG4hl7eqIxys1N/3EasqZ4VeksnFrlvjAhUekK8ZK1FMCiwHV3utgWVR3Fr3uYNJ1ndlssDAVBIpcba6gvUZhcDezwfLDnhfOrFCd9yMUJqhGkYjFWL0i6LvloldbVrlGS9HPGhvEO7tckSnpLxtQX8ODwNvRSFQ/QUvJQ/rZESclK144rWTXan16ykgsy8xRx5Xvo5dJo30O7cAGtnjYPLVlRb3sHIOdFyHHwivUgOw6HCNOLC4/R/pKqCjfsSXhM+aWDrETfNRsajW6s4ek7tcI5DW3pITEyZZlxIndHtrBYpOUi1DddoDtW9pTEiVwi3QEPUZRONV4kqx08Oy/kVo/t5n01DjljwmReVYmpqTBSLegzSpVcVZq/jH+9PP58kDx1lozotK+prAZww5bPqbSeUqL82dW69PNv1UB2rksrBbJ4Z3IWIOW6wvzleTab3qmlZNcXXWopqfeHJD8tP8TMxKD8mhVM/wM=</diagram></mxfile>" > + + + + +
+
+
+ State in AD API +
+
+
+
+ State in AD API +
+
@@ -265,6 +283,57 @@
+ + + + +
+
+
+ STARTING +
+
+
+
+ STARTING +
+
+ + + + +
+
+
+ MOVING +
+
+
+
+ MOVING +
+
+ + + + +
+
+
+ STOPPED +
+
+
+
+ STOPPED +
+
diff --git a/system/default_ad_api/document/images/operation-mode-architecture.drawio.svg b/system/default_ad_api/document/images/operation-mode-architecture.drawio.svg new file mode 100644 index 0000000000000..4a879e98ed09d --- /dev/null +++ b/system/default_ad_api/document/images/operation-mode-architecture.drawio.svg @@ -0,0 +1,323 @@ + + + + + + + + + +
+
+
+ external_cmd_selector +
+
+
+
+ external_cmd_selector +
+
+ + + + + + +
+
+
+ vehicle_cmd_gate +
+
+
+
+ vehicle_cmd_gate +
+
+ + + + + + + + + + +
+
+
+ vehicle_interface +
+
+
+
+ vehicle_interface +
+
+ + + + + + + + + + + + +
+
+
+ + operation mode +
+ transition manager +
+
+
+
+
+ operation mode... +
+
+ + + + +
+
+
+ engage, gate_mode +
+
+
+
+ engage, gate_mode +
+
+ + + + +
+
+
+ control_mode +
+
+
+
+ control_mode +
+
+ + + + +
+
+
+ selector_mode +
+
+
+
+ selector_mode +
+
+ + + + +
+
+
+ AD API +
+
+
+
+ AD API +
+
+ + + + +
+
+
+ control command +
+ (joystick etc.) +
+
+
+
+ control command... +
+
+ + + + +
+
+
+ control command +
+ (remote) +
+
+
+
+ control command... +
+
+ + + + +
+
+
+ control command +
+ (autonomous) +
+
+
+
+ control command... +
+
+ + + + + + +
+
+
+ + component_state_monitor +
+
+
+
+
+
+ component_state_monitor +
+
+ + + + + + +
+
+
+ diagnostics +
+
+
+
+ diagnostics +
+
+ + + + + +
+
+
+ node +
+
+
+
+ node +
+
+ + + + +
+
+
+ service +
+
+
+
+ service +
+
+ + + + +
+
+
+ topic +
+
+
+
+ topic +
+
+
+ + + + Viewer does not support full SVG 1.1 + + +
diff --git a/system/default_ad_api/document/images/operation-mode-state.drawio.svg b/system/default_ad_api/document/images/operation-mode-state.drawio.svg new file mode 100644 index 0000000000000..3a008fd8a64f3 --- /dev/null +++ b/system/default_ad_api/document/images/operation-mode-state.drawio.svg @@ -0,0 +1,418 @@ + + + + + + + + + + + + + +
+
+
+ stop +
+ (autoware control is false) +
+
+
+
+ stop... +
+
+ + + + + + + + +
+
+
+ auto +
+ (autoware control is false) +
+
+
+
+ auto... +
+
+ + + + + + + + +
+
+
+ auto +
+ (autoware control is true) +
+
+
+
+ auto... +
+
+ + + + + + + + +
+
+
+ stop +
+ (autoware control is true) +
+
+
+
+ stop... +
+
+ + + + + + + + + + +
+
+
+ auto +
+ (in transition) +
+
+
+
+ auto... +
+
+ + + + + + + + + + +
+
+
+ stop +
+ (in transition) +
+
+
+
+ stop... +
+
+ + + + + + +
+
+
+ disable autoware control +
+
+
+
+ disable autoware control +
+
+ + + + + + +
+
+
+ enable autoware control +
+
+
+
+ enable autoware control +
+
+ + + + + + +
+
+
+ change operation mode +
+
+
+
+ change operation mode +
+
+ + + + + + +
+
+
+ mode change completed +
+
+
+
+ mode change completed +
+
+ + + + + + + + +
+
+
+ remote +
+ (autoware control is false) +
+
+
+
+ remote... +
+
+ + + + + + +
+
+
+ local +
+ (autoware control is false) +
+
+
+
+ local... +
+
+ + + + + + + + + + +
+
+
+ remote +
+ (in transition) +
+
+
+
+ remote... +
+
+ + + + + + + + + + +
+
+
+ local +
+ (in transition) +
+
+
+
+ local... +
+
+ + + + + + + + +
+
+
+ remote +
+ (autoware control is true) +
+
+
+
+ remote... +
+
+ + + + + + + + +
+
+
+ local +
+ (autoware control is true) +
+
+
+
+ local... +
+
+ + + + + +
+
+
+ mode change failed +
+
+
+
+ mode change failed +
+
+ + + +
+ + + + Viewer does not support full SVG 1.1 + + +
diff --git a/system/default_ad_api/document/images/operation-mode-table.drawio.svg b/system/default_ad_api/document/images/operation-mode-table.drawio.svg new file mode 100644 index 0000000000000..19a3ea5bd1133 --- /dev/null +++ b/system/default_ad_api/document/images/operation-mode-table.drawio.svg @@ -0,0 +1,317 @@ + + + + + + + +
+
+
+ driver +
+
+
+
+ driver +
+
+ + + + +
+
+
+ autonomous +
+
+
+
+ autonomous +
+
+ + + + +
+
+
+ stop +
+
+
+
+ stop +
+
+ + + + +
+
+
+ remote +
+
+
+
+ remote +
+
+ + + + +
+
+
+ local +
+
+
+
+ local +
+
+ + + + +
+
+
+ control_mode +
+
+
+
+ control_mode +
+
+ + + + +
+
+
+ manual +
+
+
+
+ manual +
+
+ + + + +
+
+
+ autonomous +
+
+
+
+ autonomous +
+
+ + + + +
+
+
+ gate_mode +
+
+
+
+ gate_mode +
+
+ + + + + +
+
+
+ auto +
+
+
+
+ auto +
+
+ + + + +
+
+
+ external +
+
+
+
+ external +
+
+ + + + +
+
+
+ engage +
+
+
+
+ engage +
+
+ + + + + +
+
+
+ false +
+
+
+
+ false +
+
+ + + + +
+
+
+ true +
+
+
+
+ true +
+
+ + + + +
+
+
+ selector_mode +
+
+
+
+ selector_mode +
+
+ + + + + +
+
+
+ local +
+
+
+
+ local +
+
+ + + + +
+
+
+ remote +
+
+
+
+ remote +
+
+
+ + + + Viewer does not support full SVG 1.1 + + +
diff --git a/system/default_ad_api/document/images/routing.drawio.svg b/system/default_ad_api/document/images/routing.drawio.svg new file mode 100644 index 0000000000000..6742bfe4c12b0 --- /dev/null +++ b/system/default_ad_api/document/images/routing.drawio.svg @@ -0,0 +1,398 @@ + + + + + + + +
+
+
+ mission_planner +
+
+
+
+ mission_planner +
+
+ + + + + + +
+
+
+ planner plugin +
+
+
+
+ planner plugin +
+
+ + + + + + + + +
+
+
+ routing_adaptor +
+
+
+
+ routing_adaptor +
+
+ + + + +
+
+
+ set route +
+
+
+
+ set route +
+
+ + + + +
+
+
+ set route points +
+
+
+
+ set route points +
+
+ + + + +
+
+
+ pose topic +
+
+
+
+ pose topic +
+
+ + + + +
+
+
+ planning modules +
+
+
+
+ planning modules +
+
+ + + + +
+
+
+ lanelet route +
+
+
+
+ lanelet route +
+
+ + + + +
+
+
+ set route points +
+
+
+
+ set route points +
+
+ + + + + + + + + + +
+
+
+ App +
+
+
+
+ App +
+
+ + + + +
+
+
+ RViz +
+
+
+
+ RViz +
+
+ + + + + + + + + + +
+
+
+ AD +
+ API +
+
+
+
+ AD... +
+
+ + + + + + + + + + + + +
+
+
+ main module +
+
+
+
+ main module +
+
+ + + + +
+
+
+ set lanelet route +
+
+
+
+ set lanelet route +
+
+ + + + +
+
+
+ + route, route state + +
+
+
+
+ route, route state +
+
+ + + + +
+
+
+ set route points +
+
+
+
+ set route points +
+
+ + + + +
+
+
+ route state +
+
+
+
+ route state +
+
+ + + + +
+
+
+ + clear route + +
+
+
+
+ clear route +
+
+ + + + +
+
+
+ pose array +
+
+
+
+ pose array +
+
+ + + + +
+
+
+ lanelet route +
+
+
+
+ lanelet route +
+
+
+ + + + Viewer does not support full SVG 1.1 + + +
diff --git a/system/default_ad_api/document/interface.md b/system/default_ad_api/document/interface.md new file mode 100644 index 0000000000000..f3fc6a389c294 --- /dev/null +++ b/system/default_ad_api/document/interface.md @@ -0,0 +1,5 @@ +# Interface API + +## Overview + +The interface API simply returns a version number. See the [autoware-documentation](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/list/api/interface/) for AD API specifications. diff --git a/system/default_ad_api/document/localization.md b/system/default_ad_api/document/localization.md new file mode 100644 index 0000000000000..866322ed807cf --- /dev/null +++ b/system/default_ad_api/document/localization.md @@ -0,0 +1,7 @@ +# Localization API + +## Overview + +Unify the location initialization method to the service. The topic `/initialpose` from rviz is now only subscribed to by adapter node and converted to API call. This API call is forwarded to the pose initializer node so it can centralize the state of pose initialization. For other nodes that require initialpose, pose initializer node publishes as `/initialpose3d`. See the [autoware-documentation](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/list/api/localization/) for AD API specifications. + +![localization-architecture](images/localization.drawio.svg) diff --git a/system/default_ad_api/document/motion.md b/system/default_ad_api/document/motion.md new file mode 100644 index 0000000000000..fd01a8f56ed7f --- /dev/null +++ b/system/default_ad_api/document/motion.md @@ -0,0 +1,13 @@ +# Motion API + +## Overview + +Provides a hook for when the vehicle starts. It is typically used for announcements that call attention to the surroundings. Add a pause function to the vehicle_cmd_gate, and API will control it based on vehicle stopped and start requested. See the [autoware-documentation](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/list/api/motion/) for AD API specifications. + +![motion-architecture](images/motion-architecture.drawio.svg) + +## States + +The implementation has more detailed state transitions to manage pause state synchronization. The correspondence with the AD API state is as follows. + +![motion-state](images/motion-state.drawio.svg) diff --git a/system/default_ad_api/document/operation-mode.md b/system/default_ad_api/document/operation-mode.md new file mode 100644 index 0000000000000..703f6aa47b50d --- /dev/null +++ b/system/default_ad_api/document/operation-mode.md @@ -0,0 +1,24 @@ +# Operation mode API + +## Overview + +Introduce operation mode. It handles autoware engage, gate_mode, external_cmd_selector and control_mode abstractly. When the mode is changed, it will be in-transition state, and if the transition completion condition to that mode is not satisfied, it will be returned to the previous mode. Also, currently, the condition for mode change is only `WaitingForEngage` in `/autoware/state`, and the engage state is shared between modes. After introducing the operation mode, each mode will have a transition available flag. See the [autoware-documentation](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/list/api/operation_mode/) for AD API specifications. + +![operation-mode-architecture](images/operation-mode-architecture.drawio.svg) + +## States + +The operation mode has the following state transitions. Disabling autoware control and changing operation mode when autoware control is disabled can be done immediately. +Otherwise, enabling autoware control and changing operation mode when autoware control is enabled causes the state will be transition state. +If the mode change completion condition is not satisfied within the timeout in the transition state, it will return to the previous mode. + +![operation-mode-state](images/operation-mode-state.drawio.svg) + +## Compatibility + +Ideally, vehicle_cmd_gate and external_cmd_selector should be merged so that the operation mode can be handled directly. +However, currently the operation mode transition manager performs the following conversions to match the implementation. +The transition manager monitors each topic in the previous interface and synchronizes the operation mode when it changes. +When the operation mode is changed with the new interface, the transition manager disables synchronization and changes the operation mode using the previous interface. + +![operation-mode-table](images/operation-mode-table.drawio.svg) diff --git a/system/default_ad_api/document/routing.md b/system/default_ad_api/document/routing.md new file mode 100644 index 0000000000000..899136f2d9e50 --- /dev/null +++ b/system/default_ad_api/document/routing.md @@ -0,0 +1,7 @@ +# Routing API + +## Overview + +Unify the route setting method to the service. This API supports two waypoint formats, poses and lanelet segments. The goal and checkpoint topics from rviz is only subscribed to by adapter node and converted to API call. This API call is forwarded to the mission planner node so it can centralize the state of routing. For other nodes that require route, mission planner node publishes as `/planning/mission_planning/route`. See the [autoware-documentation](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/list/api/routing/) for AD API specifications. + +![routing-architecture](images/routing.drawio.svg)