diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 00000000000..48765c24a7b
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,13 @@
+blank_issues_enabled: false
+contact_links:
+ - name: Question
+ url: https://github.com/autowarefoundation/autoware/discussions/new?category=q-a
+ about: Ask a question
+
+ - name: Feature request
+ url: https://github.com/autowarefoundation/autoware/discussions/new?category=feature-requests
+ about: Send a feature request
+
+ - name: Idea
+ url: https://github.com/autowarefoundation/autoware/discussions/new?category=ideas
+ about: Post an idea
diff --git a/.github/ISSUE_TEMPLATE/task.yaml b/.github/ISSUE_TEMPLATE/task.yaml
new file mode 100644
index 00000000000..cd8322f5074
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/task.yaml
@@ -0,0 +1,42 @@
+name: Task
+description: Plan a task
+body:
+ - type: checkboxes
+ attributes:
+ label: Checklist
+ description: Confirm the following items before proceeding. If one cannot be satisfied, create a discussion thread instead.
+ options:
+ - label: I've read the [contribution guidelines](https://github.com/autowarefoundation/autoware/blob/main/CONTRIBUTING.md).
+ required: true
+ - label: I've searched other issues and no duplicate issues were found.
+ required: true
+ - label: I've agreed with the maintainers that I can plan this task.
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: Write a brief description of the task.
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Purpose
+ description: Describe the purpose of the task.
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Possible approaches
+ description: Describe possible approaches for the task.
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Definition of done
+ description: Write the definition of done for the task.
+ validations:
+ required: true
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 00000000000..0890e570744
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,27 @@
+## Description
+
+
+
+## Pre-review checklist for the PR author
+
+The PR author **must** check the checkboxes below when creating the PR.
+
+- [ ] I've confirmed the [contribution guidelines].
+- [ ] The PR follows the [pull request guidelines].
+
+## In-review checklist for the PR reviewers
+
+The Reviewers **must** check the checkboxes below before approval.
+
+- [ ] The PR follows the [pull request guidelines].
+
+## Post-review checklist for the PR author
+
+The PR author **must** check the checkboxes below before merging.
+
+- [ ] There are no open discussions or they are tracked via tickets.
+
+After all checkboxes are checked, anyone who has write access can merge the PR.
+
+[contribution guidelines]: https://autowarefoundation.github.io/autoware-documentation/main/contributing/
+[pull request guidelines]: https://autowarefoundation.github.io/autoware-documentation/main/contributing/pull-request-guidelines/
diff --git a/.github/stale.yml b/.github/stale.yml
new file mode 100644
index 00000000000..84928d1b815
--- /dev/null
+++ b/.github/stale.yml
@@ -0,0 +1,12 @@
+# Modified from https://github.com/probot/stale#usage
+
+# Number of days of inactivity before an Issue or Pull Request with the stale label is closed
+daysUntilClose: false
+
+# Label to use when marking as stale
+staleLabel: stale
+
+# Comment to post when marking as stale
+markComment: >
+ This pull request has been automatically marked as stale because it has not had
+ recent activity.
diff --git a/.github/sync-files.yaml b/.github/sync-files.yaml
index e07c3801d3d..0729e45350f 100644
--- a/.github/sync-files.yaml
+++ b/.github/sync-files.yaml
@@ -4,24 +4,18 @@
- source: CONTRIBUTING.md
- source: DISCLAIMER.md
- source: LICENSE
- - source: .github/ISSUE_TEMPLATE/bug.yaml
- source: .github/ISSUE_TEMPLATE/config.yml
- source: .github/ISSUE_TEMPLATE/task.yaml
- - source: .github/PULL_REQUEST_TEMPLATE.md
- - source: .github/PULL_REQUEST_TEMPLATE/small-change.md
- - source: .github/PULL_REQUEST_TEMPLATE/standard-change.md
- source: .github/dependabot.yaml
+ - source: .github/stale.yml
- source: .github/workflows/pre-commit.yaml
- source: .github/workflows/pre-commit-optional.yaml
- source: .github/workflows/semantic-pull-request.yaml
- source: .github/workflows/spell-check-differential.yaml
+ - source: .github/workflows/sync-files.yaml
- source: .markdown-link-check.json
- source: .markdownlint.yaml
- source: .pre-commit-config-optional.yaml
- source: .prettierignore
- source: .prettierrc.yaml
- source: .yamllint.yaml
-
-- repository: autowarefoundation/autoware_common
- files:
- - source: .github/workflows/sync-files.yaml
diff --git a/.pre-commit-config-optional.yaml b/.pre-commit-config-optional.yaml
index e54ba1fdd5f..a805f1201c4 100644
--- a/.pre-commit-config-optional.yaml
+++ b/.pre-commit-config-optional.yaml
@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/tcort/markdown-link-check
- rev: v3.9.3
+ rev: v3.10.0
hooks:
- id: markdown-link-check
args: [--config=.markdown-link-check.json]
diff --git a/README.md b/README.md
index e72d5f3cb86..516fd776393 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
# autoware-documentation
-This is one of the prototype repositories for Autoware Core/Universe that AWF agreed to create in the [TSC meeting on 2021/11/17](https://discourse.ros.org/t/technical-steering-committee-tsc-meeting-36-2021-11-17-minutes/23168).
-
-Please see [autowarefoundation/autoware](https://github.com/autowarefoundation/autoware) for more details.
+- This repository contains the [MkDocs](https://www.mkdocs.org/) source files for the [Autoware documentation hosted on GitHub Pages](https://autowarefoundation.github.io/autoware-documentation/main/).
+- Since Autoware is made up of [multiple repositories](https://github.com/autowarefoundation/), a central documentation repository is important to make information accessible from a single place.
+- For more information about Autoware and its related repositories, refer to the [Autoware Foundation's organization profile](https://github.com/autowarefoundation/.github/blob/main/profile/README.md).
diff --git a/docs/design/.pages b/docs/design/.pages
index f7eb42ba1fe..4aa25fe464b 100644
--- a/docs/design/.pages
+++ b/docs/design/.pages
@@ -1,6 +1,6 @@
nav:
- index.md
- autoware-concepts
- - autoware-interface
+ - autoware-interfaces
- configuration-management
- node-diagram
diff --git a/docs/design/autoware-concepts/core-and-universe.svg b/docs/design/autoware-concepts/core-and-universe.svg
new file mode 100644
index 00000000000..a90eac03d2e
--- /dev/null
+++ b/docs/design/autoware-concepts/core-and-universe.svg
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/docs/design/autoware-concepts/index.md b/docs/design/autoware-concepts/index.md
index 9c0d4c4d235..c5e0a45163b 100644
--- a/docs/design/autoware-concepts/index.md
+++ b/docs/design/autoware-concepts/index.md
@@ -1,5 +1,36 @@
# Autoware concepts
-!!! warning
+Autoware is the world’s first open-source software for autonomous driving systems. Autoware provides value for both The technology developers of autonomous driving systems can create new components based on Autoware. The service operators of autonomous driving systems, on the other hand, can select appropriate technology components with Autoware. This is enabled by the microautonomy architecture that modularizes its software stack into the core and universe subsystems (modules).
- Under Construction
+## Microautonomy architecture
+
+Autoware uses a [pipeline architecture](http://www.cs.sjsu.edu/~pearce/modules/patterns/distArch/pipeline.htm) to enable the development of autonomous driving systems. The pipeline architecture used in Autoware consists of components similar to [three-layer-architecture](http://www.flownet.com/gat/papers/tla.pdf). And they run in parallel. There are 2 main modules: the Core and the Universe. The components in these modules are designed to be extensible and reusable. And we call it microautonomy architecture.
+
+![core-and-universe.svg](core-and-universe.svg)
+
+### The Core module
+
+The Core module contains basic runtimes and technology components that satisfy the basic functionality and capability of sensing, computing, and actuation required for autonomous driving systems. AWF develops and maintains the Core module with their architects and leading members through their working groups. Anyone can contribute to the Core but the PR(Pull Request) acceptance criteria is more strict compared to the Universe.
+
+### The Universe module
+
+The Universe modules are extensions to the Core module that can be provided by the technology developers to enhance the functionality and capability of sensing, computing, and actuation. AWF provides the base Universe module to extend from. A key feature of the microautonomy architecture is that the Universe modules can be contributed to by any organization and individual. That is, you can even create your Universe and make it available for the Autoware community and ecosystem. AWF is responsible for quality control of the Universe modules through their development process. As a result, there are multiple types of the Universe modules - some are verified and validated by AWF and others are not. It is up to the users of Autoware which Universe modules are selected and integrated to build their end applications.
+
+## Interface design
+
+The interface design is the most essential piece of the microautonomy architecture, which is classified into internal and external interfaces. The component interface is designed for the components in a Universe module to communicate with those in other modules, including the Core module, within Autoware internally. The AD(Autonomous Driving) API, on the other hand, is designed for the applications of Autoware to access the technology components in the Core and Universe modules of Autoware externally. Designing solid interfaces, the microautonomy architecture is made possible with our partners, and at the same time is made feasible for our partners.
+
+## Challenges
+
+A grand challenge of the microautonomy architecture is to achieve real-time capability, which guarantees all the technology components activated in the system to predictably meet timing constraints (given deadlines). In general, it is difficult, if not impossible, to tightly estimate the worst-case execution times (WCETs) of components.
+
+In addition, it is also difficult, if not impossible, to tightly estimate the end-to-end latency of components connected by a DAG. Autonomous driving systems based on the microautonomy architecture, therefore, must be designed to be fail-safe but not never-fail. We accept that the timing constraints may be violated (the given deadlines may be missed) as far as the overrun is taken into account. The overrun handlers are two-fold: (i) platform-defined and (ii) user-defined. The platform-defined handler is implemented as part of the platform by default, while the user-defined handler can overwrite it or add a new handler to the system. This is what we call “fail-safe” on a timely basis.
+
+## Requirements and roadmap
+
+Goals:
+
+- All open-source
+- Use case driven
+- Real-time (predictable) framework with overrun handling
+- Code quality
diff --git a/docs/design/autoware-interfaces/.pages b/docs/design/autoware-interfaces/.pages
new file mode 100644
index 00000000000..d9e535bba90
--- /dev/null
+++ b/docs/design/autoware-interfaces/.pages
@@ -0,0 +1,4 @@
+nav:
+ - index.md
+ - AD API: ad-api
+ - components
diff --git a/docs/design/autoware-interfaces/ad-api/.pages b/docs/design/autoware-interfaces/ad-api/.pages
new file mode 100644
index 00000000000..35fd5a113be
--- /dev/null
+++ b/docs/design/autoware-interfaces/ad-api/.pages
@@ -0,0 +1,2 @@
+nav:
+ - index.md
diff --git a/docs/design/autoware-interfaces/ad-api/index.md b/docs/design/autoware-interfaces/ad-api/index.md
new file mode 100644
index 00000000000..91e28c21d10
--- /dev/null
+++ b/docs/design/autoware-interfaces/ad-api/index.md
@@ -0,0 +1,5 @@
+# AD API
+
+!!! warning
+
+ Under Construction
diff --git a/docs/design/autoware-interfaces/components/.pages b/docs/design/autoware-interfaces/components/.pages
new file mode 100644
index 00000000000..c0fcb6630bc
--- /dev/null
+++ b/docs/design/autoware-interfaces/components/.pages
@@ -0,0 +1,5 @@
+nav:
+ - index.md
+ - planning.md
+ - control.md
+ - vehicle-interface.md
diff --git a/docs/design/autoware-interfaces/components/control.md b/docs/design/autoware-interfaces/components/control.md
new file mode 100644
index 00000000000..9df98c0936d
--- /dev/null
+++ b/docs/design/autoware-interfaces/components/control.md
@@ -0,0 +1,58 @@
+# Control
+
+![Node diagram](images/Control-Bus-ODD-Architecture.drawio.svg)
+
+## Inputs
+
+### Vehicle kinematic state
+
+Current position and orientation of ego. Published by the Localization module.
+
+- [nav_msgs/Odometry](https://docs.ros.org/en/noetic/api/nav_msgs/html/msg/Odometry.html)
+ - [std_msgs/Header](https://docs.ros.org/en/noetic/api/std_msgs/html/msg/Header.html) header
+ - string child_frame_id
+ - [geometry_msgs/PoseWithCovariance](https://docs.ros.org/en/noetic/api/geometry_msgs/html/msg/PoseWithCovariance.html) pose
+ - [geometry_msgs/TwistWithCovariance](https://docs.ros.org/en/noetic/api/geometry_msgs/html/msg/TwistWithCovariance.html) twist
+
+### Trajectory
+
+trajectory to be followed by the controller. See Outputs of Planning.
+
+### Steering Status
+
+Current steering of the ego vehicle. Published by the Vehicle Interface.
+
+- Steering message ([github discussion](https://github.com/autowarefoundation/autoware/discussions/36)).
+ - builtin_interfaces::msg::Time stamp
+ - float32 steering_angle
+
+### Actuation Status
+
+Actuation status of the ego vehicle for acceleration, steering, and brake.
+
+TODO This represents the reported physical efforts exerted by the vehicle actuators. Published by the Vehicle Interface.
+
+- ActuationStatus ([github discussion](https://github.com/autowarefoundation/autoware/discussions/36)).
+ - builtin_interfaces::msg::Time stamp
+ - float32 acceleration
+ - float32 steering
+
+## Output
+
+### Vehicle Control Command
+
+A motion signal to drive the vehicle, achieved by the low-level controller in the vehicle layer. Used by the Vehicle Interface.
+
+- [autoware_auto_control_msgs/AckermannControlCommand](
+ - builtin_interfaces::msg::Time stamp
+ - [autoware_auto_control_msgs/AckermannLateralCommand](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_control_msgs/msg/AckermannLateralCommand.idl) lateral
+ - builtin_interfaces::msg::Time stamp
+ - float steering_tire_angle
+ - float steering_tire_rotation_rate
+ - [autoware_auto_control_msgs/LongitudinalCommand](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_control_msgs/msg/LongitudinalCommand.idl) longitudinal
+ - builtin_interfaces::msg::Time stamp
+ - builtin_interfaces::msg::Duration duration
+ - builtin_interfaces::msg::Duration time_step
+ - float[] speeds
+ - float[] accelerations
+ - float[] jerks
diff --git a/docs/design/component-interfaces/images/Control-Bus-ODD-Architecture.drawio.svg b/docs/design/autoware-interfaces/components/images/Control-Bus-ODD-Architecture.drawio.svg
similarity index 100%
rename from docs/design/component-interfaces/images/Control-Bus-ODD-Architecture.drawio.svg
rename to docs/design/autoware-interfaces/components/images/Control-Bus-ODD-Architecture.drawio.svg
diff --git a/docs/design/component-interfaces/images/Planning-Bus-ODD-Architecture.drawio.svg b/docs/design/autoware-interfaces/components/images/Planning-Bus-ODD-Architecture.drawio.svg
similarity index 100%
rename from docs/design/component-interfaces/images/Planning-Bus-ODD-Architecture.drawio.svg
rename to docs/design/autoware-interfaces/components/images/Planning-Bus-ODD-Architecture.drawio.svg
diff --git a/docs/design/component-interfaces/images/Vehicle-Interface-Bus-ODD-Architecture.drawio.svg b/docs/design/autoware-interfaces/components/images/Vehicle-Interface-Bus-ODD-Architecture.drawio.svg
similarity index 100%
rename from docs/design/component-interfaces/images/Vehicle-Interface-Bus-ODD-Architecture.drawio.svg
rename to docs/design/autoware-interfaces/components/images/Vehicle-Interface-Bus-ODD-Architecture.drawio.svg
diff --git a/docs/design/autoware-interfaces/components/index.md b/docs/design/autoware-interfaces/components/index.md
new file mode 100644
index 00000000000..d3170ab4fdc
--- /dev/null
+++ b/docs/design/autoware-interfaces/components/index.md
@@ -0,0 +1,5 @@
+# Component interfaces
+
+!!! warning
+
+ Under Construction
diff --git a/docs/design/component-interfaces/planning-control-vehicle-interface.md b/docs/design/autoware-interfaces/components/planning.md
similarity index 54%
rename from docs/design/component-interfaces/planning-control-vehicle-interface.md
rename to docs/design/autoware-interfaces/components/planning.md
index 9ffe28c0d13..7c995e0741b 100644
--- a/docs/design/component-interfaces/planning-control-vehicle-interface.md
+++ b/docs/design/autoware-interfaces/components/planning.md
@@ -1,12 +1,10 @@
-# Autoware Core/Universe Architecture
-
-## Planning
+# Planning
![Node diagram](images/Planning-Bus-ODD-Architecture.drawio.svg)
-### Inputs
+## Inputs
-#### 3D Object Predictions
+### 3D Object Predictions
set of perceived objects around ego that need to be avoided when planning a trajectory. Published by the Perception module.
@@ -30,7 +28,7 @@ set of perceived objects around ego that need to be avoided when planning a traj
- [geometry_msgs::msg::Polygon](https://docs.ros.org/en/noetic/api/geometry_msgs/html/msg/Polygon.html) polygon
- float height
-#### Traffic Light Response
+### Traffic Light Response
Service response with traffic light information. **The message definition is under discussion.**
@@ -49,7 +47,7 @@ With the traffic_light_state being one of the following
- OFF = 7
- UNKNOWN = 8
-#### Vehicle kinematic state
+### Vehicle kinematic state
current position and orientation of ego. Published by the Localization module.
@@ -60,7 +58,7 @@ current position and orientation of ego. Published by the Localization module.
- [geometry_msgs/PoseWithCovariance pose](https://docs.ros.org/en/noetic/api/geometry_msgs/html/msg/PoseWithCovariance.html)
- [geometry_msgs/TwistWithCovariance twist](https://docs.ros.org/en/noetic/api/geometry_msgs/html/msg/TwistWithCovariance.html)
-#### Lanelet2 Map
+### Lanelet2 Map
map of the environment where the planning takes place. Published by the Map Server.
@@ -71,19 +69,19 @@ map of the environment where the planning takes place. Published by the Map Serv
- string map_version
- sequence < uint8 > data
-#### Goal Pose
+### Goal Pose
target pose of ego. Published by the User Interface.
- [geometry_msgs/PoseStamped](https://docs.ros.org/en/lunar/api/geometry_msgs/html/msg/PoseStamped.html)
-#### Engagement Response
+### Engagement Response
TBD.
**The message definition is under discussion.**
-#### Error status
+### Error status
a status corresponding to the current state of Autoware. Used by the Vehicle Interface to switch between different modes in case of emergency. Published by the Diagnostic Manager.
@@ -103,9 +101,9 @@ With the state being one of the following:
**The message definition is under discussion.**
-### Outputs
+## Outputs
-#### Traffic Light Query
+### Traffic Light Query
service request for the state of a specific traffic light. Sent to the Perception module.
@@ -113,7 +111,7 @@ service request for the state of a specific traffic light. Sent to the Perceptio
**The message definition is under discussion.**
-#### Trajectory
+### Trajectory
A sequence of space and velocity points to be followed by the controller.
@@ -129,7 +127,7 @@ A sequence of space and velocity points to be followed by the controller.
- float front_wheel_angle_rad
- float rear_wheel_angle_rad
-#### Vehicle Signal Commands
+### Vehicle Signal Commands
Commands for various elements of the vehicle unrelated to motion. Sent to the Vehicle Interface. (See [autoware_auto_vehicle_msgs](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/tree/master/autoware_auto_vehicle_msgs/msg) for the definition.)
@@ -141,144 +139,14 @@ Commands for various elements of the vehicle unrelated to motion. Sent to the Ve
- Turn Indicator Command
- Wipers Command
-#### Missions Status
+### Missions Status
TBD.
**The message definition is under discussion.**
-#### Engagement Request
+### Engagement Request
TBD,
**The message definition is under discussion.**
-
-## Control
-
-![Node diagram](images/Control-Bus-ODD-Architecture.drawio.svg)
-
-### Inputs
-
-#### Vehicle kinematic state
-
-Current position and orientation of ego. Published by the Localization module.
-
-- [nav_msgs/Odometry](https://docs.ros.org/en/noetic/api/nav_msgs/html/msg/Odometry.html)
- - [std_msgs/Header](https://docs.ros.org/en/noetic/api/std_msgs/html/msg/Header.html) header
- - string child_frame_id
- - [geometry_msgs/PoseWithCovariance](https://docs.ros.org/en/noetic/api/geometry_msgs/html/msg/PoseWithCovariance.html) pose
- - [geometry_msgs/TwistWithCovariance](https://docs.ros.org/en/noetic/api/geometry_msgs/html/msg/TwistWithCovariance.html) twist
-
-#### Trajectory
-
-trajectory to be followed by the controller. See Outputs of Planning.
-
-#### Steering Status
-
-Current steering of the ego vehicle. Published by the Vehicle Interface.
-
-- Steering message ([github discussion](https://github.com/autowarefoundation/autoware/discussions/36)).
- - builtin_interfaces::msg::Time stamp
- - float32 steering_angle
-
-#### Actuation Status
-
-Actuation status of the ego vehicle for acceleration, steering, and brake.
-
-TODO This represents the reported physical efforts exerted by the vehicle actuators. Published by the Vehicle Interface.
-
-- ActuationStatus ([github discussion](https://github.com/autowarefoundation/autoware/discussions/36)).
- - builtin_interfaces::msg::Time stamp
- - float32 acceleration
- - float32 steering
-
-### Output
-
-#### Vehicle Control Command
-
-A motion signal to drive the vehicle, achieved by the low-level controller in the vehicle layer. Used by the Vehicle Interface.
-
-- [autoware_auto_control_msgs/AckermannControlCommand](
- - builtin_interfaces::msg::Time stamp
- - [autoware_auto_control_msgs/AckermannLateralCommand](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_control_msgs/msg/AckermannLateralCommand.idl) lateral
- - builtin_interfaces::msg::Time stamp
- - float steering_tire_angle
- - float steering_tire_rotation_rate
- - [autoware_auto_control_msgs/LongitudinalCommand](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_control_msgs/msg/LongitudinalCommand.idl) longitudinal
- - builtin_interfaces::msg::Time stamp
- - builtin_interfaces::msg::Duration duration
- - builtin_interfaces::msg::Duration time_step
- - float[] speeds
- - float[] accelerations
- - float[] jerks
-
-## Vehicle Interface
-
-![Node diagram](images/Vehicle-Interface-Bus-ODD-Architecture.drawio.svg)
-
-The `Vehicle Interface` receives the `Vehicle Signal Commands` and `Vehicle Control Commands` and publishes the vehicle status. It also communicates with vehicle by the vehicle-specific protocol.
-
-The `Gate` switches multiple `Vehicle Control Commands`. These signals include autonomous diving command, joystick, remote control, and emergency operation, etc.
-The `Adapter` converts generalized control command (target steering, steering rate, velocity, acceleration, jerk) into vehicle-specific control values (steering-torque, wheel-torque, voltage, pressure, accel pedal position, etc).
-
-### Inputs
-
-#### Error status
-
-(See Inputs of Planning.)
-
-#### Vehicle Control Command
-
-(See Output of Control.)
-
-#### Vehicle Signals Commands
-
-Commands for various elements of the vehicle unrelated to motion. Published by the Planning module.
-
-### Outputs
-
-#### Vehicle Signal Reports
-
-Reports for various elements of the vehicle unrelated to motion. Published by the Vehicle Interface.
-
-#### Vehicle Odometry
-
-Odometry of the vehicle. Used by the Localization module to update the pose of the vehicle in the map.
-
-- [geometry_msgs/TwistWithCovarianceStamped](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/TwistWithCovarianceStamped.html) odometry
-
-#### Steering Status
-
-Steering of the ego vehicle. Published by the Vehicle Interface.
-
-- Steering message ([github discussion](https://github.com/autowarefoundation/autoware/discussions/36)).
- - builtin_interfaces::msg::Time stamp
- - float32 steering_angle
-
-#### Actuation Status
-
-Actuation status of the ego vehicle for acceleration, steering, and brake. This represents the reported physical efforts exerted by the vehicle actuators. Published by the Vehicle Interface.
-
-- ActuationStatus ([github discussion](https://github.com/autowarefoundation/autoware/discussions/36)).
- - builtin_interfaces::msg::Time stamp
- - float32 acceleration
- - float32 steering
- - float32 brake
-
-**The message definition is under discussion.**
-
-#### Actuation Command
-
-Actuation command sent to the ego vehicle. This represents the requested physical efforts to be exerted by the vehicle actuators. Published by the Vehicle Interface as generated by the adapter.
-
-- ActuationCommand ([github discussion](https://github.com/autowarefoundation/autoware/discussions/36).)
- - builtin_interfaces::msg::Time stamp
- - float32 acceleration
- - float32 steering
- - float32 brake
-
-**The message definition is under discussion.**
-
-#### Vehicle Communication
-
-Vehicle specific messages protocol like CAN (Controller Area Network).
diff --git a/docs/design/autoware-interfaces/components/vehicle-interface.md b/docs/design/autoware-interfaces/components/vehicle-interface.md
new file mode 100644
index 00000000000..dc25e1ec6a0
--- /dev/null
+++ b/docs/design/autoware-interfaces/components/vehicle-interface.md
@@ -0,0 +1,70 @@
+# Vehicle Interface
+
+![Node diagram](images/Vehicle-Interface-Bus-ODD-Architecture.drawio.svg)
+
+The `Vehicle Interface` receives the `Vehicle Signal Commands` and `Vehicle Control Commands` and publishes the vehicle status. It also communicates with vehicle by the vehicle-specific protocol.
+
+The `Gate` switches multiple `Vehicle Control Commands`. These signals include autonomous diving command, joystick, remote control, and emergency operation, etc.
+The `Adapter` converts generalized control command (target steering, steering rate, velocity, acceleration, jerk) into vehicle-specific control values (steering-torque, wheel-torque, voltage, pressure, accel pedal position, etc).
+
+## Inputs
+
+### Error status
+
+(See Inputs of Planning.)
+
+### Vehicle Control Command
+
+(See Output of Control.)
+
+### Vehicle Signals Commands
+
+Commands for various elements of the vehicle unrelated to motion. Published by the Planning module.
+
+## Outputs
+
+### Vehicle Signal Reports
+
+Reports for various elements of the vehicle unrelated to motion. Published by the Vehicle Interface.
+
+### Vehicle Odometry
+
+Odometry of the vehicle. Used by the Localization module to update the pose of the vehicle in the map.
+
+- [geometry_msgs/TwistWithCovarianceStamped](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/TwistWithCovarianceStamped.html) odometry
+
+### Steering Status
+
+Steering of the ego vehicle. Published by the Vehicle Interface.
+
+- Steering message ([github discussion](https://github.com/autowarefoundation/autoware/discussions/36)).
+ - builtin_interfaces::msg::Time stamp
+ - float32 steering_angle
+
+### Actuation Status
+
+Actuation status of the ego vehicle for acceleration, steering, and brake. This represents the reported physical efforts exerted by the vehicle actuators. Published by the Vehicle Interface.
+
+- ActuationStatus ([github discussion](https://github.com/autowarefoundation/autoware/discussions/36)).
+ - builtin_interfaces::msg::Time stamp
+ - float32 acceleration
+ - float32 steering
+ - float32 brake
+
+**The message definition is under discussion.**
+
+### Actuation Command
+
+Actuation command sent to the ego vehicle. This represents the requested physical efforts to be exerted by the vehicle actuators. Published by the Vehicle Interface as generated by the adapter.
+
+- ActuationCommand ([github discussion](https://github.com/autowarefoundation/autoware/discussions/36).)
+ - builtin_interfaces::msg::Time stamp
+ - float32 acceleration
+ - float32 steering
+ - float32 brake
+
+**The message definition is under discussion.**
+
+### Vehicle Communication
+
+Vehicle specific messages protocol like CAN (Controller Area Network).
diff --git a/docs/design/autoware-interfaces/index.md b/docs/design/autoware-interfaces/index.md
new file mode 100644
index 00000000000..50bcb76c830
--- /dev/null
+++ b/docs/design/autoware-interfaces/index.md
@@ -0,0 +1,5 @@
+# Autoware interfaces
+
+!!! warning
+
+ Under Construction
diff --git a/docs/design/index.md b/docs/design/index.md
index 6c9daba4b8d..c714c29c9e1 100644
--- a/docs/design/index.md
+++ b/docs/design/index.md
@@ -1,11 +1,47 @@
-# Design
+# Autoware's Design
+
+## Architecture
+
+Core and Universe.
+
+Autoware provides the runtimes and technology components by open-source software. The runtimes are based on the Robot Operating System (ROS). The technology components are provided by contributors, which include, but are not limited to:
+
+- Sensing
+ - Camera Component
+ - LiDAR Component
+ - RADAR Component
+ - GNSS Component
+- Computing
+ - Localization Component
+ - Perception Component
+ - Planning Component
+ - Control Component
+ - Logging Component
+ - System Monitoring Component
+- Actuation
+ - DBW Component
+- Tools
+ - Simulator Component
+ - Mapping Component
+ - Remote Component
+ - ML Component
+ - Annotation Component
+ - Calibration Component
+
+## Concern, Assumption, and Limitation
+
+The downside of the microautonomy architecture is that the computational performance of end applications is sacrificed due to its data path overhead attributed to functional modularity. In other words, the trade-off characteristic of the microautonomy architecture exists between computational performance and functional modularity. This trade-off problem can be solved technically by introducing real-time capability. This is because autonomous driving systems are not really designed to be real-fast, that is, low-latency computing is nice-to-have but not must-have. The must-have feature for autonomous driving systems is that the latency of computing is predictable, that is, the systems are real-time. As a whole, we can compromise computational performance to an extent that is predictable enough to meet the given timing constraints of autonomous driving systems, often referred to as deadlines of computation.
+
+## Design
!!! warning
Under Construction
-## Autoware concepts
+### Autoware concepts
+
+### Autoware interfaces
-## Autoware interfaces
+### Configuration management
-## Configuration management
+## Conclusion
diff --git a/docs/help/support-guidelines.md b/docs/help/support-guidelines.md
index f877e8d1b34..65d184f4a94 100644
--- a/docs/help/support-guidelines.md
+++ b/docs/help/support-guidelines.md
@@ -18,7 +18,7 @@ Choose appropriate resources depending on what kind of help you need and read th
- Design discussions
- [GitHub Issues](#github-issues)
- Confirmed bugs
-- [Slack](#slack)
+- [Discord](#discord)
- Instant messaging between contributors
- [ROS Discourse](#ros-discourse)
- General topics that should be widely announced
@@ -63,11 +63,13 @@ If you can't determine the appropriate repository, ask the maintainers for help
If you want to fix the bug by yourself, discuss the approach with maintainers and submit a pull request.
-## Slack
+## Discord
-Autoware has a Slack workspace for casual communication between contributors.
+[![Discord](https://img.shields.io/discord/953808765935816715?label=Join%20Autoware%20Discord&style=for-the-badge)](https://discord.gg/Q94UsPvReQ)
-For example, this is a good place for the following activities:
+Autoware has a Discord server for casual communication between contributors.
+
+The Autoware Discord server is a good place for the following activities:
- Introduce yourself to the community.
- Chat with contributors.
diff --git a/docs/installation/autoware/docker-installation.md b/docs/installation/autoware/docker-installation.md
index b3b23b469e8..db9d5ee4671 100644
--- a/docs/installation/autoware/docker-installation.md
+++ b/docs/installation/autoware/docker-installation.md
@@ -22,8 +22,23 @@
./setup-dev-env.sh docker
```
+!!!warning
+
+ Be very careful with this method. Make sure you read and confirmed all the steps in the Ansible configuration before using it.
+
+If you want to manually install the dependencies:
+
+- See the roles in [docker.yaml](https://github.com/autowarefoundation/autoware/blob/main/ansible/playbooks/docker.yaml).
+- Read the READMEs of each role under the [ansible/roles](https://github.com/autowarefoundation/autoware/tree/main/ansible/roles) directory.
+- Install the listed dependencies following the linked resources.
+
## How to set up a workspace
+!!!warning
+
+ Before proceeding, confirm and agree with the [NVIDIA Deep Learning Container license](https://developer.nvidia.com/ngc/nvidia-deep-learning-container-license).
+ By pulling and using the Autoware Universe images, you accept the terms and conditions of the license.
+
1. Launch a Docker container
```bash
diff --git a/docs/installation/autoware/source-installation.md b/docs/installation/autoware/source-installation.md
index 3b90fc77ba3..584cbc0f756 100644
--- a/docs/installation/autoware/source-installation.md
+++ b/docs/installation/autoware/source-installation.md
@@ -37,7 +37,13 @@ sudo apt-get -y install git
!!!warning
- Be very careful with this method. Make sure you read and confirmed all the steps in the ansible configuration before using it.
+ Be very careful with this method. Make sure you read and confirmed all the steps in the Ansible configuration before using it.
+
+If you want to manually install the dependencies:
+
+- See the roles in [universe.yaml](https://github.com/autowarefoundation/autoware/blob/main/ansible/playbooks/universe.yaml).
+- Read the READMEs of each role under the [ansible/roles](https://github.com/autowarefoundation/autoware/tree/main/ansible/roles) directory.
+- Install the listed dependencies following the linked resources.
## How to set up a workspace