Skip to content

Commit

Permalink
Merge pull request autowarefoundation#14 from tier4/sync-upstream
Browse files Browse the repository at this point in the history
chore: sync upstream
  • Loading branch information
tier4-autoware-public-bot[bot] authored Mar 30, 2022
2 parents c3b845d + e897ce5 commit 11ef3a5
Show file tree
Hide file tree
Showing 26 changed files with 375 additions and 171 deletions.
13 changes: 13 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -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
42 changes: 42 additions & 0 deletions .github/ISSUE_TEMPLATE/task.yaml
Original file line number Diff line number Diff line change
@@ -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
27 changes: 27 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## Description

<!-- Write a brief description of this PR. -->

## 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/
12 changes: 12 additions & 0 deletions .github/stale.yml
Original file line number Diff line number Diff line change
@@ -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.
10 changes: 2 additions & 8 deletions .github/sync-files.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion .pre-commit-config-optional.yaml
Original file line number Diff line number Diff line change
@@ -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]
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -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).
2 changes: 1 addition & 1 deletion docs/design/.pages
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
nav:
- index.md
- autoware-concepts
- autoware-interface
- autoware-interfaces
- configuration-management
- node-diagram
4 changes: 4 additions & 0 deletions docs/design/autoware-concepts/core-and-universe.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 33 additions & 2 deletions docs/design/autoware-concepts/index.md
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions docs/design/autoware-interfaces/.pages
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
nav:
- index.md
- AD API: ad-api
- components
2 changes: 2 additions & 0 deletions docs/design/autoware-interfaces/ad-api/.pages
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
nav:
- index.md
5 changes: 5 additions & 0 deletions docs/design/autoware-interfaces/ad-api/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# AD API

!!! warning

Under Construction
5 changes: 5 additions & 0 deletions docs/design/autoware-interfaces/components/.pages
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
nav:
- index.md
- planning.md
- control.md
- vehicle-interface.md
58 changes: 58 additions & 0 deletions docs/design/autoware-interfaces/components/control.md
Original file line number Diff line number Diff line change
@@ -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](<https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_control_msgs/msg/AckermannControlCommand.idl>
- 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
5 changes: 5 additions & 0 deletions docs/design/autoware-interfaces/components/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Component interfaces

!!! warning

Under Construction
Loading

0 comments on commit 11ef3a5

Please sign in to comment.