Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/contributing/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ To gain a high-level understanding of Autoware's architecture and design, the fo
- [Autoware architecture](../design/index.md)
- [Autoware concepts](../design/autoware-concepts/index.md)

For experienced developers, the [Autoware interfaces](../design/autoware-interfaces/index.md) and [individual component pages](../design/autoware-interfaces/components/index.md) should also be reviewed to understand the inputs and outputs for each component or module at a more detailed level.
For experienced developers, the [Autoware interfaces](../design/autoware-architecture-v1/interfaces/index.md) and [individual component pages](../design/autoware-architecture-v1/interfaces/components/index.md) should also be reviewed to understand the inputs and outputs for each component or module at a more detailed level.

### Contributing to open source projects

Expand Down
1 change: 0 additions & 1 deletion docs/design/.pages
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,5 @@ nav:
- Concepts: autoware-concepts
- Architecture 1.0: autoware-architecture-v1
- Architecture 2.0: autoware-architecture-v2
- autoware-interfaces
- Versioning & Repositories: versioning_and_repositories
- autoware-system-capabilities.md
1 change: 1 addition & 0 deletions docs/design/autoware-architecture-v1/.pages
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ nav:
- index.md
- node-diagram
- components
- interfaces
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ The Perception Component consists of the following sub-components:

## Component interface

The following describes the input/output concept between Perception Component and other components. See [the Perception Component Interface](../../../autoware-interfaces/components/perception.md) page for the current implementation.
The following describes the input/output concept between Perception Component and other components. See [the Perception Component Interface](../../interfaces/components/perception.md) page for the current implementation.

### Input to the Perception Component

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ Organizations or research entities developing autonomous driving Planning system

## Component interface

This section describes the inputs and outputs of the Planning Component and of its internal modules. See the [Planning Component Interface](../../../autoware-interfaces/components/planning.md) page for the current implementation.
This section describes the inputs and outputs of the Planning Component and of its internal modules. See the [Planning Component Interface](../../interfaces/components/planning.md) page for the current implementation.

### Input to the planning component

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,17 @@ Here Autoware decides not to change lanes a second time due to the obstacle, so
However, operator could overwrite that decision through RTC function and force the lane change so that vehicle could reach to it's goal.
Using RTC, the operator can override these decisions to continue driving the vehicle to the goal.

![cooperation-scenes](./cooperation/scenes.drawio.svg)
![cooperation-scenes](cooperation/scenes.drawio.svg)

## Architecture

Modules that support RTC have the operator decision and cooperation policy in addition to the module decision as shown below.
These modules use the merged decision that is determined by these values when planning vehicle behavior.
See decisions section for details of these values.
The cooperation policy is used when there is no operator decision and has a default value set by the system settings.
If the module supports RTC, these information are available in [velocity factors or steering factors](./planning-factors.md) as [cooperation status](../types/autoware_adapi_v1_msgs/msg/CooperationStatus.md).
If the module supports RTC, these information are available in [velocity factors or steering factors](planning-factors.md) as [cooperation status](../types/autoware_adapi_v1_msgs/msg/CooperationStatus.md).

![cooperation-architecture](./cooperation/architecture.drawio.svg)
![cooperation-architecture](cooperation/architecture.drawio.svg)

## Sequence

Expand Down Expand Up @@ -77,7 +77,7 @@ The meanings of these values are as follows. Note that the cooperation policy is

The following flow is how the merged decision is determined.

![cooperation-decisions](./cooperation/decisions.drawio.svg)
![cooperation-decisions](cooperation/decisions.drawio.svg)

## Examples

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Below is an example of the diagnostics provided by this API.
The `path` in the diagram is an arbitrary string that describes the functional unit, and the `level` is its error level.
For error level, the same value as `diagnostic_msgs/msg/DiagnosticStatus` is used.

![graph-tree](./diagnostics/tree.drawio.svg)
![graph-tree](diagnostics/tree.drawio.svg)

The diagnostics data has static and dynamic parts, so the API provides these separately for efficiency.
Below is an example of a message that corresponds to the above diagram.
Expand All @@ -25,10 +25,10 @@ The links specify dependencies between nodes by index into an array of them.
The dynamic part of the diagnostic is published periodically as DiagGraphStatus.
The status has nodes and diags of the same length as the struct, with the same index representing the same functional unit.

![graph-data](./diagnostics/data.drawio.svg)
![graph-data](diagnostics/data.drawio.svg)

Some functional unit levels may be latched. If the abnormality continues for a certain period, the level value will not return to normal.
Use input_level to know the level before it was latched. Also, use latch_level to know if the latch is currently activated.
To restore the level after the latch has been activated, use the reset API.

![level](./diagnostics/level.drawio.svg)
![level](diagnostics/level.drawio.svg)
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ For safety, Autoware switches the operation to MRM when an abnormality is detect
Since the required behavior differs depending on the situation, MRM is implemented in various places as a specific mode in a normal module or as an independent module.
The fail-safe module selects the behavior of MRM according to the abnormality and switches the gate output to that command.

![fail-safe-architecture](./fail-safe/architecture.drawio.svg)
![fail-safe-architecture](fail-safe/architecture.drawio.svg)

## RTI state

Expand All @@ -34,7 +34,7 @@ For backward compatibility, the values listed in the MRM behavior table are rese
The MRM state indicates whether MRM is operating and its current behavior.
This state also provides success or failure of the operation. Generally, MRM will switch to another behavior if it fails.

![mrm-state](./fail-safe/mrm-state.drawio.svg)
![mrm-state](fail-safe/mrm-state.drawio.svg)

| State | Description |
| --------- | ---------------------------------------------------------- |
Expand All @@ -47,7 +47,7 @@ This state also provides success or failure of the operation. Generally, MRM wil
There is a dependency between MRM behaviors. For example, it switches from a comfortable stop to a emergency stop, but not the other way around.
This is service dependent. Autoware supports the following transitions by default.

![mrm-behavior](./fail-safe/mrm-behavior.drawio.svg)
![mrm-behavior](fail-safe/mrm-behavior.drawio.svg)

| State | Value | Description |
| ---------------- | ----- | ------------------------------------------------------------------------- |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ This API manages the initialization of localization. Autoware requires a global

## States

![localization-initialization-state](./localization/state.drawio.svg)
![localization-initialization-state](localization/state.drawio.svg)

| State | Description |
| ------------- | -------------------------------------------------------------------------------- |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

This API is used to manually control the vehicle, and provides the same interface for different operators: remote and local.
For example, the local operator controls a vehicle without a driver's seat using a joystick, while the remote operator provides remote support when problems occur with autonomous driving.
The command sent will be used when [operation mode](./operation_mode.md) is remote or local.
The command sent will be used when [operation mode](operation_mode.md) is remote or local.

## Operator status

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ In this state, calling the start API changes the state to MOVING and the vehicle
This mechanism can add processing such as announcements before the vehicle starts.
Depending on the configuration, the state may transition directly from STOPPED to MOVING.

![motion-state](./motion/state.drawio.svg)
![motion-state](motion/state.drawio.svg)

| State | Description |
| ---------------- | ----------------------------------------------- |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Autoware control mode has four operation modes.
| Local | Manually control the vehicle from nearby with some device such as a joystick. |
| Remote | Manually control the vehicle from a web application on the cloud. |

![operation-mode-architecture](./operation_mode/architecture.drawio.svg)
![operation-mode-architecture](operation_mode/architecture.drawio.svg)

## States

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ As the vehicle approaches the stop position, this factor appears with a status o
And when the vehicle reaches that position and stops, the status will be STOPPED.
The pose indicates the stop position, or the base link if the stop position cannot be calculated.

![velocity-factors](./planning-factors/velocity-factors.drawio.svg)
![velocity-factors](planning-factors/velocity-factors.drawio.svg)

## Steering factors

Expand All @@ -62,9 +62,9 @@ As the vehicle approaches the position to start steering, this factor appears wi
And when the vehicle reaches that position, the status will be TURNING.
The poses indicate the start and end position of the section where the status is TURNING.

![steering-factors-1](./planning-factors/steering-factors-1.drawio.svg)
![steering-factors-1](planning-factors/steering-factors-1.drawio.svg)

In cases such as lane change and avoidance, the vehicle will start steering at any position in the range depending on the situation.
For these types, the section where the status is TURNING will be updated dynamically and the poses will follow that.

![steering-factors-2](./planning-factors/steering-factors-2.drawio.svg)
![steering-factors-2](planning-factors/steering-factors-2.drawio.svg)
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ There are two ways to set the route. The one is a generic method that uses pose,

## States

![route-state](./routing/state.drawio.svg)
![route-state](routing/state.drawio.svg)

| State | Description |
| -------- | -------------------------------------------------- |
Expand Down
47 changes: 47 additions & 0 deletions docs/design/autoware-architecture-v1/interfaces/ad-api/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Autoware AD API

## Overview

Autoware AD API is the interface for operating the vehicle from outside the autonomous driving system.
[See here for the overall interface design of Autoware.](../index.md)

## User stories

The user stories are service scenarios that AD API assumes. AD API is designed based on these scenarios.
Each scenario is realized by a combination of use cases described later.
If there are scenarios that cannot be covered, please discuss adding a user story.

- [Bus service](stories/bus-service.md)
- [Taxi service](stories/taxi-service.md)

## Use cases

Use cases are partial scenarios derived from the user story and generically designed.
Service providers can combine these use cases to define user stories and check if AD API can be applied to their own scenarios.

- [Launch and terminate](use-cases/launch-terminate.md)
- [Initialize the pose](use-cases/initialize-pose.md)
- [Change the operation mode](use-cases/change-operation-mode.md)
- [Drive to the designated position](use-cases/drive-designated-position.md)
- [Get on and get off](use-cases/get-on-off.md)
- [Vehicle monitoring](use-cases/vehicle-monitoring.md)
- [Vehicle operation](use-cases/vehicle-operation.md)
- [System monitoring](use-cases/system-monitoring.md)
- [Manual control](use-cases/manual-control/index.md)

## Features

- [Interface](features/interface.md)
- [Operation Mode](features/operation_mode.md)
- [Routing](features/routing.md)
- [Localization](features/localization.md)
- [Motion](features/motion.md)
- [Planning](features/planning-factors.md)
- [Perception](features/perception.md)
- [Fail-safe](features/fail-safe.md)
- [Vehicle status](features/vehicle-status.md)
- [Vehicle doors](features/vehicle-doors.md)
- [Cooperation](features/cooperation.md)
- [Heartbeat](features/heartbeat.md)
- [Diagnostics](features/diagnostics.md)
- [Manual control](features/manual-control.md)
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type:
text: Target acceleration [m/s^2].
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
This is the target acceleration that Autoware is sending to the vehicle.
{% endblock %}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ type:
text: Target brake pedal ratio.
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
This is the target pedals that Autoware is sending to the vehicle.
The pedal value is the ratio with the maximum pedal depression being 1.0.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type:
text: Target steering tire angle [rad].
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
This is the target steering that Autoware is sending to the vehicle.
{% endblock %}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type:
text: Target velocity [m/s].
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
This is the target velocity that Autoware is sending to the vehicle.
{% endblock %}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ type:
text: response status
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
Get the list of MRM description.
For details, see the [fail-safe](../../../features/fail-safe.md).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type:
text: The strategy of the MRM request.
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
List the MRM requests from all senders.
For details, see the [fail-safe](../../../../features/fail-safe.md).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ type:
text: response status
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
Send the MRM request.
For details, see the [fail-safe](../../../../features/fail-safe.md).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type:
text: The currently selected behavior of MRM.
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
Get the MRM state.
For details, see the [fail-safe](../../../features/fail-safe.md).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type:
text: The message such as reasons for RTI.
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
Get the RTI state.
For details, see the [fail-safe](../../../features/fail-safe.md).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ type:
text: patch version
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
Get the interface version. The version follows Semantic Versioning.
{% endblock %}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type:
text: A value of the localization initialization state.
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
Get the initialization state of localization.
For details, see the [localization](../../../features/localization.md).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ type:
text: response status
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
Request to initialize localization.
For details, see the [localization](../../../features/localization.md).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type:
text: Target acceleration [m/s^2].
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
Sends acceleration command used in local operation mode.
To use this API, select the corresponding mode as described in [manual control](../../../../../features/manual-control.md).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type:
text: Target gear status.
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
Sends gear command used in local operation mode.
To use this API, select the corresponding mode as described in [manual control](../../../../../features/manual-control.md).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type:
text: Target hazard lights status.
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
Sends hazard lights command used in local operation mode.
To use this API, select the corresponding mode as described in [manual control](../../../../../features/manual-control.md).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ type:
text: Target brake pedal ratio.
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
Sends pedals command used in local operation mode. The pedal value is the ratio with the maximum pedal depression being 1.0.
To use this API, select the corresponding mode as described in [manual control](../../../../../features/manual-control.md).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ type:
text: Target steering tire velocity [rad/s].
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
Send steering command to this API.
To use this API, select the corresponding mode as described in [manual control](../../../../../features/manual-control.md).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type:
text: Target turn indicators status.
---

{% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %}
{% extends 'design/autoware-architecture-v1/interfaces/templates/autoware-interface.jinja2' %}
{% block description %}
Sends turn indicators command used in local operation mode.
To use this API, select the corresponding mode as described in [manual control](../../../../../features/manual-control.md).
Expand Down
Loading
Loading