From 0cb50afb75fc779fb684f905b80e21dff71eaca3 Mon Sep 17 00:00:00 2001 From: "Takagi, Isamu" <43976882+isamu-takagi@users.noreply.github.com> Date: Thu, 28 Nov 2024 18:27:44 +0900 Subject: [PATCH] feat: add migration guide for operation mode (#46) Signed-off-by: Takagi, Isamu --- .../autoware-interfaces/prototyping/index.md | 70 +- .../prototyping/migration/operation-mode.md | 24 + .../operation-mode/block-adapi.drawio.svg | 250 +++++++ .../operation-mode/block-tier4.drawio.svg | 375 ++++++++++ .../migration/operation-mode/table.drawio.svg | 693 ++++++++++++++++++ 5 files changed, 1377 insertions(+), 35 deletions(-) create mode 100644 docs/design/autoware-interfaces/prototyping/migration/operation-mode.md create mode 100644 docs/design/autoware-interfaces/prototyping/migration/operation-mode/block-adapi.drawio.svg create mode 100644 docs/design/autoware-interfaces/prototyping/migration/operation-mode/block-tier4.drawio.svg create mode 100644 docs/design/autoware-interfaces/prototyping/migration/operation-mode/table.drawio.svg diff --git a/docs/design/autoware-interfaces/prototyping/index.md b/docs/design/autoware-interfaces/prototyping/index.md index 46914e7caa..75eaf36ee8 100644 --- a/docs/design/autoware-interfaces/prototyping/index.md +++ b/docs/design/autoware-interfaces/prototyping/index.md @@ -4,41 +4,41 @@ これらの API は TIER IV の独自実装であり、段階的に [AD API](../ad-api/list/index.md) に統合する予定です。 -| 種別 | 名前 | 移行先 | -| ------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| service | [/api/external/get/version](./api/external/get/version.md) | [Interface API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/interface/) | -| service | [/api/external/set/initialize_pose](./api/external/set/initialize_pose.md) | [Localization API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/localization/) | -| service | [/api/external/set/initialize_pose_auto](./api/external/set/initialize_pose_auto.md) | [Localization API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/localization/) | -| service | [/api/external/set/route](./api/external/set/route.md) | [Routing API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/routing/) | -| topic | [/api/external/get/route](./api/external/get/route.md) | [Routing API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/routing/) | -| service | [/api/external/set/clear_route](./api/external/set/clear_route.md) | [Routing API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/routing/) | -| service | [/api/external/set/engage](./api/external/set/engage.md) | [Operation mode API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/operation_mode/) | -| topic | [/api/external/get/engage](./api/external/get/engage.md) | [Operation mode API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/operation_mode/) | -| service | [/api/external/set/operator](./api/external/set/operator.md) | [Operation mode API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/operation_mode/) | -| topic | [/api/external/get/operator](./api/external/get/operator.md) | [Operation mode API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/operation_mode/) | -| service | [/api/external/set/observer](./api/external/set/observer.md) | [Operation mode API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/operation_mode/) | -| topic | [/api/external/get/observer](./api/external/get/observer.md) | [Operation mode API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/operation_mode/) | -| service | [/api/external/set/pause_driving](./api/external/set/pause_driving.md) | [Operation mode API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/operation_mode/) | -| service | [/api/autoware/set/start_request](./api/autoware/set/start_request.md) | T.B.D. | -| service | [/api/external/set/emergency](./api/external/set/emergency.md) | T.B.D. | -| topic | [/api/external/get/emergency](./api/external/get/emergency.md) | T.B.D. | -| topic | [/api/external/get/vehicle/status](./api/external/get/vehicle/status.md) | [Vehicle status API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/vehicle-status/) | -| service | [/api/external/set/door](./api/external/set/door.md) | [Vehicle doors API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/vehicle-doors/) | -| topic | [/api/external/get/door](./api/external/get/door.md) | [Vehicle doors API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/vehicle-doors/) | -| service | [/api/external/set/velocity_limit](./api/external/set/velocity_limit.md) | T.B.D. | -| topic | [/api/external/set/command/local/control](./api/external/set/command/local/control.md) | T.B.D. | -| topic | [/api/external/set/command/local/shift](./api/external/set/command/local/shift.md) | T.B.D. | -| topic | [/api/external/set/command/local/turn_signal](./api/external/set/command/local/turn_signal.md) | T.B.D. | -| topic | [/api/external/set/command/local/heartbeat](./api/external/set/command/local/heartbeat.md) | T.B.D. | -| topic | [/api/external/set/command/remote/control](./api/external/set/command/remote/control.md) | T.B.D. | -| topic | [/api/external/set/command/remote/shift](./api/external/set/command/remote/shift.md) | T.B.D. | -| topic | [/api/external/set/command/remote/turn_signal](./api/external/set/command/remote/turn_signal.md) | T.B.D. | -| topic | [/api/external/set/command/remote/heartbeat](./api/external/set/command/remote/heartbeat.md) | T.B.D. | -| topic | [/api/external/get/command/selected/control](./api/external/get/command/selected/control.md) | T.B.D. | -| topic | [/api/external/get/command/selected/vehicle](./api/external/get/command/selected/vehicle.md) | T.B.D. | -| topic | [/api/iv_msgs/planning/scenario_planning/trajectory](./api/iv_msgs/planning/scenario_planning/trajectory.md) | T.B.D. | -| topic | [/api/iv_msgs/perception/object_recognition/tracking/objects](./api/iv_msgs/perception/object_recognition/tracking/objects.md) | T.B.D. | -| topic | [/api/iv_msgs/autoware/state](./api/iv_msgs/autoware/state.md) | [Autoware state compatibility](https://autowarefoundation.github.io/autoware.universe/main/system/default_ad_api/document/autoware-state/) | +| 種別 | 名前 | 移行先 | 移行ガイド | +| ------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| service | [/api/external/get/version](./api/external/get/version.md) | [Interface API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/interface/) | - | +| service | [/api/external/set/initialize_pose](./api/external/set/initialize_pose.md) | [Localization API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/localization/) | - | +| service | [/api/external/set/initialize_pose_auto](./api/external/set/initialize_pose_auto.md) | [Localization API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/localization/) | - | +| service | [/api/external/set/route](./api/external/set/route.md) | [Routing API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/routing/) | - | +| topic | [/api/external/get/route](./api/external/get/route.md) | [Routing API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/routing/) | - | +| service | [/api/external/set/clear_route](./api/external/set/clear_route.md) | [Routing API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/routing/) | - | +| service | [/api/external/set/engage](./api/external/set/engage.md) | [Operation mode API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/operation_mode/) | [Operation mode compatibility](./migration/operation-mode.md) | +| topic | [/api/external/get/engage](./api/external/get/engage.md) | [Operation mode API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/operation_mode/) | [Operation mode compatibility](./migration/operation-mode.md) | +| service | [/api/external/set/operator](./api/external/set/operator.md) | [Operation mode API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/operation_mode/) | [Operation mode compatibility](./migration/operation-mode.md) | +| topic | [/api/external/get/operator](./api/external/get/operator.md) | [Operation mode API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/operation_mode/) | [Operation mode compatibility](./migration/operation-mode.md) | +| service | [/api/external/set/observer](./api/external/set/observer.md) | [Operation mode API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/operation_mode/) | [Operation mode compatibility](./migration/operation-mode.md) | +| topic | [/api/external/get/observer](./api/external/get/observer.md) | [Operation mode API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/operation_mode/) | [Operation mode compatibility](./migration/operation-mode.md) | +| service | [/api/external/set/pause_driving](./api/external/set/pause_driving.md) | [Operation mode API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/operation_mode/) | [Operation mode compatibility](./migration/operation-mode.md) | +| service | [/api/autoware/set/start_request](./api/autoware/set/start_request.md) | T.B.D. | - | +| service | [/api/external/set/emergency](./api/external/set/emergency.md) | T.B.D. | - | +| topic | [/api/external/get/emergency](./api/external/get/emergency.md) | T.B.D. | - | +| topic | [/api/external/get/vehicle/status](./api/external/get/vehicle/status.md) | [Vehicle status API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/vehicle-status/) | - | +| service | [/api/external/set/door](./api/external/set/door.md) | [Vehicle doors API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/vehicle-doors/) | - | +| topic | [/api/external/get/door](./api/external/get/door.md) | [Vehicle doors API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/vehicle-doors/) | - | +| service | [/api/external/set/velocity_limit](./api/external/set/velocity_limit.md) | T.B.D. | - | +| topic | [/api/external/set/command/local/control](./api/external/set/command/local/control.md) | T.B.D. | - | +| topic | [/api/external/set/command/local/shift](./api/external/set/command/local/shift.md) | T.B.D. | - | +| topic | [/api/external/set/command/local/turn_signal](./api/external/set/command/local/turn_signal.md) | T.B.D. | - | +| topic | [/api/external/set/command/local/heartbeat](./api/external/set/command/local/heartbeat.md) | T.B.D. | - | +| topic | [/api/external/set/command/remote/control](./api/external/set/command/remote/control.md) | T.B.D. | - | +| topic | [/api/external/set/command/remote/shift](./api/external/set/command/remote/shift.md) | T.B.D. | - | +| topic | [/api/external/set/command/remote/turn_signal](./api/external/set/command/remote/turn_signal.md) | T.B.D. | - | +| topic | [/api/external/set/command/remote/heartbeat](./api/external/set/command/remote/heartbeat.md) | T.B.D. | - | +| topic | [/api/external/get/command/selected/control](./api/external/get/command/selected/control.md) | T.B.D. | - | +| topic | [/api/external/get/command/selected/vehicle](./api/external/get/command/selected/vehicle.md) | T.B.D. | - | +| topic | [/api/iv_msgs/planning/scenario_planning/trajectory](./api/iv_msgs/planning/scenario_planning/trajectory.md) | T.B.D. | - | +| topic | [/api/iv_msgs/perception/object_recognition/tracking/objects](./api/iv_msgs/perception/object_recognition/tracking/objects.md) | T.B.D. | - | +| topic | [/api/iv_msgs/autoware/state](./api/iv_msgs/autoware/state.md) | None | [Autoware state compatibility](https://autowarefoundation.github.io/autoware.universe/main/system/autoware_default_adapi/document/autoware-state/) | ## Removed API diff --git a/docs/design/autoware-interfaces/prototyping/migration/operation-mode.md b/docs/design/autoware-interfaces/prototyping/migration/operation-mode.md new file mode 100644 index 0000000000..5fe74d2585 --- /dev/null +++ b/docs/design/autoware-interfaces/prototyping/migration/operation-mode.md @@ -0,0 +1,24 @@ +# Operation mode compatibility + +## 構成(TIER IV API) + +TIER IV API は、以下のような2つの入力セレクター(operator と observer)と、2つのフィルター(pause_driving と engage)からなる構成に基づいて設計されました。 +フィルターの engage は車両の直接操作時(DRIVER)以外では常に適用され false の場合にコマンドを停止で上書きする効果を持ちます。 +もう一方のフィルターの pause_driving は AUTONOMOUS のみが対象で true の場合に車両の最高速度を 0 km/h に設定することで車両を停止させていました。 + +![block-tier4](./operation-mode/block-tier4.drawio.svg) + +## 構成(AD API) + +AD API では、フィルターによる停止コマンドへの上書きは廃止され、代わりに STOP モードからの入力という形でセレクターに処理が統合されました。 +全体では以下のような2つの入力セレクター(operation mode と autoware control)による構成に変更されています。 +DRIVER のみが車両を直接制御している状態であるため、この部分のみを autoware control として分離し、残りが Autoware 制御下での operation mode の切り替えとなりました。 +詳細は [Operation mode API](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/features/operation_mode/) を参照してください + +![block-adapi](./operation-mode/block-adapi.drawio.svg) + +## ステート対応表 + +以下に TIER IV API と AD API のステートの対応表を示します。車両の直接制御を切り替える場合のみ autoware control を操作し、それ以外の場合には operation mode を操作してください。 + +![table](./operation-mode/table.drawio.svg) diff --git a/docs/design/autoware-interfaces/prototyping/migration/operation-mode/block-adapi.drawio.svg b/docs/design/autoware-interfaces/prototyping/migration/operation-mode/block-adapi.drawio.svg new file mode 100644 index 0000000000..cd596f2909 --- /dev/null +++ b/docs/design/autoware-interfaces/prototyping/migration/operation-mode/block-adapi.drawio.svg @@ -0,0 +1,250 @@ + + + + + + + + + +
+
+
+ AUTONOMOUS +
+
+
+
+ + AUTONOMOUS + +
+
+ + + + + + +
+
+
+ DRIVER +
+
+
+
+ + DRIVER + +
+
+ + + + + + +
+
+
+ LOCAL +
+
+
+
+ + LOCAL + +
+
+ + + + + + +
+
+
+ REMOTE +
+
+
+
+ + REMOTE + +
+
+ + + + +
+
+
+ autoware control +
+
+
+
+ + autoware control + +
+
+ + + + + + +
+
+
+ operation mode +
+
+
+
+ + operation mode + +
+
+ + + + +
+
+
+ + disabled + +
+
+
+
+ + disabled + +
+
+ + + + +
+
+
+ AUTONOMOUS +
+
+
+
+ + AUTONOMOUS + +
+
+ + + + +
+
+
+ LOCAL +
+
+
+
+ + LOCAL + +
+
+ + + + +
+
+
+ REMOTE +
+
+
+
+ + REMOTE + +
+
+ + + + + + +
+
+
+ STOP +
+
+
+
+ + STOP + +
+
+ + + + +
+
+
+ STOP +
+
+
+
+ + STOP + +
+
+ + + + +
+
+
+ + enabled + +
+
+
+
+ + enabled + +
+
+
+ + + + + Text is not SVG - cannot display + + + +
\ No newline at end of file diff --git a/docs/design/autoware-interfaces/prototyping/migration/operation-mode/block-tier4.drawio.svg b/docs/design/autoware-interfaces/prototyping/migration/operation-mode/block-tier4.drawio.svg new file mode 100644 index 0000000000..3b924547c3 --- /dev/null +++ b/docs/design/autoware-interfaces/prototyping/migration/operation-mode/block-tier4.drawio.svg @@ -0,0 +1,375 @@ + + + + + + + + + +
+
+
+ observer +
+
+
+
+ + observer + +
+
+ + + + + + +
+
+
+ AUTONOMOUS +
+
+
+
+ + AUTONOMOUS + +
+
+ + + + + + +
+
+
+ DRIVER +
+
+
+
+ + DRIVER + +
+
+ + + + + + +
+
+
+ LOCAL +
+
+
+
+ + LOCAL + +
+
+ + + + + + +
+
+
+ REMOTE +
+
+
+
+ + REMOTE + +
+
+ + + + +
+
+
+ operator +
+
+
+
+ + operator + +
+
+ + + + + + + + +
+
+
+ engage +
+
+
+
+ + engage + +
+
+ + + + + + +
+
+
+ pause_driving +
+
+
+
+ + pause_driving + +
+
+ + + + + + +
+
+
+ (stop) +
+
+
+
+ + (stop) + +
+
+ + + + + + +
+
+
+ (stop) +
+
+
+
+ + (stop) + +
+
+ + + + +
+
+
+ + DRIVER + +
+
+
+
+ + DRIVER + +
+
+ + + + +
+
+
+ AUTONOMOUS +
+
+
+
+ + AUTONOMOUS + +
+
+ + + + +
+
+
+ OBSERVER +
+
+
+
+ + OBSERVER + +
+
+ + + + +
+
+
+ LOCAL +
+
+
+
+ + LOCAL + +
+
+ + + + +
+
+
+ REMOTE +
+
+
+
+ + REMOTE + +
+
+ + + + +
+
+
+ true +
+
+
+
+ + true + +
+
+ + + + +
+
+
+ true +
+
+
+
+ + true + +
+
+ + + + +
+
+
+ false +
+
+
+
+ + false + +
+
+ + + + +
+
+
+ false +
+
+
+
+ + false + +
+
+ + + + +
+
+
+ true +
+
+
+
+ + true + +
+
+
+ + + + + Text is not SVG - cannot display + + + +
\ No newline at end of file diff --git a/docs/design/autoware-interfaces/prototyping/migration/operation-mode/table.drawio.svg b/docs/design/autoware-interfaces/prototyping/migration/operation-mode/table.drawio.svg new file mode 100644 index 0000000000..55902a0d07 --- /dev/null +++ b/docs/design/autoware-interfaces/prototyping/migration/operation-mode/table.drawio.svg @@ -0,0 +1,693 @@ + + + + + + + +
+
+
+ engage +
+
+
+
+ + engage + +
+
+ + + + +
+
+
+ TIER IV API +
+
+
+
+ + TIER IV API + +
+
+ + + + +
+
+
+ pause_driving +
+
+
+
+ + pause_driving + +
+
+ + + + +
+
+
+ observer +
+
+
+
+ + observer + +
+
+ + + + +
+
+
+ operator +
+
+
+
+ + operator + +
+
+ + + + +
+
+
+ AD API +
+
+
+
+ + AD API + +
+
+ + + + +
+
+
+ false +
+
+
+
+ + false + +
+
+ + + + +
+
+
+ STOP +
+
+
+
+ + STOP + +
+
+ + + + +
+
+
+ true +
+
+
+
+ + true + +
+
+ + + + +
+
+
+ - +
+
+
+
+ + - + +
+
+ + + + +
+
+
+ AUTONOMOUS +
+
+
+
+ + AUTONOMOUS + +
+
+ + + + +
+
+
+ DRIVER +
+
+
+
+ + DRIVER + +
+
+ + + + +
+
+
+ mode +
+
+
+
+ + mode + +
+
+ + + + +
+
+
+ autoware_control +
+
+
+
+ + autoware_control + +
+
+ + + + +
+
+
+ disabled +
+
+
+
+ + disabled + +
+
+ + + + +
+
+
+ undefined +
+
+
+
+ + undefined + +
+
+ + + + +
+
+
+ - +
+
+
+
+ + - + +
+
+ + + + +
+
+
+ - +
+
+
+
+ + - + +
+
+ + + + +
+
+
+ - +
+
+
+
+ + - + +
+
+ + + + +
+
+
+ - +
+
+
+
+ + - + +
+
+ + + + +
+
+
+ enabled +
+
+
+
+ + enabled + +
+
+ + + + +
+
+
+ true +
+
+
+
+ + true + +
+
+ + + + +
+
+
+ false +
+
+
+
+ + false + +
+
+ + + + +
+
+
+ AUTONOMOUS +
+
+
+
+ + AUTONOMOUS + +
+
+ + + + +
+
+
+ OBSERVER +
+
+
+
+ + OBSERVER + +
+
+ + + + +
+
+
+ false +
+
+
+
+ + false + +
+
+ + + + +
+
+
+ true +
+
+
+
+ + true + +
+
+ + + + +
+
+
+ - +
+
+
+
+ + - + +
+
+ + + + +
+
+
+ STOP +
+
+
+
+ + STOP + +
+
+ + + + +
+
+
+ STOP +
+
+
+
+ + STOP + +
+
+ + + + +
+
+
+ LOCAL +
+
+
+
+ + LOCAL + +
+
+ + + + +
+
+
+ REMOTE +
+
+
+
+ + REMOTE + +
+
+ + + + +
+
+
+ false +
+
+
+
+ + false + +
+
+ + + + +
+
+
+ true +
+
+
+
+ + true + +
+
+ + + + +
+
+
+ - +
+
+
+
+ + - + +
+
+ + + + +
+
+
+ - +
+
+
+
+ + - + +
+
+ + + + +
+
+
+ - +
+
+
+
+ + - + +
+
+ + + + +
+
+
+ LOCAL +
+
+
+
+ + LOCAL + +
+
+ + + + +
+
+
+ STOP +
+
+
+
+ + STOP + +
+
+ + + + +
+
+
+ REMOTE +
+
+
+
+ + REMOTE + +
+
+
+ + + + + Text is not SVG - cannot display + + + +
\ No newline at end of file