├── .fdignore
├── .rgignore
├── ansible
├── COLCON_IGNORE
├── .gitignore
├── roles
│ ├── cuda
│ │ ├── meta
│ │ │ └── main.yaml
│ │ └── defaults
│ │ │ └── main.yaml
│ ├── ros2
│ │ ├── meta
│ │ │ └── main.yaml
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ └── tasks
│ │ │ └── main.yaml
│ ├── agnocast
│ │ ├── meta
│ │ │ └── main.yaml
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ └── README.md
│ ├── artifacts
│ │ ├── meta
│ │ │ └── main.yaml
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ └── README.md
│ ├── dev_tools
│ │ ├── meta
│ │ │ └── main.yaml
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ ├── README.md
│ │ └── tasks
│ │ │ └── main.yaml
│ ├── gdown
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ ├── meta
│ │ │ └── main.yaml
│ │ ├── README.md
│ │ └── tasks
│ │ │ └── main.yaml
│ ├── pacmod
│ │ ├── meta
│ │ │ └── main.yaml
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ ├── README.md
│ │ └── tasks
│ │ │ └── main.yaml
│ ├── spconv
│ │ ├── meta
│ │ │ └── main.yaml
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ ├── README.md
│ │ └── tasks
│ │ │ └── main.yaml
│ ├── telegraf
│ │ ├── meta
│ │ │ └── main.yaml
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ ├── files
│ │ │ ├── load-data.png
│ │ │ ├── create-org.png
│ │ │ ├── generate-api-token.png
│ │ │ ├── get_telegraf_procmem_json.sh
│ │ │ ├── get_telegraf_proccpu_json.sh
│ │ │ └── telegraf.conf
│ │ ├── handlers
│ │ │ └── main.yaml
│ │ └── README.md
│ ├── build_tools
│ │ ├── meta
│ │ │ └── main.yaml
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ ├── README.md
│ │ └── tasks
│ │ │ └── main.yaml
│ ├── docker_engine
│ │ ├── meta
│ │ │ └── main.yaml
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ ├── README.md
│ │ └── tasks
│ │ │ └── main.yaml
│ ├── geographiclib
│ │ ├── meta
│ │ │ └── main.yaml
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ ├── README.md
│ │ └── tasks
│ │ │ └── main.yaml
│ ├── kisak_mesa
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ ├── meta
│ │ │ └── main.yaml
│ │ ├── tasks
│ │ │ └── main.yaml
│ │ └── README.md
│ ├── qt5ct_setup
│ │ ├── meta
│ │ │ └── main.yml
│ │ ├── defaults
│ │ │ └── main.yml
│ │ ├── files
│ │ │ ├── autoware-rviz-icons
│ │ │ │ ├── primary
│ │ │ │ │ ├── minus.svg
│ │ │ │ │ ├── branch-open.svg
│ │ │ │ │ ├── branch-closed.svg
│ │ │ │ │ ├── add.svg
│ │ │ │ │ ├── splitter-horizontal.svg
│ │ │ │ │ ├── splitter-vertical.svg
│ │ │ │ │ ├── close.svg
│ │ │ │ │ ├── checkbox_unchecked_enabled.svg
│ │ │ │ │ ├── checkbox_unchecked_hovered.svg
│ │ │ │ │ ├── checkbox_unchecked_pressed.svg
│ │ │ │ │ ├── checkbox_indeterminate_enabled.svg
│ │ │ │ │ ├── checkbox_indeterminate_hovered.svg
│ │ │ │ │ ├── checkbox_indeterminate_pressed.svg
│ │ │ │ │ ├── checkbox_unchecked_disabled.svg
│ │ │ │ │ ├── checkbox_indeterminate_disabled.svg
│ │ │ │ │ ├── checkbox_checked_disabled.svg
│ │ │ │ │ ├── checkbox_checked_enabled.svg
│ │ │ │ │ ├── checkbox_checked_hovered.svg
│ │ │ │ │ ├── checkbox_checked_pressed.svg
│ │ │ │ │ ├── more.svg
│ │ │ │ │ ├── uparrow.svg
│ │ │ │ │ ├── downarrow.svg
│ │ │ │ │ ├── leftarrow.svg
│ │ │ │ │ ├── rightarrow.svg
│ │ │ │ │ ├── tab_close.svg
│ │ │ │ │ ├── branch-end.svg
│ │ │ │ │ ├── branch-more.svg
│ │ │ │ │ ├── slider.svg
│ │ │ │ │ ├── radiobutton_unchecked.svg
│ │ │ │ │ ├── radiobutton_unchecked_invert.svg
│ │ │ │ │ ├── radiobutton_checked.svg
│ │ │ │ │ ├── radiobutton_checked_invert.svg
│ │ │ │ │ ├── sizegrip.svg
│ │ │ │ │ ├── float.svg
│ │ │ │ │ ├── toolbar-handle-horizontal.svg
│ │ │ │ │ └── toolbar-handle-vertical.svg
│ │ │ │ ├── active
│ │ │ │ │ ├── uparrow.svg
│ │ │ │ │ └── downarrow.svg
│ │ │ │ └── disabled
│ │ │ │ │ ├── uparrow.svg
│ │ │ │ │ ├── downarrow.svg
│ │ │ │ │ ├── leftarrow.svg
│ │ │ │ │ ├── rightarrow.svg
│ │ │ │ │ ├── vline.svg
│ │ │ │ │ ├── branch-end.svg
│ │ │ │ │ ├── branch-more.svg
│ │ │ │ │ ├── radiobutton_unchecked.svg
│ │ │ │ │ └── radiobutton_checked.svg
│ │ │ └── qt5ct.conf
│ │ ├── README.md
│ │ └── tasks
│ │ │ └── main.yml
│ ├── ros2_dev_tools
│ │ ├── meta
│ │ │ └── main.yaml
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ ├── tasks
│ │ │ └── main.yaml
│ │ └── README.md
│ ├── tensorrt
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ ├── meta
│ │ │ └── main.yaml
│ │ ├── README.md
│ │ └── tasks
│ │ │ └── main.yaml
│ ├── rmw_implementation
│ │ ├── meta
│ │ │ └── main.yaml
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ ├── README.md
│ │ └── tasks
│ │ │ └── main.yaml
│ └── nvidia_container_toolkit
│ │ ├── meta
│ │ └── main.yaml
│ │ ├── defaults
│ │ └── main.yaml
│ │ └── tasks
│ │ └── main.yaml
├── playbooks
│ ├── install_rviz_theme.yaml
│ ├── telegraf.yaml
│ ├── download_artifacts.yaml
│ ├── install_spconv.yaml
│ ├── role_rmw_implementation.yaml
│ ├── rosdep.yaml
│ ├── docker.yaml
│ └── openadkit.yaml
├── galaxy.yml
└── README.md
├── .shellcheckrc
├── simulator-nightly.repos
├── arm64.env
├── .github
├── pull_request_template.md
├── workflows
│ ├── mirror-main-branch.yaml
│ ├── setup-docker.yaml
│ ├── dco.yaml
│ ├── semantic-pull-request.yaml
│ ├── cancel-previous-workflows.yaml
│ ├── setup-universe.yaml
│ ├── pre-commit-ansible.yaml
│ ├── pre-commit-optional.yaml
│ ├── pre-commit.yaml
│ ├── spell-check-differential.yaml
│ ├── bump-repo-versions-tools.yaml
│ ├── spell-check-daily.yaml
│ ├── backport.yaml
│ ├── bump-repo-versions-simulator.yaml
│ ├── bump-repo-versions-autoware.yaml
│ ├── sync-files.yaml
│ ├── pre-commit-ansible-autoupdate.yaml
│ ├── pre-commit-autoupdate.yaml
│ ├── pre-commit-optional-autoupdate.yaml
│ ├── comment-on-pr.yaml
│ ├── autoware-base.yaml
│ ├── github-release.yaml
│ ├── update-tool-versions.yaml
│ └── load-env.yaml
├── CODEOWNERS
├── dependabot.yaml
├── DISCUSSION_TEMPLATE
│ └── general.yaml
├── stale.yml
├── ISSUE_TEMPLATE
│ ├── config.yml
│ ├── simple-issue.yaml
│ ├── task.yaml
│ └── bug.yaml
├── actions
│ ├── free-disk-space
│ │ └── action.yaml
│ └── docker-build-and-push-base
│ │ └── action.yaml
└── sync-files.yaml
├── ansible-galaxy-requirements.yaml
├── CONTRIBUTING.md
├── simulator.repos
├── .pre-commit-config-ansible.yaml
├── .prettierignore
├── docker
├── docker-compose.gpu.yaml
├── scripts
│ ├── cleanup_apt.sh
│ ├── resolve_rosdep_keys.sh
│ ├── build_and_clean.sh
│ └── cleanup_system.sh
├── tools
│ ├── README.md
│ ├── visualizer
│ │ ├── xstartup
│ │ ├── README.md
│ │ └── Dockerfile
│ ├── docker-bake.hcl
│ └── scenario-simulator
│ │ ├── Dockerfile
│ │ └── entrypoint.sh
├── logging-simulation.gpu.env
├── docker-bake-base.hcl
├── etc
│ ├── ros_entrypoint.sh
│ └── .bash_aliases
├── docker-bake-cuda.hcl
├── planning-simulation.env
├── logging-simulation.env
└── Dockerfile.base
├── NOTICE
├── .ansible-lint
├── extra-packages.repos
├── .gitignore
├── .markdown-link-check.json
├── .hadolint.yaml
├── tools.repos
├── tools-nightly.repos
├── .dockerignore
├── .webauto-ci
└── main
│ ├── environment-setup
│ └── run.sh
│ ├── autoware-setup
│ └── run.sh
│ └── autoware-build
│ └── run.sh
├── .devcontainer
├── Dockerfile
├── core-devel
│ └── devcontainer.json
├── universe-devel
│ └── devcontainer.json
└── universe-devel-cuda
│ └── devcontainer.json
├── .markdownlint.yaml
├── amd64.env
├── .clang-tidy-ci
├── amd64_jazzy.env
├── .prettierrc.yaml
├── .pre-commit-config-optional.yaml
├── setup.cfg
├── .yamllint.yaml
├── CPPLINT.cfg
├── .clang-format
└── autoware-nightly.repos
/.fdignore:
--------------------------------------------------------------------------------
1 | !/src/
2 |
--------------------------------------------------------------------------------
/.rgignore:
--------------------------------------------------------------------------------
1 | !/src/
2 |
--------------------------------------------------------------------------------
/ansible/COLCON_IGNORE:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/.gitignore:
--------------------------------------------------------------------------------
1 | *.retry
2 |
--------------------------------------------------------------------------------
/ansible/roles/cuda/meta/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/ros2/meta/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/agnocast/meta/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/artifacts/meta/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/dev_tools/meta/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/gdown/defaults/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/gdown/meta/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/pacmod/meta/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/spconv/meta/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/telegraf/meta/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.shellcheckrc:
--------------------------------------------------------------------------------
1 | external-sources=true
2 |
--------------------------------------------------------------------------------
/ansible/roles/artifacts/defaults/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/build_tools/meta/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/dev_tools/defaults/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/docker_engine/meta/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/geographiclib/meta/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/kisak_mesa/defaults/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/kisak_mesa/meta/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/pacmod/defaults/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/meta/main.yml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/ros2_dev_tools/meta/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/spconv/defaults/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/telegraf/defaults/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/tensorrt/defaults/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/simulator-nightly.repos:
--------------------------------------------------------------------------------
1 | repositories:
2 |
--------------------------------------------------------------------------------
/ansible/roles/build_tools/defaults/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/docker_engine/defaults/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/geographiclib/defaults/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/rmw_implementation/meta/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/ros2_dev_tools/defaults/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/nvidia_container_toolkit/meta/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/nvidia_container_toolkit/defaults/main.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ansible/roles/cuda/defaults/main.yaml:
--------------------------------------------------------------------------------
1 | cuda_install_drivers: true
2 |
--------------------------------------------------------------------------------
/ansible/roles/ros2/defaults/main.yaml:
--------------------------------------------------------------------------------
1 | ros2_installation_type: desktop
2 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/defaults/main.yml:
--------------------------------------------------------------------------------
1 | # defaults file for qt5ct_setup
2 |
--------------------------------------------------------------------------------
/arm64.env:
--------------------------------------------------------------------------------
1 | # Override amd64's settings
2 | tensorrt_version=10.3.0.26-1+cuda12.5
3 |
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 | ## Description
2 |
3 | ## How was this PR tested?
4 |
--------------------------------------------------------------------------------
/ansible-galaxy-requirements.yaml:
--------------------------------------------------------------------------------
1 | collections:
2 | - source: ./ansible
3 | type: dir
4 |
--------------------------------------------------------------------------------
/ansible/roles/tensorrt/meta/main.yaml:
--------------------------------------------------------------------------------
1 | dependencies:
2 | - role: autoware.dev_env.cuda
3 |
--------------------------------------------------------------------------------
/ansible/roles/rmw_implementation/defaults/main.yaml:
--------------------------------------------------------------------------------
1 | rmw_implementation__rosdistro: null
2 | rmw_implementation__name: null
3 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | See .
4 |
--------------------------------------------------------------------------------
/ansible/playbooks/install_rviz_theme.yaml:
--------------------------------------------------------------------------------
1 | - name: Install RViz theme
2 | hosts: localhost
3 | roles:
4 | - autoware.dev_env.qt5ct_setup
5 |
--------------------------------------------------------------------------------
/ansible/playbooks/telegraf.yaml:
--------------------------------------------------------------------------------
1 | - name: Set up Telegraf and InfluxDB v2
2 | hosts: localhost
3 | roles:
4 | - autoware.dev_env.telegraf
5 |
--------------------------------------------------------------------------------
/ansible/roles/telegraf/files/load-data.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/autowarefoundation/autoware/HEAD/ansible/roles/telegraf/files/load-data.png
--------------------------------------------------------------------------------
/ansible/roles/telegraf/files/create-org.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/autowarefoundation/autoware/HEAD/ansible/roles/telegraf/files/create-org.png
--------------------------------------------------------------------------------
/ansible/roles/telegraf/handlers/main.yaml:
--------------------------------------------------------------------------------
1 | - name: Restart telegraf
2 | ansible.builtin.systemd:
3 | name: telegraf
4 | state: restarted
5 |
--------------------------------------------------------------------------------
/ansible/playbooks/download_artifacts.yaml:
--------------------------------------------------------------------------------
1 | - name: Download Autoware artifacts
2 | hosts: localhost
3 | roles:
4 | - autoware.dev_env.artifacts
5 |
--------------------------------------------------------------------------------
/ansible/roles/telegraf/files/generate-api-token.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/autowarefoundation/autoware/HEAD/ansible/roles/telegraf/files/generate-api-token.png
--------------------------------------------------------------------------------
/ansible/playbooks/install_spconv.yaml:
--------------------------------------------------------------------------------
1 | - name: Download and install the cumm and spconv packages
2 | hosts: localhost
3 | roles:
4 | - autoware.dev_env.spconv
5 |
--------------------------------------------------------------------------------
/simulator.repos:
--------------------------------------------------------------------------------
1 | repositories:
2 | simulator/scenario_simulator:
3 | type: git
4 | url: https://github.com/tier4/scenario_simulator_v2.git
5 | version: 18.2.1
6 |
--------------------------------------------------------------------------------
/ansible/roles/agnocast/defaults/main.yaml:
--------------------------------------------------------------------------------
1 | agnocast_version: 2.1.2
2 | agnocast_heaphook_package: agnocast-heaphook-v{{ agnocast_version }}
3 | agnocast_kmod_package: agnocast-kmod-v{{ agnocast_version }}
4 |
--------------------------------------------------------------------------------
/.pre-commit-config-ansible.yaml:
--------------------------------------------------------------------------------
1 | repos:
2 | - repo: https://github.com/ansible/ansible-lint.git
3 | rev: v25.8.2
4 | hooks:
5 | - id: ansible-lint
6 | additional_dependencies:
7 | - ansible
8 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/minus.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-open.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | *.param.yaml
6 | *.rviz
7 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-closed.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/add.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/docker/docker-compose.gpu.yaml:
--------------------------------------------------------------------------------
1 | services:
2 | sensing-perception:
3 | deploy:
4 | resources:
5 | reservations:
6 | devices:
7 | - driver: nvidia
8 | count: all
9 | capabilities: [gpu]
10 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/splitter-horizontal.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/NOTICE:
--------------------------------------------------------------------------------
1 | autowarefoundation/autoware
2 | Copyright 2021 The Autoware Foundation
3 |
4 | This product includes software developed at
5 | The Autoware Foundation (https://www.autoware.org/).
6 |
7 | This product includes code developed by TIER IV.
8 | Copyright 2021 TIER IV, Inc.
9 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/splitter-vertical.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/.ansible-lint:
--------------------------------------------------------------------------------
1 | exclude_paths:
2 | - src/
3 | - build/
4 | - install/
5 | - log/
6 |
7 | skip_list:
8 | - galaxy # We don't publish to Ansible Galaxy.
9 | - package-latest # Since this is a development environment, we allow the latest versions.
10 |
11 | warn_list: []
12 |
--------------------------------------------------------------------------------
/ansible/roles/geographiclib/README.md:
--------------------------------------------------------------------------------
1 | # geographiclib
2 |
3 | ## Inputs
4 |
5 | None.
6 |
7 | ## Manual Installation
8 |
9 | ```bash
10 | sudo apt install geographiclib-tools
11 |
12 | # Add EGM2008 geoid grid to geographiclib
13 | sudo geographiclib-get-geoids egm2008-1
14 | ```
15 |
--------------------------------------------------------------------------------
/ansible/roles/gdown/README.md:
--------------------------------------------------------------------------------
1 | # Role: gdown
2 |
3 | This role installs gdown to download files from CMakeLists.txt.
4 |
5 | ## Inputs
6 |
7 | None.
8 |
9 | ## Manual Installation
10 |
11 | ```bash
12 | # Install gdown to download files from CMakeLists.txt
13 | pip3 install gdown
14 | ```
15 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/close.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/ansible/playbooks/role_rmw_implementation.yaml:
--------------------------------------------------------------------------------
1 | - name: Install RMW implementation
2 | hosts: localhost
3 | roles:
4 | - role: autoware.dev_env.rmw_implementation
5 | vars:
6 | rmw_implementation__rosdistro: "{{ rosdistro }}"
7 | rmw_implementation__name: "{{ rmw_implementation }}"
8 |
--------------------------------------------------------------------------------
/docker/scripts/cleanup_apt.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -eo pipefail
3 |
4 | function cleanup_apt() {
5 | local apt_clean=$1
6 | apt-get autoremove -y && rm -rf /var/lib/apt/lists/* "$HOME"/.cache
7 | if [[ $apt_clean == true ]]; then
8 | apt-get clean
9 | fi
10 | }
11 |
12 | cleanup_apt "$@"
13 |
--------------------------------------------------------------------------------
/extra-packages.repos:
--------------------------------------------------------------------------------
1 | repositories:
2 | sensor_component/external/tamagawa_imu_driver:
3 | type: git
4 | url: https://github.com/tier4/tamagawa_imu_driver.git
5 | version: ros2
6 | vehicle/external/pacmod_interface:
7 | type: git
8 | url: https://github.com/tier4/pacmod_interface.git
9 | version: main
10 |
--------------------------------------------------------------------------------
/.github/workflows/mirror-main-branch.yaml:
--------------------------------------------------------------------------------
1 | name: mirror-main-branch
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 | workflow_dispatch:
8 |
9 | jobs:
10 | mirror-main-branch:
11 | runs-on: ubuntu-22.04
12 | steps:
13 | - uses: zofrex/mirror-branch@v1
14 | with:
15 | target-branch: humble
16 |
--------------------------------------------------------------------------------
/ansible/roles/build_tools/README.md:
--------------------------------------------------------------------------------
1 | # Build Tools
2 |
3 | This role installs build tools for building Autoware.
4 |
5 | ## Tools
6 |
7 | - ccache
8 |
9 | ## Inputs
10 |
11 | ## Manual Installation
12 |
13 | ```bash
14 | # Update package lists
15 | sudo apt-get update
16 |
17 | # Install ccache
18 | sudo apt-get install -y ccache
19 | ```
20 |
--------------------------------------------------------------------------------
/docker/tools/README.md:
--------------------------------------------------------------------------------
1 | # Autoware Tools
2 |
3 | This directory offers container-based tools for Autoware to make development and deployment easier.
4 |
5 | - [scenario-simulator](./scenario-simulator/README.md): Simulation container for Autoware scenario testing.
6 | - [visualizer](./visualizer/README.md): RViz-based visualization container for Autoware.
7 |
--------------------------------------------------------------------------------
/.github/workflows/setup-docker.yaml:
--------------------------------------------------------------------------------
1 | name: setup-docker
2 |
3 | on:
4 | pull_request:
5 |
6 | jobs:
7 | setup-docker:
8 | runs-on: ubuntu-22.04
9 | steps:
10 | - name: Check out repository
11 | uses: actions/checkout@v4
12 |
13 | - name: Run setup script
14 | run: |
15 | ./setup-dev-env.sh -y -v docker
16 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Vim
2 | *.swp
3 | *.swo
4 |
5 | # Visual Studio Code
6 | .vscode/
7 | *.code-workspace
8 |
9 | # colcon
10 | build/
11 | install/
12 | log/
13 | /src/
14 |
15 | # Python
16 | *.pyc
17 |
18 | # Jetbrains
19 | .idea/
20 |
21 | # rviz Screen Capture
22 | capture/
23 |
24 | # CodeChecker
25 | .codechecker/
26 |
27 | # Node.js
28 | node_modules/
29 |
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * ryohsuke.mitsudome@tier4.jp mfc@autoware.org
2 |
3 | .devcontainer/** oguzkaganozt@gmail.com yutaka.kondo@tier4.jp
4 | .github/** oguzkaganozt@gmail.com yutaka.kondo@tier4.jp isamu.takagi@tier4.jp
5 | ansible/** oguzkaganozt@gmail.com yutaka.kondo@tier4.jp isamu.takagi@tier4.jp
6 | docker/** oguzkaganozt@gmail.com yutaka.kondo@tier4.jp isamu.takagi@tier4.jp
7 |
--------------------------------------------------------------------------------
/docker/logging-simulation.gpu.env:
--------------------------------------------------------------------------------
1 | # Perception settings
2 | SENSING_PERCEPTION_IMAGE=ghcr.io/autowarefoundation/autoware:universe-sensing-perception-cuda
3 | LIDAR_DETECTION_MODEL=centerpoint
4 |
5 | # TODO(mitsudome-r): used pointcloud based occupancy grid once we merge
6 | # https://github.com/autowarefoundation/autoware/pull/6382
7 | # OCCUPANCY_GRID_MAP_METHOD=pointcloud_based
8 |
--------------------------------------------------------------------------------
/.markdown-link-check.json:
--------------------------------------------------------------------------------
1 | {
2 | "aliveStatusCodes": [200, 206, 403],
3 | "ignorePatterns": [
4 | {
5 | "pattern": "^http://localhost"
6 | },
7 | {
8 | "pattern": "^http://127\\.0\\.0\\.1"
9 | },
10 | {
11 | "pattern": "^https://github.com/.*/discussions/new"
12 | }
13 | ],
14 | "retryOn429": true,
15 | "retryCount": 10
16 | }
17 |
--------------------------------------------------------------------------------
/.hadolint.yaml:
--------------------------------------------------------------------------------
1 | ignored:
2 | - DL3008 # Pin versions in apt get install. Instead of `apt-get install ` use `apt-get install =`
3 | - DL3013 # Pin versions in pip. Instead of `pip install `, use `pip install ==`
4 | - DL3015 # Avoid additional packages by specifying `--no-install-recommends`
5 | - DL3009 # Delete the apt-get lists after installing something
6 |
--------------------------------------------------------------------------------
/ansible/roles/geographiclib/tasks/main.yaml:
--------------------------------------------------------------------------------
1 | - name: Install geographiclib-tools
2 | become: true
3 | ansible.builtin.apt:
4 | name: geographiclib-tools
5 | state: latest
6 | update_cache: true
7 |
8 | - name: Install egm2008-1
9 | become: true
10 | ansible.builtin.command:
11 | cmd: geographiclib-get-geoids egm2008-1
12 | creates: /usr/share/GeographicLib/geoids/egm2008-1.pgm
13 |
--------------------------------------------------------------------------------
/tools.repos:
--------------------------------------------------------------------------------
1 | repositories:
2 | tools:
3 | type: git
4 | url: https://github.com/autowarefoundation/autoware_tools.git
5 | version: 0.4.0
6 | # This should be removed after merged PR (https://github.com/PlotJuggler/plotjuggler-ros-plugins/pull/94)
7 | plotjuggler_ros:
8 | type: git
9 | url: https://github.com/PlotJuggler/plotjuggler-ros-plugins.git
10 | version: 2.1.2-humble
11 |
--------------------------------------------------------------------------------
/tools-nightly.repos:
--------------------------------------------------------------------------------
1 | repositories:
2 | tools:
3 | type: git
4 | url: https://github.com/autowarefoundation/autoware_tools.git
5 | version: main
6 | # This should be removed after merged PR (https://github.com/PlotJuggler/plotjuggler-ros-plugins/pull/94)
7 | plotjuggler_ros:
8 | type: git
9 | url: https://github.com/PlotJuggler/plotjuggler-ros-plugins.git
10 | version: 2.1.2-humble
11 |
--------------------------------------------------------------------------------
/ansible/roles/telegraf/files/get_telegraf_procmem_json.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | echo "{"
4 | ps -ax --format "rss command" |
5 | while read -r rss cmd; do
6 | if [[ $rss -lt 30000 ]]; then
7 | continue
8 | fi
9 | cmd="${cmd// /_}"
10 | cmd="${cmd//=/_}"
11 | cmd="${cmd:0:50}"
12 | echo "\"${cmd}\":${rss},"
13 | done
14 | echo '"z":0'
15 | echo "}"
16 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_enabled.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_hovered.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_pressed.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | # Ignore git and metadata directories
2 | .git
3 | .github
4 | .vscode
5 |
6 | # Ignore all markdown files
7 | *.md
8 |
9 | # Ignore Docker files
10 | docker
11 | !docker/etc
12 | !docker/scripts
13 | !docker/tools
14 |
15 | # Ignore a part of files under src
16 | src/**/.*
17 | src/**/*.asc
18 | src/**/*.gif
19 | src/**/*.md
20 | src/**/*.svg
21 |
22 | # Ignore generated files by colcon
23 | build
24 | install
25 | log
26 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_enabled.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_hovered.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_pressed.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_disabled.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_disabled.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_disabled.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_enabled.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_hovered.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_pressed.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/.webauto-ci/main/environment-setup/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash -e
2 |
3 | apt-get update
4 |
5 | apt-get -y install sudo curl wget unzip gnupg lsb-release ccache python3-apt python3-pip apt-utils software-properties-common jq
6 | add-apt-repository universe
7 |
8 | pip install --no-cache-dir 'ansible==6.*'
9 |
10 | user=autoware
11 | useradd -m "$user" -s /bin/bash
12 | echo "$user:$user" | chpasswd
13 | echo "$user ALL=(ALL) NOPASSWD:ALL" >>/etc/sudoers
14 | gpasswd -a "$user" sudo
15 |
--------------------------------------------------------------------------------
/docker/tools/visualizer/xstartup:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # cspell:ignore openbox, VNC, xstartup, DBUS, Xresources, xrdb
3 |
4 | unset SESSION_MANAGER
5 | unset DBUS_SESSION_BUS_ADDRESS
6 | export DISPLAY=:99
7 |
8 | [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
9 | [ -r "$HOME/.Xresources" ] && xrdb "$HOME/.Xresources"
10 |
11 | # Start Openbox window manager
12 | echo "Starting Openbox window manager..."
13 | openbox-session &
14 |
15 | # Keep the session alive
16 | sleep infinity
17 |
--------------------------------------------------------------------------------
/docker/scripts/resolve_rosdep_keys.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -eo pipefail
3 |
4 | function resolve_rosdep_keys() {
5 | local src_path=$1
6 | local ros_distro=$2
7 | local rosdep_keys_args=$3
8 |
9 | # shellcheck disable=SC2086
10 | rosdep keys $rosdep_keys_args --ignore-src --from-paths "$src_path" |
11 | xargs rosdep resolve --rosdistro "$ros_distro" |
12 | grep -v '^#' |
13 | sed 's/ \+/\n/g' |
14 | sort
15 | }
16 |
17 | resolve_rosdep_keys "$@"
18 |
--------------------------------------------------------------------------------
/.devcontainer/Dockerfile:
--------------------------------------------------------------------------------
1 | # hadolint global ignore=DL3006
2 | ARG BASE_IMAGE
3 | FROM $BASE_IMAGE
4 |
5 | ENV SHELL /bin/bash
6 |
7 | ARG USERNAME=autoware
8 | ARG USER_UID=1000
9 | ARG USER_GID=$USER_UID
10 |
11 | RUN groupadd --gid $USER_GID $USERNAME \
12 | && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
13 | && apt-get update \
14 | && apt-get install -y sudo \
15 | && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
16 | && chmod 0440 /etc/sudoers.d/$USERNAME
17 |
--------------------------------------------------------------------------------
/.markdownlint.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | # See https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md for all rules.
6 | default: true
7 | MD013: false
8 | MD024:
9 | siblings_only: true
10 | MD029:
11 | style: ordered
12 | MD033: false
13 | MD041: false
14 | MD045: false
15 | MD046: false
16 | MD049: false
17 | MD059: false
18 |
--------------------------------------------------------------------------------
/amd64.env:
--------------------------------------------------------------------------------
1 | # ROS distribution (humble)
2 | rosdistro=humble
3 | rmw_implementation=rmw_cyclonedds_cpp
4 |
5 | # Base image selection for Humble
6 | base_image=ros:humble-ros-base-jammy
7 | autoware_base_image=ghcr.io/autowarefoundation/autoware-base:latest
8 | autoware_base_cuda_image=ghcr.io/autowarefoundation/autoware-base:cuda-latest
9 |
10 | cuda_version=12.4
11 | cudnn_version=8.9.7.29-1+cuda12.2
12 | tensorrt_version=10.8.0.43-1+cuda12.8
13 | pre_commit_clang_format_version=17.0.5
14 | cumm_version=0.5.3
15 | spconv_version=2.3.8
16 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/more.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/ansible/roles/telegraf/files/get_telegraf_proccpu_json.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SAMPLING_SEC=5
4 |
5 | echo "{"
6 | pidstat -u -h -l "${SAMPLING_SEC}" 1 |
7 | tail -n +4 |
8 | awk '{ cpu=$8; $1=$2=$3=$4=$5=$6=$7=$8=$9=""; print cpu,$0 }' |
9 | sort -n |
10 | while read -r cpu cmd; do
11 | if [[ ${cpu%%.*} -le 0 ]]; then
12 | continue
13 | fi
14 | cmd="${cmd// /_}"
15 | cmd="${cmd//=/_}"
16 | cmd="${cmd:0:50}"
17 | echo "\"${cmd}\":${cpu},"
18 | done
19 | echo '"z":0'
20 | echo "}"
21 |
--------------------------------------------------------------------------------
/docker/docker-bake-base.hcl:
--------------------------------------------------------------------------------
1 | group "default" {
2 | targets = [
3 | "base",
4 | "base-cuda"
5 | ]
6 | }
7 |
8 | // For docker/metadata-action
9 | target "docker-metadata-action-base" {}
10 | target "docker-metadata-action-base-cuda" {}
11 |
12 | target "base" {
13 | inherits = ["docker-metadata-action-base"]
14 | dockerfile = "docker/Dockerfile.base"
15 | target = "base"
16 | }
17 |
18 | target "base-cuda" {
19 | inherits = ["docker-metadata-action-base-cuda"]
20 | dockerfile = "docker/Dockerfile.base"
21 | target = "base-cuda"
22 | }
23 |
--------------------------------------------------------------------------------
/.clang-tidy-ci:
--------------------------------------------------------------------------------
1 | Checks: "
2 | -*,
3 | bugprone-*,
4 | -bugprone-branch-clone,
5 | -bugprone-easily-swappable-parameters,
6 | -bugprone-exception-escape,
7 | -bugprone-implicit-widening-of-multiplication-result,
8 | -bugprone-infinite-loop,
9 | -bugprone-integer-division,
10 | -bugprone-macro-parentheses,
11 | -bugprone-narrowing-conversions,
12 | -bugprone-parent-virtual-call,
13 | -bugprone-reserved-identifier,
14 | -bugprone-signed-char-misuse"
15 |
16 | WarningsAsErrors: "*"
17 |
18 | ExtraArgs:
19 | - -std=c++17
20 | - -Wno-c11-extensions
21 |
--------------------------------------------------------------------------------
/amd64_jazzy.env:
--------------------------------------------------------------------------------
1 | # ROS distribution (jazzy)
2 | rosdistro=jazzy
3 | rmw_implementation=rmw_cyclonedds_cpp
4 |
5 | # Jazzy-specific overrides (will be set by build.sh)
6 | base_image=ros:jazzy-ros-base-noble
7 | autoware_base_image=ghcr.io/autowarefoundation/autoware-base:latest-jazzy
8 | autoware_base_cuda_image=ghcr.io/autowarefoundation/autoware-base:jazzy-cuda-latest
9 |
10 | cuda_version=12.4
11 | cudnn_version=8.9.7.29-1+cuda12.2
12 | tensorrt_version=10.8.0.43-1+cuda12.8
13 | pre_commit_clang_format_version=17.0.5
14 | cumm_version=0.5.3
15 | spconv_version=2.3.8
16 |
--------------------------------------------------------------------------------
/ansible/roles/gdown/tasks/main.yaml:
--------------------------------------------------------------------------------
1 | # noqa: risky-shell-pipe, no-changed-when
2 |
3 | - name: Install gdown to download files from CMakeLists.txt
4 | ansible.builtin.shell: |
5 | set -o pipefail
6 | pip3 list | grep -q gdown || pip3 install --break-system-packages gdown
7 | args:
8 | executable: /bin/bash
9 | when: rosdistro == 'jazzy'
10 |
11 | - name: Install gdown to download files from CMakeLists.txt (non-jazzy)
12 | ansible.builtin.pip:
13 | name:
14 | - gdown
15 | state: latest
16 | executable: pip3
17 | when: rosdistro != 'jazzy'
18 |
--------------------------------------------------------------------------------
/ansible/galaxy.yml:
--------------------------------------------------------------------------------
1 | # Required
2 | namespace: autoware
3 | name: dev_env
4 | version: 0.1.0
5 | readme: README.md
6 | authors:
7 | - Kenji Miyake
8 |
9 | # Optional
10 | description: Set up development environment for Autoware
11 | license:
12 | - Apache-2.0
13 | tags:
14 | - autoware
15 | dependencies: {}
16 | repository: https://github.com/autowarefoundation/autoware
17 | documentation: https://autowarefoundation.github.io/autoware-documentation
18 | homepage: https://www.autoware.org/
19 | issues: https://github.com/autowarefoundation/autoware/issues
20 | build_ignore: []
21 |
--------------------------------------------------------------------------------
/ansible/playbooks/rosdep.yaml:
--------------------------------------------------------------------------------
1 | - name: Register rosdep package repositories
2 | hosts: localhost
3 | connection: local
4 | pre_tasks:
5 | - name: Verify OS
6 | ansible.builtin.fail:
7 | msg: Only Ubuntu 22.04 and 24.04 are supported for this branch. Please refer to https://autowarefoundation.github.io/autoware-documentation/main/installation/autoware/source-installation/.
8 | when: ansible_distribution != 'Ubuntu' or (ansible_distribution_version != '22.04' and ansible_distribution_version != '24.04')
9 | roles:
10 | - role: autoware.dev_env.pacmod
11 | when: rosdistro != 'jazzy'
12 |
--------------------------------------------------------------------------------
/.github/dependabot.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | version: 2
6 | updates:
7 | - package-ecosystem: github-actions
8 | directory: /
9 | # https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#scheduleinterval
10 | schedule:
11 | interval: monthly
12 | open-pull-requests-limit: 1
13 | labels:
14 | - tag:bot
15 | - type:github-actions
16 |
--------------------------------------------------------------------------------
/.github/DISCUSSION_TEMPLATE/general.yaml:
--------------------------------------------------------------------------------
1 | body:
2 | - type: checkboxes
3 | attributes:
4 | label: Code of Conduct
5 | options:
6 | - label: I have read [CODE OF CONDUCT](https://github.com/autowarefoundation/autoware/blob/main/CODE_OF_CONDUCT.md) and [Support Guidelines](https://autowarefoundation.github.io/autoware-documentation/main/support/support-guidelines/#github-discussions) before creating this Discussion post.
7 | required: true
8 | - type: textarea
9 | attributes:
10 | label: Contents
11 | description: Write your contents here
12 | validations:
13 | required: true
14 |
--------------------------------------------------------------------------------
/.github/workflows/dco.yaml:
--------------------------------------------------------------------------------
1 | name: DCO
2 | # ref: https://github.com/anchore/syft/pull/2926/files
3 | on:
4 | pull_request:
5 | jobs:
6 | dco:
7 | runs-on: ubuntu-22.04
8 | steps:
9 | - uses: actions/checkout@v4
10 |
11 | - name: Setup Python 3.x
12 | uses: actions/setup-python@v5
13 | with:
14 | python-version: 3.x
15 |
16 | - name: Check DCO
17 | env:
18 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
19 | run: |
20 | pip3 install -U dco-check
21 | dco-check --verbose --exclude-pattern 'pre-commit-ci\[bot\]@users\.noreply\.github\.com'
22 |
--------------------------------------------------------------------------------
/.devcontainer/core-devel/devcontainer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "autoware:core-devel",
3 | "build": {
4 | "dockerfile": "../Dockerfile",
5 | "args": { "BASE_IMAGE": "ghcr.io/autowarefoundation/autoware:core-devel" }
6 | },
7 | "remoteUser": "autoware",
8 | "runArgs": [
9 | "--cap-add=SYS_PTRACE",
10 | "--security-opt",
11 | "seccomp=unconfined",
12 | "--net=host",
13 | "--volume=/etc/localtime:/etc/localtime:ro"
14 | ],
15 | "customizations": {
16 | "vscode": {
17 | "settings.json": {
18 | "terminal.integrated.profiles.linux": { "bash": { "path": "/bin/bash" } }
19 | }
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/.github/workflows/semantic-pull-request.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | name: semantic-pull-request
6 |
7 | on:
8 | pull_request_target:
9 | types:
10 | - opened
11 | - edited
12 | - synchronize
13 |
14 | concurrency:
15 | group: ${{ github.workflow }}-${{ github.ref }}
16 | cancel-in-progress: true
17 |
18 | jobs:
19 | semantic-pull-request:
20 | uses: autowarefoundation/autoware-github-actions/.github/workflows/semantic-pull-request.yaml@v1
21 |
--------------------------------------------------------------------------------
/ansible/roles/kisak_mesa/tasks/main.yaml:
--------------------------------------------------------------------------------
1 | - name: Install additional dependencies
2 | become: true
3 | ansible.builtin.apt:
4 | name: software-properties-common
5 | state: present
6 |
7 | - name: Add Kisak Mesa PPA
8 | become: true
9 | ansible.builtin.apt_repository:
10 | repo: ppa:kisak/kisak-mesa
11 |
12 | - name: Install Mesa libraries
13 | become: true
14 | ansible.builtin.apt:
15 | name:
16 | - libegl-mesa0
17 | - libegl1-mesa-dev
18 | - libgbm-dev
19 | - libgbm1
20 | - libgl1-mesa-dev
21 | - libgl1-mesa-dri
22 | - libglapi-mesa
23 | - libglx-mesa0
24 | state: present
25 |
--------------------------------------------------------------------------------
/.github/stale.yml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | # Modified from https://github.com/probot/stale#usage
6 |
7 | # Number of days of inactivity before an Issue or Pull Request with the stale label is closed
8 | daysUntilClose: false
9 |
10 | # Label to use when marking as stale
11 | staleLabel: status:stale
12 |
13 | # Comment to post when marking as stale
14 | markComment: >
15 | This pull request has been automatically marked as stale because it has not had
16 | recent activity.
17 |
--------------------------------------------------------------------------------
/.devcontainer/universe-devel/devcontainer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "autoware:universe-devel",
3 | "build": {
4 | "dockerfile": "../Dockerfile",
5 | "args": { "BASE_IMAGE": "ghcr.io/autowarefoundation/autoware:universe-devel" }
6 | },
7 | "remoteUser": "autoware",
8 | "runArgs": [
9 | "--cap-add=SYS_PTRACE",
10 | "--security-opt",
11 | "seccomp=unconfined",
12 | "--net=host",
13 | "--volume=/etc/localtime:/etc/localtime:ro"
14 | ],
15 | "customizations": {
16 | "vscode": {
17 | "settings.json": {
18 | "terminal.integrated.profiles.linux": { "bash": { "path": "/bin/bash" } }
19 | }
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/docker/tools/docker-bake.hcl:
--------------------------------------------------------------------------------
1 | group "default" {
2 | targets = [
3 | "visualizer",
4 | "scenario-simulator",
5 | ]
6 | }
7 |
8 | // For docker/metadata-action
9 | target "docker-metadata-action-visualizer" {}
10 | target "docker-metadata-action-scenario-simulator" {}
11 |
12 | target "visualizer" {
13 | inherits = ["docker-metadata-action-visualizer"]
14 | dockerfile = "docker/tools/visualizer/Dockerfile"
15 | target = "visualizer"
16 | }
17 |
18 | target "scenario-simulator" {
19 | inherits = ["docker-metadata-action-scenario-simulator"]
20 | dockerfile = "docker/tools/scenario-simulator/Dockerfile"
21 | target = "scenario-simulator"
22 | }
23 |
--------------------------------------------------------------------------------
/.github/workflows/cancel-previous-workflows.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | # Deprecated: Use concurrency in each workflow instead.
6 |
7 | name: cancel-previous-workflows
8 |
9 | on:
10 | pull_request_target:
11 |
12 | jobs:
13 | cancel-previous-workflows:
14 | runs-on: ubuntu-22.04
15 | steps:
16 | - name: Cancel previous runs
17 | uses: styfle/cancel-workflow-action@0.12.1
18 | with:
19 | workflow_id: all
20 | all_but_latest: true
21 |
--------------------------------------------------------------------------------
/docker/scripts/build_and_clean.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -eo pipefail
3 |
4 | function build_and_clean() {
5 | local ccache_dir=$1
6 | local install_base=$2
7 | local colcon_build_args=$3
8 |
9 | # shellcheck disable=SC2086
10 | du -sh "$ccache_dir" && ccache -s &&
11 | colcon build --cmake-args \
12 | " -Wno-dev" \
13 | " --no-warn-unused-cli" \
14 | --merge-install \
15 | --install-base "$install_base" \
16 | --mixin release compile-commands ccache \
17 | $colcon_build_args &&
18 | du -sh "$ccache_dir" && ccache -s &&
19 | rm -rf /autoware/build /autoware/log
20 | }
21 |
22 | build_and_clean "$@"
23 |
--------------------------------------------------------------------------------
/.prettierrc.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | printWidth: 100
6 | tabWidth: 2
7 | overrides:
8 | - files: package.xml
9 | options:
10 | printWidth: 1000
11 | xmlSelfClosingSpace: false
12 | xmlWhitespaceSensitivity: ignore
13 |
14 | - files: "*.launch.xml"
15 | options:
16 | printWidth: 200
17 | xmlSelfClosingSpace: false
18 | xmlWhitespaceSensitivity: ignore
19 |
20 | - files: "*.xacro"
21 | options:
22 | printWidth: 200
23 | xmlSelfClosingSpace: false
24 | xmlWhitespaceSensitivity: ignore
25 |
--------------------------------------------------------------------------------
/.github/workflows/setup-universe.yaml:
--------------------------------------------------------------------------------
1 | name: setup-universe
2 |
3 | on:
4 | pull_request:
5 |
6 | jobs:
7 | setup-universe:
8 | runs-on: ubuntu-22.04
9 | steps:
10 | - name: Check out repository
11 | uses: actions/checkout@v4
12 |
13 | - name: Free disk space
14 | uses: ./.github/actions/free-disk-space
15 |
16 | - name: Show disk space
17 | if: always()
18 | run: |
19 | df -h
20 |
21 | - name: Set git config
22 | uses: autowarefoundation/autoware-github-actions/set-git-config@v1
23 | with:
24 | token: ${{ secrets.GITHUB_TOKEN }}
25 |
26 | - name: Run setup script
27 | run: |
28 | ./setup-dev-env.sh -y -v universe
29 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | blank_issues_enabled: false
6 | contact_links:
7 | - name: Question
8 | url: https://github.com/autowarefoundation/autoware/discussions/new?category=q-a
9 | about: Ask a question
10 |
11 | - name: Feature request
12 | url: https://github.com/autowarefoundation/autoware/discussions/new?category=feature-requests
13 | about: Send a feature request
14 |
15 | - name: Idea
16 | url: https://github.com/autowarefoundation/autoware/discussions/new?category=ideas
17 | about: Post an idea
18 |
--------------------------------------------------------------------------------
/.pre-commit-config-optional.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | # https://pre-commit.ci/#configuration
6 | ci:
7 | autofix_commit_msg: "style(pre-commit-optional): autofix"
8 | # we already have our own daily update mechanism, we set this to quarterly
9 | autoupdate_schedule: quarterly
10 | autoupdate_commit_msg: "ci(pre-commit-optional): quarterly autoupdate"
11 |
12 | repos:
13 | - repo: https://github.com/tcort/markdown-link-check
14 | rev: v3.14.2
15 | hooks:
16 | - id: markdown-link-check
17 | args: [--quiet, --config=.markdown-link-check.json]
18 |
--------------------------------------------------------------------------------
/.devcontainer/universe-devel-cuda/devcontainer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "autoware:universe-devel-cuda",
3 | "build": {
4 | "dockerfile": "../Dockerfile",
5 | "args": { "BASE_IMAGE": "ghcr.io/autowarefoundation/autoware:universe-devel-cuda" }
6 | },
7 | "remoteUser": "autoware",
8 | "hostRequirements": {
9 | "gpu": true
10 | },
11 | "runArgs": [
12 | "--cap-add=SYS_PTRACE",
13 | "--security-opt",
14 | "seccomp=unconfined",
15 | "--net=host",
16 | "--volume=/etc/localtime:/etc/localtime:ro",
17 | "--gpus",
18 | "all"
19 | ],
20 | "customizations": {
21 | "vscode": {
22 | "settings.json": {
23 | "terminal.integrated.profiles.linux": { "bash": { "path": "/bin/bash" } }
24 | }
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/setup.cfg:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | [flake8]
6 | # Modified from https://github.com/ament/ament_lint/blob/ebd524bb9973d5ec1dc48a670ce54f958a5a0243/ament_flake8/ament_flake8/configuration/ament_flake8.ini
7 | extend-ignore = B902,C816,D100,D101,D102,D103,D104,D105,D106,D107,D203,D212,D404,I202,CNL100,E203,E501,Q000
8 | import-order-style = pep8
9 | max-line-length = 100
10 | show-source = true
11 | statistics = true
12 |
13 | [isort]
14 | profile=black
15 | line_length=100
16 | force_sort_within_sections=true
17 | force_single_line=true
18 | reverse_relative=true
19 | known_third_party=launch
20 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/simple-issue.yaml:
--------------------------------------------------------------------------------
1 | name: Simple Issue
2 | description: Create a simple issue
3 | body:
4 | - type: checkboxes
5 | attributes:
6 | label: Checklist
7 | description: Confirm the following items before proceeding. If one cannot be satisfied, create a discussion thread instead.
8 | options:
9 | - label: I've read the [contribution guidelines](https://github.com/autowarefoundation/autoware/blob/main/CONTRIBUTING.md).
10 | required: true
11 | - label: I've searched other issues and no duplicate issues were found.
12 | required: true
13 |
14 | - type: textarea
15 | attributes:
16 | label: Description
17 | description: Write a brief description of the issue.
18 | validations:
19 | required: true
20 |
--------------------------------------------------------------------------------
/.github/workflows/pre-commit-ansible.yaml:
--------------------------------------------------------------------------------
1 | name: pre-commit-ansible
2 |
3 | on:
4 | pull_request:
5 |
6 | jobs:
7 | pre-commit-ansible:
8 | runs-on: ubuntu-22.04
9 | steps:
10 | - name: Check out repository
11 | uses: actions/checkout@v4
12 |
13 | - name: Set git config
14 | uses: autowarefoundation/autoware-github-actions/set-git-config@v1
15 | with:
16 | token: ${{ secrets.GITHUB_TOKEN }}
17 |
18 | - name: Install Ansible Galaxy depends for ansible-lint
19 | run: |
20 | ansible-galaxy collection install -f -r ansible-galaxy-requirements.yaml
21 |
22 | - name: Run pre-commit
23 | uses: autowarefoundation/autoware-github-actions/pre-commit@v1
24 | with:
25 | pre-commit-config: .pre-commit-config-ansible.yaml
26 |
--------------------------------------------------------------------------------
/.yamllint.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | extends: default
6 |
7 | ignore: |
8 | *.param.yaml
9 |
10 | rules:
11 | braces:
12 | level: error
13 | max-spaces-inside: 1 # To format with Prettier
14 | comments:
15 | level: error
16 | min-spaces-from-content: 1 # To be compatible with C++ and Python
17 | document-start:
18 | level: error
19 | present: false # Don't need document start markers
20 | line-length: disable # Delegate to Prettier
21 | truthy:
22 | level: error
23 | check-keys: false # To allow 'on' of GitHub Actions
24 | quoted-strings:
25 | level: error
26 | required: only-when-needed # To keep consistent style
27 |
--------------------------------------------------------------------------------
/ansible/roles/ros2_dev_tools/tasks/main.yaml:
--------------------------------------------------------------------------------
1 | - name: Install apt packages
2 | become: true
3 | ansible.builtin.apt:
4 | name:
5 | - python3-colcon-mixin
6 | - python3-flake8-docstrings
7 | - python3-pip
8 | - python3-pytest-cov
9 | - ros-dev-tools
10 | - python3-flake8-blind-except
11 | - python3-flake8-builtins
12 | - python3-flake8-class-newline
13 | - python3-flake8-comprehensions
14 | - python3-flake8-deprecated
15 | - python3-flake8-import-order
16 | - python3-flake8-quotes
17 | - python3-pytest-repeat
18 | - python3-pytest-rerunfailures
19 | state: latest
20 | update_cache: true
21 |
22 | - name: Run 'sudo rosdep init'
23 | become: true
24 | ansible.builtin.command:
25 | cmd: rosdep init
26 | creates: /etc/ros/rosdep/sources.list.d/20-default.list
27 |
--------------------------------------------------------------------------------
/docker/scripts/cleanup_system.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -eo pipefail
3 |
4 | function cleanup_system() {
5 | local lib_dir=$1
6 | local ros_distro=$2
7 |
8 | find /usr/lib/"$lib_dir"-linux-gnu -name "*.a" -type f -delete &&
9 | find / -name "*.o" -type f -delete &&
10 | find / -name "*.h" -type f -delete &&
11 | find / -name "*.hpp" -type f -delete &&
12 | rm -rf /autoware/ansible /autoware/ansible-galaxy-requirements.yaml /autoware/setup-dev-env.sh /autoware/*.env \
13 | /root/.local/pipx /opt/ros/"$ros_distro"/include /opt/autoware/include /etc/apt/sources.list.d/cuda*.list \
14 | /etc/apt/sources.list.d/docker.list /etc/apt/sources.list.d/nvidia-docker.list \
15 | /usr/include /usr/share/doc /usr/lib/gcc /usr/lib/jvm /usr/lib/llvm*
16 | }
17 |
18 | ./cleanup_apt.sh
19 | cleanup_system "$@"
20 |
--------------------------------------------------------------------------------
/.github/workflows/pre-commit-optional.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | name: pre-commit-optional
6 |
7 | on:
8 | pull_request:
9 |
10 | concurrency:
11 | group: ${{ github.workflow }}-${{ github.ref }}
12 | cancel-in-progress: true
13 |
14 | jobs:
15 | pre-commit-optional:
16 | runs-on: ubuntu-22.04
17 | steps:
18 | - name: Check out repository
19 | uses: actions/checkout@v4
20 | with:
21 | fetch-depth: 0
22 |
23 | - name: Run pre-commit
24 | uses: autowarefoundation/autoware-github-actions/pre-commit@v1
25 | with:
26 | pre-commit-config: .pre-commit-config-optional.yaml
27 | base-branch: origin/${{ github.base_ref }}
28 |
--------------------------------------------------------------------------------
/ansible/README.md:
--------------------------------------------------------------------------------
1 | # Ansible Collection - autoware.dev_env
2 |
3 | This collection contains the playbooks to set up the development environment for Autoware.
4 |
5 | ## Set up a development environment
6 |
7 | ### Ansible installation
8 |
9 | ```bash
10 | # Remove apt installed ansible (In Ubuntu 22.04, ansible the version is old)
11 | sudo apt-get purge ansible
12 |
13 | # Install pipx
14 | sudo apt-get -y update
15 | sudo apt-get -y install pipx
16 |
17 | # Add pipx to the system PATH
18 | python3 -m pipx ensurepath
19 |
20 | # Install ansible
21 | pipx install --include-deps --force "ansible==6.*"
22 | ```
23 |
24 | ### Install ansible collections
25 |
26 | This step should be repeated when a new playbook is added.
27 |
28 | ```bash
29 | cd ~/autoware # The root directory of the cloned repository
30 | ansible-galaxy collection install -f -r "ansible-galaxy-requirements.yaml"
31 | ```
32 |
--------------------------------------------------------------------------------
/.github/workflows/pre-commit.yaml:
--------------------------------------------------------------------------------
1 | name: pre-commit
2 |
3 | on:
4 | pull_request:
5 |
6 | jobs:
7 | pre-commit:
8 | if: ${{ github.event.repository.private }} # Use pre-commit.ci for public repositories
9 | runs-on: ubuntu-22.04
10 | steps:
11 | - name: Generate token
12 | id: generate-token
13 | uses: tibdex/github-app-token@v2
14 | with:
15 | app_id: ${{ secrets.APP_ID }}
16 | private_key: ${{ secrets.PRIVATE_KEY }}
17 |
18 | - name: Check out repository
19 | uses: actions/checkout@v4
20 | with:
21 | ref: ${{ github.event.pull_request.head.ref }}
22 |
23 | - name: Run pre-commit
24 | uses: autowarefoundation/autoware-github-actions/pre-commit@v1
25 | with:
26 | pre-commit-config: .pre-commit-config.yaml
27 | token: ${{ steps.generate-token.outputs.token }}
28 |
--------------------------------------------------------------------------------
/ansible/roles/agnocast/README.md:
--------------------------------------------------------------------------------
1 | # agnocast
2 |
3 | This role installs [Agnocast](https://github.com/tier4/agnocast), true zero-copy communication middleware for all ROS 2 message types.
4 |
5 | ## Inputs
6 |
7 | None.
8 |
9 | ## Manual Installation
10 |
11 | ```bash
12 | agnocast_version="2.1.2"
13 | agnocast_heaphook_package="agnocast-heaphook-v${agnocast_version}"
14 | agnocast_kmod_package="agnocast-kmod-v${agnocast_version}"
15 |
16 | sudo add-apt-repository -y ppa:t4-system-software/agnocast
17 | sudo apt update
18 | sudo apt install -y "${agnocast_heaphook_package}"
19 |
20 | if dkms status | grep agnocast | grep -q "{agnocast_version}"; then
21 | echo "agnocast-kmod-v${agnocast_version} is already registered in dkms. Skipping purge and install."
22 | else
23 | sudo apt purge -y "${agnocast_kmod_package}"
24 | sudo apt install -y "${agnocast_kmod_package}"
25 | fi
26 |
27 | ```
28 |
--------------------------------------------------------------------------------
/ansible/roles/spconv/README.md:
--------------------------------------------------------------------------------
1 | # spconv
2 |
3 | This role install the `cumm` and `spconv` libraries needed to perform sparse convolutions.
4 | The [original implementation](https://github.com/traveller59/spconv) did not provide a shared library, which is pre-generated c++ code and pre-compiled libraries were prepared [separatedly](https://github.com/autowarefoundation/spconv_cpp).
5 |
6 | ## Manual Installation
7 |
8 | For manual installation, please follow the instructions in [this](https://github.com/autowarefoundation/spconv_cpp) repository.
9 |
10 | ## Run the playbook
11 |
12 | The following command will install a particular version of the packages using ansible.
13 |
14 | ```bash
15 | export CUMM_VERSION=0.5.3
16 | export SPCONV_VERSION=2.3.8
17 | ansible-playbook autoware.dev_env.install_spconv.yaml -e cumm_version=${CUMM_VERSION} -e spconv_version=${SPCONV_VERSION} --ask-become-pass
18 | ```
19 |
--------------------------------------------------------------------------------
/.github/actions/free-disk-space/action.yaml:
--------------------------------------------------------------------------------
1 | name: free-disk-space
2 | description: ""
3 |
4 | runs:
5 | using: composite
6 | steps:
7 | - name: Install sudo
8 | run: |
9 | if ! (command -v sudo >/dev/null 2>&1); then
10 | apt-get -y update
11 | apt-get -y install sudo
12 | fi
13 | shell: bash
14 |
15 | - name: Free Disk Space (Ubuntu)
16 | uses: jlumbroso/free-disk-space@main
17 | with:
18 | # this might remove tools that are actually needed,
19 | # if set to "true" but frees about 6 GB
20 | tool-cache: true
21 |
22 | # all of these default to true, but feel free to set to
23 | # "false" if necessary for your workflow
24 | android: true
25 | dotnet: true
26 | haskell: true
27 | large-packages: true
28 | docker-images: true
29 | swap-storage: false
30 |
--------------------------------------------------------------------------------
/ansible/roles/ros2_dev_tools/README.md:
--------------------------------------------------------------------------------
1 | # ros2_dev_tools
2 |
3 | This role installs ROS 2 development tools following [this page](https://docs.ros.org/en/humble/Installation/Ubuntu-Development-Setup.html).
4 |
5 | ## Inputs
6 |
7 | None.
8 |
9 | ## Manual Installation
10 |
11 | ```bash
12 | # Taken from https://docs.ros.org/en/humble/Installation/Ubuntu-Development-Setup.html
13 | sudo apt update && sudo apt install -y \
14 | python3-colcon-mixin \
15 | python3-flake8-docstrings \
16 | python3-pip \
17 | python3-pytest-cov \
18 | ros-dev-tools \
19 | python3-flake8-blind-except \
20 | python3-flake8-builtins \
21 | python3-flake8-class-newline \
22 | python3-flake8-comprehensions \
23 | python3-flake8-deprecated \
24 | python3-flake8-import-order \
25 | python3-flake8-quotes \
26 | python3-pytest-repeat \
27 | python3-pytest-rerunfailures
28 |
29 | # Initialize rosdep
30 | sudo rosdep init
31 | rosdep update
32 | ```
33 |
--------------------------------------------------------------------------------
/.webauto-ci/main/autoware-setup/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash -e
2 |
3 | ansible_args=()
4 | ansible_args+=("--extra-vars" "prompt_install_nvidia=y")
5 | ansible_args+=("--extra-vars" "prompt_download_artifacts=y")
6 | ansible_args+=("--extra-vars" "data_dir=$HOME/autoware_data")
7 | ansible_args+=("--extra-vars" "ros2_installation_type=ros-base")
8 | ansible_args+=("--extra-vars" "install_devel=false")
9 |
10 | # read amd64 env file and expand ansible arguments
11 | source 'amd64.env'
12 | while read -r env_name; do
13 | ansible_args+=("--extra-vars" "${env_name}=${!env_name}")
14 | done < <(
15 | grep -v '^\s*#' amd64.env |
16 | grep -v '^\s*$' |
17 | sed 's/#.*//' | # remove trailing comments
18 | sed 's/=.*//' # extract variable name
19 | )
20 |
21 | ansible-galaxy collection install -f -r "ansible-galaxy-requirements.yaml"
22 | ansible-playbook "ansible/playbooks/universe.yaml" \
23 | "${ansible_args[@]}" \
24 | -e WORKSPACE_ROOT="$(pwd)" \
25 | --skip-tags vcs
26 |
--------------------------------------------------------------------------------
/ansible/roles/kisak_mesa/README.md:
--------------------------------------------------------------------------------
1 | # Kisak Mesa Fix for Ubuntu 22.04 for Rviz2 (Not mandatory)
2 |
3 | If you are using Ubuntu 22.04 and Rviz2 (especially inside a container), you may encounter black-screen error on Rviz2:
4 |
5 | This role will install the Kisak Mesa fix for Ubuntu 22.04 for Rviz2.
6 |
7 | ## Inputs
8 |
9 | None
10 |
11 | ## Manual Installation
12 |
13 | ```bash
14 | #!/bin/bash
15 |
16 | # Update the package list and install software-properties-common
17 | sudo apt-get update
18 | sudo apt-get install -y software-properties-common
19 |
20 | # Add the Kisak Mesa PPA
21 | sudo add-apt-repository -y ppa:kisak/kisak-mesa
22 |
23 | # Update the package list after adding the new repository
24 | sudo apt-get update
25 |
26 | # Install Mesa libraries
27 | sudo apt-get install -y \
28 | libegl-mesa0 \
29 | libegl1-mesa-dev \
30 | libgbm-dev \
31 | libgbm1 \
32 | libgl1-mesa-dev \
33 | libgl1-mesa-dri \
34 | libglapi-mesa \
35 | libglx-mesa0
36 | ```
37 |
--------------------------------------------------------------------------------
/.github/workflows/spell-check-differential.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | name: spell-check-differential
6 |
7 | on:
8 | pull_request:
9 |
10 | concurrency:
11 | group: ${{ github.workflow }}-${{ github.ref }}
12 | cancel-in-progress: true
13 |
14 | jobs:
15 | spell-check-differential:
16 | runs-on: ubuntu-22.04
17 | steps:
18 | - name: Check out repository
19 | uses: actions/checkout@v4
20 |
21 | - name: Run spell-check
22 | uses: autowarefoundation/autoware-github-actions/spell-check@v1
23 | with:
24 | cspell-json-url: https://raw.githubusercontent.com/autowarefoundation/autoware-spell-check-dict/main/.cspell.json
25 | dict-packages: |
26 | https://github.com/autowarefoundation/autoware-spell-check-dict
27 | https://github.com/tier4/cspell-dicts
28 |
--------------------------------------------------------------------------------
/.github/workflows/bump-repo-versions-tools.yaml:
--------------------------------------------------------------------------------
1 | name: bump-repo-versions-tools
2 |
3 | on:
4 | schedule:
5 | - cron: 0 0,6,12,18 * * *
6 | workflow_dispatch:
7 |
8 | jobs:
9 | create-version-update-pr:
10 | runs-on: ubuntu-22.04
11 | steps:
12 | - uses: actions/checkout@v4
13 |
14 | - name: Generate GitHub App token
15 | id: generate-token
16 | uses: tibdex/github-app-token@v2
17 | with:
18 | app_id: ${{ secrets.APP_ID }}
19 | private_key: ${{ secrets.PRIVATE_KEY }}
20 |
21 | - name: Create PRs to update VCS repositories for tools.repos
22 | uses: autowarefoundation/autoware-github-actions/create-prs-to-update-vcs-repositories@v1
23 | with:
24 | token: ${{ steps.generate-token.outputs.token }}
25 | repo_name: autowarefoundation/autoware
26 | parent_dir: .
27 | targets: major minor patch
28 | base_branch: main
29 | new_branch_prefix: feat/update-
30 | autoware_repos_file_name: tools.repos
31 | verbosity: 0
32 |
--------------------------------------------------------------------------------
/.github/workflows/spell-check-daily.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | name: spell-check-daily
6 |
7 | on:
8 | schedule:
9 | - cron: 0 0 * * *
10 | workflow_dispatch:
11 |
12 | concurrency:
13 | group: ${{ github.workflow }}-${{ github.ref }}
14 | cancel-in-progress: true
15 |
16 | jobs:
17 | spell-check-daily:
18 | runs-on: ubuntu-22.04
19 | steps:
20 | - name: Check out repository
21 | uses: actions/checkout@v4
22 |
23 | - name: Run spell-check
24 | uses: autowarefoundation/autoware-github-actions/spell-check@v1
25 | with:
26 | incremental-files-only: false
27 | cspell-json-url: https://raw.githubusercontent.com/tier4/autoware-spell-check-dict/main/.cspell.json
28 | dict-packages: |
29 | https://github.com/autowarefoundation/autoware-spell-check-dict
30 | https://github.com/tier4/cspell-dicts
31 |
--------------------------------------------------------------------------------
/.github/workflows/backport.yaml:
--------------------------------------------------------------------------------
1 | name: backport
2 | on:
3 | pull_request_target:
4 | types:
5 | - closed
6 | - labeled
7 |
8 | jobs:
9 | backport:
10 | runs-on: ubuntu-22.04
11 | # Only react to merged PRs for security reasons.
12 | # See https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target.
13 | if: >
14 | github.event.pull_request.merged
15 | && (
16 | github.event.action == 'closed'
17 | || (
18 | github.event.action == 'labeled'
19 | && contains(github.event.label.name, 'backport')
20 | )
21 | )
22 | steps:
23 | - name: Generate token
24 | id: generate-token
25 | uses: tibdex/github-app-token@v2
26 | with:
27 | app_id: ${{ secrets.APP_ID }}
28 | private_key: ${{ secrets.PRIVATE_KEY }}
29 |
30 | - uses: tibdex/backport@v2
31 | with:
32 | github_token: ${{ steps.generate-token.outputs.token }}
33 | title_template: "<%= title %> (backport #<%= number %>)"
34 |
--------------------------------------------------------------------------------
/.github/workflows/bump-repo-versions-simulator.yaml:
--------------------------------------------------------------------------------
1 | name: bump-repo-versions-simulator
2 |
3 | on:
4 | schedule:
5 | - cron: 0 0,6,12,18 * * *
6 | workflow_dispatch:
7 |
8 | jobs:
9 | create-version-update-pr:
10 | runs-on: ubuntu-22.04
11 | steps:
12 | - uses: actions/checkout@v4
13 |
14 | - name: Generate GitHub App token
15 | id: generate-token
16 | uses: tibdex/github-app-token@v2
17 | with:
18 | app_id: ${{ secrets.APP_ID }}
19 | private_key: ${{ secrets.PRIVATE_KEY }}
20 |
21 | - name: Create PRs to update VCS repositories for simulator.repos
22 | uses: autowarefoundation/autoware-github-actions/create-prs-to-update-vcs-repositories@v1
23 | with:
24 | token: ${{ steps.generate-token.outputs.token }}
25 | repo_name: autowarefoundation/autoware
26 | parent_dir: .
27 | targets: major minor
28 | base_branch: main
29 | new_branch_prefix: feat/update-
30 | autoware_repos_file_name: simulator.repos
31 | verbosity: 0
32 |
--------------------------------------------------------------------------------
/.github/workflows/bump-repo-versions-autoware.yaml:
--------------------------------------------------------------------------------
1 | name: bump-repo-versions-autoware
2 |
3 | on:
4 | schedule:
5 | - cron: 0 0,6,12,18 * * *
6 | workflow_dispatch:
7 |
8 | jobs:
9 | create-version-update-pr:
10 | runs-on: ubuntu-22.04
11 | steps:
12 | - uses: actions/checkout@v4
13 |
14 | - name: Generate GitHub App token
15 | id: generate-token
16 | uses: tibdex/github-app-token@v2
17 | with:
18 | app_id: ${{ secrets.APP_ID }}
19 | private_key: ${{ secrets.PRIVATE_KEY }}
20 |
21 | - name: Create PRs to update VCS repositories for autoware.repos
22 | uses: autowarefoundation/autoware-github-actions/create-prs-to-update-vcs-repositories@v1
23 | with:
24 | token: ${{ steps.generate-token.outputs.token }}
25 | repo_name: autowarefoundation/autoware
26 | parent_dir: .
27 | targets: major minor patch
28 | base_branch: main
29 | new_branch_prefix: feat/update-
30 | autoware_repos_file_name: autoware.repos
31 | verbosity: 0
32 |
--------------------------------------------------------------------------------
/ansible/roles/pacmod/README.md:
--------------------------------------------------------------------------------
1 | # pacmod
2 |
3 | This role sets up the prerequisites to install pacmod3_msgs following [this page](https://github.com/astuff/pacmod3_msgs#installation) and [this page](https://github.com/astuff/docker-builds/blob/e9f563ef04b0578ba0b545711ea3e41b20a51d27/ros2/foxy/ros-core/Dockerfile).
4 |
5 | ## Inputs
6 |
7 | | Name | Required | Description |
8 | | --------- | -------- | --------------- |
9 | | rosdistro | true | The ROS distro. |
10 |
11 | ## Manual Installation
12 |
13 | For Universe, the `rosdistro` variable can also be found in:
14 | [../../playbooks/universe.yaml](../../playbooks/universe.yaml)
15 |
16 | ```bash
17 | wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/main/amd64.env && source /tmp/amd64.env
18 |
19 | # Taken from https://github.com/astuff/pacmod3#installation
20 | sudo apt install apt-transport-https
21 | sudo sh -c 'echo "deb [trusted=yes] https://s3.amazonaws.com/autonomoustuff-repo/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/autonomoustuff-public.list'
22 | sudo apt update
23 | sudo apt install ros-${rosdistro}-pacmod3
24 | ```
25 |
--------------------------------------------------------------------------------
/ansible/roles/dev_tools/README.md:
--------------------------------------------------------------------------------
1 | # devel
2 |
3 | This role installs optional development tools for Autoware.
4 |
5 | ## Tools
6 |
7 | - Git LFS
8 | - pre-commit
9 | - clang-format
10 | - Go
11 | - PlotJuggler
12 |
13 | ## Inputs
14 |
15 | | Name | Required | Description |
16 | | ------------------------------- | -------- | --------------------------------------- |
17 | | pre_commit_clang_format_version | true | The version of clang-format to install. |
18 | | rosdistro | true | The ROS distribution. |
19 |
20 | ## Manual Installation
21 |
22 | ```bash
23 | # For the environment variables
24 | wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/main/amd64.env && source /tmp/amd64.env
25 |
26 | sudo apt-get update
27 |
28 | sudo apt install python3-pip
29 | sudo apt-get install -y golang
30 | sudo apt-get install -y ros-${rosdistro}-plotjuggler-ros
31 | sudo apt-get install -y git-lfs
32 |
33 | # Setup Git LFS
34 | git lfs install
35 |
36 | pip3 install pre-commit
37 | pip3 install clang-format==${pre_commit_clang_format_version}
38 | ```
39 |
--------------------------------------------------------------------------------
/ansible/roles/spconv/tasks/main.yaml:
--------------------------------------------------------------------------------
1 | # cspell:ignore Bcumm
2 | - name: Normalize dpkg architecture
3 | ansible.builtin.set_fact:
4 | spconv_normalized_arch: "{{ ansible_architecture | regex_replace('aarch64', 'arm64') | regex_replace('x86_64', 'amd64') }}"
5 |
6 | - name: Download the cumm package
7 | ansible.builtin.get_url:
8 | mode: "0644"
9 | url: https://github.com/autowarefoundation/spconv_cpp/releases/download/spconv_v{{ spconv_version }}%2Bcumm_v{{ cumm_version }}/cumm_{{ cumm_version }}_{{ spconv_normalized_arch }}.deb
10 | dest: /tmp/cumm.deb
11 |
12 | - name: Install the cumm package
13 | become: true
14 | ansible.builtin.apt:
15 | deb: /tmp/cumm.deb
16 | state: present
17 |
18 | - name: Download the spconv package
19 | ansible.builtin.get_url:
20 | mode: "0644"
21 | url: https://github.com/autowarefoundation/spconv_cpp/releases/download/spconv_v{{ spconv_version }}%2Bcumm_v{{ cumm_version }}/spconv_{{ spconv_version }}_{{ spconv_normalized_arch }}.deb
22 | dest: /tmp/spconv.deb
23 |
24 | - name: Install the spconv package
25 | become: true
26 | ansible.builtin.apt:
27 | deb: /tmp/spconv.deb
28 | state: present
29 |
--------------------------------------------------------------------------------
/ansible/roles/telegraf/README.md:
--------------------------------------------------------------------------------
1 | # telegraf
2 |
3 | This role install [InfluxDB v2](https://docs.influxdata.com/influxdb/v2/get-started/) and [Telegraf](https://docs.influxdata.com/telegraf/v1/) to collect system metrics.
4 |
5 | After installing telegraf and influxdb2, we need to manually make an API token and copy it to the `/etc/telegraf/telegraf.conf`.
6 |
7 | ## Create Organization
8 |
9 | When accessing the InfluxDB UI for the first time, you need to create an organization and a backet. Enter as follows.
10 |
11 | 
12 |
13 | ## Generate API token
14 |
15 | Next, move to the `Load Data` tab, click the `GENERATE API TOKEN button`, and generate the API token.
16 |
17 |
18 |
19 | 
20 |
21 | 
22 |
23 | ## Copy API token and restart Telegraf
24 |
25 | Paste the obtained API token into the empty string part of `token = ""` in `/etc/telegraf/telegraf.conf`.
26 |
27 |
28 |
--------------------------------------------------------------------------------
/ansible/roles/nvidia_container_toolkit/tasks/main.yaml:
--------------------------------------------------------------------------------
1 | - name: Add NVIDIA container toolkit GPG key
2 | become: true
3 | ansible.builtin.apt_key:
4 | url: https://nvidia.github.io/libnvidia-container/gpgkey
5 | state: present
6 | keyring: /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
7 |
8 | - name: Add NVIDIA container toolkit repository
9 | become: true
10 | ansible.builtin.apt_repository:
11 | repo: deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/deb/$(ARCH) /
12 | state: present
13 | filename: nvidia-container-toolkit
14 | update_cache: true
15 |
16 | - name: Install NVIDIA Container Toolkit
17 | become: true
18 | ansible.builtin.apt:
19 | name:
20 | - nvidia-container-toolkit
21 | update_cache: true
22 |
23 | - name: Add NVIDIA runtime support to docker engine
24 | become: true
25 | ansible.builtin.shell: |
26 | nvidia-ctk runtime configure --runtime=docker
27 | changed_when: true
28 |
29 | - name: Restart docker daemon
30 | become: true
31 | ansible.builtin.systemd:
32 | name: docker
33 | state: restarted
34 | changed_when: true
35 |
--------------------------------------------------------------------------------
/ansible/playbooks/docker.yaml:
--------------------------------------------------------------------------------
1 | - name: Set up Docker development environments for Autoware
2 | hosts: localhost
3 | connection: local
4 | vars_prompt:
5 | - name: prompt_install_nvidia
6 | prompt: |-
7 | [Warning] Some Autoware components depend on the CUDA, cuDNN and TensorRT NVIDIA libraries which have end-user license agreements that should be reviewed before installation.
8 | Install NVIDIA libraries? [y/N]
9 | private: false
10 | pre_tasks:
11 | - name: Print args
12 | ansible.builtin.debug:
13 | msg:
14 | - cuda_version: "{{ cuda_version }}"
15 | - cudnn_version: "{{ cudnn_version }}"
16 | - name: Show a warning if the NVIDIA libraries will not be installed
17 | ansible.builtin.pause:
18 | seconds: 10
19 | prompt: |
20 | [Warning] Skipping installation of NVIDIA libraries. Please manually install them if you plan to use any dependent components.
21 | when: prompt_install_nvidia != 'y'
22 | roles:
23 | - role: autoware.dev_env.cuda
24 | when: prompt_install_nvidia == 'y'
25 | - role: autoware.dev_env.docker_engine
26 | - role: autoware.dev_env.nvidia_container_toolkit
27 |
--------------------------------------------------------------------------------
/ansible/roles/build_tools/tasks/main.yaml:
--------------------------------------------------------------------------------
1 | - name: Install ccache
2 | become: true
3 | ansible.builtin.apt:
4 | name: ccache
5 | state: latest
6 | update_cache: true
7 |
8 | - name: Add CCACHE_DIR to .bashrc
9 | ansible.builtin.lineinfile:
10 | dest: ~/.bashrc
11 | line: export CCACHE_DIR="$HOME/.ccache"
12 | state: present
13 | create: true
14 | mode: 0644
15 |
16 | - name: Add CCACHE_DIR to .bashrc of local user
17 | become: true
18 | ansible.builtin.lineinfile:
19 | dest: /etc/skel/.bashrc
20 | line: export CCACHE_DIR="$HOME/.ccache"
21 | state: present
22 | create: true
23 | mode: 0644
24 |
25 | - name: Export CC to ccache
26 | ansible.builtin.lineinfile:
27 | dest: ~/.bashrc
28 | line: export CC="/usr/lib/ccache/gcc"
29 | state: present
30 | create: true
31 | mode: 0644
32 |
33 | - name: Export CXX to ccache
34 | ansible.builtin.lineinfile:
35 | dest: ~/.bashrc
36 | line: export CXX="/usr/lib/ccache/g++"
37 | state: present
38 | create: true
39 | mode: 0644
40 |
41 | - name: Source .bashrc
42 | ansible.builtin.shell: source ~/.bashrc
43 | args:
44 | executable: /bin/bash
45 | changed_when: false
46 |
--------------------------------------------------------------------------------
/ansible/roles/rmw_implementation/README.md:
--------------------------------------------------------------------------------
1 | # rmw_implementation
2 |
3 | This role sets up ROS 2 RMW implementation following [this page](https://docs.ros.org/en/humble/How-To-Guides/Working-with-multiple-RMW-implementations.html).
4 |
5 | ## Inputs
6 |
7 | | Name | Required | Description |
8 | | ------------------ | -------- | ------------------- |
9 | | rosdistro | true | The ROS distro. |
10 | | rmw_implementation | true | RMW implementation. |
11 |
12 | ## Manual Installation
13 |
14 | For Universe, the `rosdistro` and `rmw_implementation` variable can also be found in:
15 | [../../playbooks/universe.yaml](../../playbooks/universe.yaml)
16 |
17 | ```bash
18 | wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/main/amd64.env && source /tmp/amd64.env
19 |
20 | # For details: https://docs.ros.org/en/humble/How-To-Guides/Working-with-multiple-RMW-implementations.html
21 | sudo apt update
22 | sudo apt install ros-${rosdistro}-${rmw_implementation//_/-}
23 |
24 | # (Optional) You set the default RMW implementation in the ~/.bashrc file.
25 | echo '' >> ~/.bashrc && echo "export RMW_IMPLEMENTATION=${rmw_implementation}" >> ~/.bashrc
26 | ```
27 |
--------------------------------------------------------------------------------
/.github/workflows/sync-files.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | name: sync-files
6 |
7 | on:
8 | schedule:
9 | - cron: 0 0 * * *
10 | workflow_dispatch:
11 |
12 | concurrency:
13 | group: ${{ github.workflow }}-${{ github.ref }}
14 | cancel-in-progress: true
15 |
16 | jobs:
17 | check-secret:
18 | uses: autowarefoundation/autoware-github-actions/.github/workflows/check-secret.yaml@v1
19 | secrets:
20 | secret: ${{ secrets.APP_ID }}
21 |
22 | sync-files:
23 | needs: check-secret
24 | if: ${{ needs.check-secret.outputs.set == 'true' }}
25 | runs-on: ubuntu-22.04
26 | steps:
27 | - name: Generate token
28 | id: generate-token
29 | uses: tibdex/github-app-token@v2
30 | with:
31 | app_id: ${{ secrets.APP_ID }}
32 | private_key: ${{ secrets.PRIVATE_KEY }}
33 |
34 | - name: Run sync-files
35 | uses: autowarefoundation/autoware-github-actions/sync-files@v1
36 | with:
37 | token: ${{ steps.generate-token.outputs.token }}
38 | pr-labels: |
39 | tag:bot
40 | tag:sync-files
41 | auto-merge-method: squash
42 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/qt5ct.conf:
--------------------------------------------------------------------------------
1 | [Appearance]
2 | color_scheme_path=/usr/share/qt5ct/colors/darker.conf
3 | custom_palette=true
4 | icon_theme=ubuntu-mono-dark
5 | standard_dialogs=default
6 | style=Fusion
7 |
8 | [Fonts]
9 | fixed=@Variant(\0\0\0@\0\0\0\f\0R\0o\0\x62\0o\0t\0o\xbf\xf0\0\0\0\0\0\0\0\0\0\r\x5\x1\0\x32\x10)
10 | general=@Variant(\0\0\0@\0\0\0\f\0R\0o\0\x62\0o\0t\0o\xbf\xf0\0\0\0\0\0\0\0\0\0\r\x5\x1\0\x32\x10)
11 |
12 | [Interface]
13 | activate_item_on_single_click=1
14 | buttonbox_layout=3
15 | cursor_flash_time=1000
16 | dialog_buttons_have_icons=1
17 | double_click_interval=400
18 | gui_effects=@Invalid()
19 | keyboard_scheme=2
20 | menus_have_icons=true
21 | show_shortcuts_in_context_menus=true
22 | stylesheets=autoware_stylesheet_path
23 | toolbutton_style=0
24 | underline_shortcut=1
25 | wheel_scroll_lines=3
26 |
27 | [QSSEditor]
28 | geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\t\xde\0\0\x2~\0\0\f`\0\0\x4\x95\0\0\t\xde\0\0\x2\xa3\0\0\f`\0\0\x4\x95\0\0\0\0\0\0\0\0\n\0\0\0\t\xde\0\0\x2\xa3\0\0\f`\0\0\x4\x95)
29 |
30 | [SettingsWindow]
31 | geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\f\x9c\0\0\x4\x19\0\0\xfz\0\0\a\x3\0\0\f\x9c\0\0\x4>\0\0\xfz\0\0\a\x3\0\0\0\0\0\0\0\0\xf\0\0\0\f\x9c\0\0\x4>\0\0\xfz\0\0\a\x3)
32 |
33 | [Troubleshooting]
34 | force_raster_widgets=2
35 | ignored_applications=@Invalid()
36 |
--------------------------------------------------------------------------------
/.github/workflows/pre-commit-ansible-autoupdate.yaml:
--------------------------------------------------------------------------------
1 | name: pre-commit-ansible-autoupdate
2 |
3 | on:
4 | schedule:
5 | - cron: 0 0 * * *
6 | workflow_dispatch:
7 |
8 | jobs:
9 | check-secret:
10 | uses: autowarefoundation/autoware-github-actions/.github/workflows/check-secret.yaml@v1
11 | secrets:
12 | secret: ${{ secrets.APP_ID }}
13 |
14 | pre-commit-ansible-autoupdate:
15 | needs: check-secret
16 | if: ${{ needs.check-secret.outputs.set == 'true' }}
17 | runs-on: ubuntu-22.04
18 | steps:
19 | - name: Generate token
20 | id: generate-token
21 | uses: tibdex/github-app-token@v2
22 | with:
23 | app_id: ${{ secrets.APP_ID }}
24 | private_key: ${{ secrets.PRIVATE_KEY }}
25 |
26 | - name: Run pre-commit-autoupdate
27 | uses: autowarefoundation/autoware-github-actions/pre-commit-autoupdate@v1
28 | with:
29 | token: ${{ steps.generate-token.outputs.token }}
30 | pre-commit-config: .pre-commit-config-ansible.yaml
31 | pr-labels: |
32 | tag:bot
33 | tag:pre-commit-autoupdate
34 | pr-branch: pre-commit-ansible-autoupdate
35 | pr-title: "ci(pre-commit-ansible): autoupdate"
36 | pr-commit-message: "ci(pre-commit-ansible): autoupdate"
37 | auto-merge-method: squash
38 |
--------------------------------------------------------------------------------
/ansible/roles/pacmod/tasks/main.yaml:
--------------------------------------------------------------------------------
1 | - name: Install apt-transport-https
2 | become: true
3 | ansible.builtin.apt:
4 | name: apt-transport-https
5 | update_cache: true
6 |
7 | - name: Save result of 'lsb_release -sc'
8 | ansible.builtin.command: lsb_release -sc
9 | register: pacmod__lsb_release
10 | changed_when: false
11 |
12 | # echo "deb [trusted=yes] https://s3.amazonaws.com/autonomoustuff-repo/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/autonomoustuff-public.list
13 | - name: Add AutonomouStuff apt repository to source list
14 | become: true
15 | ansible.builtin.apt_repository:
16 | repo: deb [trusted=yes] https://s3.amazonaws.com/autonomoustuff-repo/ {{ pacmod__lsb_release.stdout }} main
17 | filename: autonomoustuff-public
18 | state: present
19 | update_cache: true
20 |
21 | # echo "yaml https://s3.amazonaws.com/autonomoustuff-repo/autonomoustuff-public-$ROS_DISTRO.yaml $ROS_DISTRO" > /etc/ros/rosdep/sources.list.d/40-autonomoustuff-public-'$ROS_DISTRO'.list
22 | - name: Add AutonomouStuff rosdep yaml
23 | become: true
24 | ansible.builtin.lineinfile:
25 | path: /etc/ros/rosdep/sources.list.d/40-autonomoustuff-public-{{ rosdistro }}.list
26 | line: yaml https://s3.amazonaws.com/autonomoustuff-repo/autonomoustuff-public-{{ rosdistro }}.yaml
27 | state: present
28 | create: true
29 | mode: 0644
30 |
--------------------------------------------------------------------------------
/docker/etc/ros_entrypoint.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # shellcheck disable=SC1090,SC1091
3 |
4 | # Get the user ID and group ID of the local user
5 | USER_ID=${LOCAL_UID}
6 | USER_NAME=${LOCAL_USER}
7 | GROUP_ID=${LOCAL_GID}
8 | GROUP_NAME=${LOCAL_GROUP}
9 |
10 | # Check if any of the variables are empty
11 | if [[ -z $USER_ID || -z $USER_NAME || -z $GROUP_ID || -z $GROUP_NAME ]]; then
12 | source "/opt/ros/$ROS_DISTRO/setup.bash"
13 | source /opt/autoware/setup.bash
14 | exec "$@"
15 | else
16 | echo "Starting with user: $USER_NAME >> UID $USER_ID, GID: $GROUP_ID"
17 |
18 | # Create group and user with GID/UID
19 | groupadd -g "$GROUP_ID" "$GROUP_NAME"
20 | useradd -u "$USER_ID" -g "$GROUP_ID" -s /bin/bash -m -d /home/"$USER_NAME" "$USER_NAME"
21 |
22 | # Add sudo privileges to the user
23 | echo "$USER_NAME ALL=(ALL) NOPASSWD:ALL" >>/etc/sudoers
24 |
25 | # Source ROS 2
26 | # hadolint ignore=SC1090
27 | source "/opt/ros/$ROS_DISTRO/setup.bash"
28 | source /opt/autoware/setup.bash
29 |
30 | # Add symlink for autoware_data if directory exists
31 | if [ -d /autoware_data ]; then
32 | ln -s /autoware_data /home/"$USER_NAME"/autoware_data
33 | echo "Linked /autoware_data to /home/$USER_NAME/autoware_data"
34 | fi
35 |
36 | # Execute the command as the user
37 | exec /usr/sbin/gosu "$USER_NAME" "$@"
38 | fi
39 |
--------------------------------------------------------------------------------
/ansible/roles/tensorrt/README.md:
--------------------------------------------------------------------------------
1 | # tensorrt
2 |
3 | This role installs TensorRT and cuDNN following [the official NVIDIA TensorRT Installation Guide](https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#installing).
4 |
5 | ## Inputs
6 |
7 | | Name | Required | Description |
8 | | ---------------- | -------- | ------------------------ |
9 | | cudnn_version | true | The version of cuDNN. |
10 | | tensorrt_version | true | The version of TensorRT. |
11 |
12 | ## Manual Installation
13 |
14 | ```bash
15 | # For the environment variables
16 | wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/main/amd64.env && source /tmp/amd64.env
17 |
18 | sudo apt-get install -y \
19 | libcudnn8=${cudnn_version} \
20 | libnvinfer10=${tensorrt_version} \
21 | libnvinfer-plugin10=${tensorrt_version} \
22 | libnvonnxparsers10=${tensorrt_version} \
23 | libcudnn8-dev=${cudnn_version} \
24 | libnvinfer-dev=${tensorrt_version} \
25 | libnvinfer-plugin-dev=${tensorrt_version} \
26 | libnvinfer-headers-dev=${tensorrt_version} \
27 | libnvinfer-headers-plugin-dev=${tensorrt_version} \
28 | libnvonnxparsers-dev=${tensorrt_version}
29 |
30 | sudo apt-mark hold \
31 | libcudnn8 \
32 | libnvinfer10 \
33 | libnvinfer-plugin10 \
34 | libnvonnxparsers10 \
35 | libcudnn8-dev \
36 | libnvinfer-dev \
37 | libnvinfer-plugin-dev \
38 | libnvonnxparsers-dev \
39 | libnvinfer-headers-dev \
40 | libnvinfer-headers-plugin-dev
41 | ```
42 |
--------------------------------------------------------------------------------
/CPPLINT.cfg:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | # Modified from https://github.com/ament/ament_lint/blob/ebd524bb9973d5ec1dc48a670ce54f958a5a0243/ament_cpplint/ament_cpplint/main.py#L64-L120
6 | set noparent
7 | linelength=100
8 | includeorder=standardcfirst
9 | filter=-build/c++11 # we do allow C++11
10 | filter=-build/c++17 # we allow
11 | filter=-build/namespaces_literals # we allow using namespace for literals
12 | filter=-runtime/references # we consider passing non-const references to be ok
13 | filter=-whitespace/braces # we wrap open curly braces for namespaces, classes and functions
14 | filter=-whitespace/indent # we don't indent keywords like public, protected and private with one space
15 | filter=-whitespace/newline # we allow the developer to decide about newline at the end of file (it's clashing with clang-format)
16 | filter=-whitespace/parens # we allow closing parenthesis to be on the next line
17 | filter=-whitespace/semicolon # we allow the developer to decide about whitespace after a semicolon
18 | filter=-build/header_guard # we automatically fix the names of header guards using pre-commit
19 | filter=-build/include_order # we use the custom include order
20 | filter=-build/include_subdir # we allow the style of "foo.hpp"
21 |
--------------------------------------------------------------------------------
/ansible/roles/rmw_implementation/tasks/main.yaml:
--------------------------------------------------------------------------------
1 | - name: Validate inputs
2 | ansible.builtin.assert:
3 | that:
4 | - rmw_implementation__rosdistro | length > 0
5 | - rmw_implementation__name | length > 0
6 |
7 | - name: Build target package name
8 | ansible.builtin.set_fact:
9 | rmw_implementation__pkg: >-
10 | ros-{{ rmw_implementation__rosdistro }}-{{ rmw_implementation__name | replace('_', '-') }}
11 |
12 | - name: List held packages
13 | ansible.builtin.command: apt-mark showhold
14 | register: rmw_implementation__held_pkgs
15 | changed_when: false
16 |
17 | - name: Install latest (skip if held) {{ rmw_implementation__pkg }}
18 | become: true
19 | ansible.builtin.apt:
20 | name: "{{ rmw_implementation__pkg }}"
21 | state: latest
22 | update_cache: true
23 | cache_valid_time: 3600
24 | when: rmw_implementation__pkg not in rmw_implementation__held_pkgs.stdout_lines
25 |
26 | - name: Ensure RMW_IMPLEMENTATION in user bashrc
27 | ansible.builtin.lineinfile:
28 | path: "{{ lookup('env', 'HOME') }}/.bashrc"
29 | line: export RMW_IMPLEMENTATION={{ rmw_implementation__name }}
30 | state: present
31 | create: true
32 | mode: "0644"
33 |
34 | - name: Ensure RMW_IMPLEMENTATION in skeleton bashrc (for new users)
35 | become: true
36 | ansible.builtin.lineinfile:
37 | path: /etc/skel/.bashrc
38 | line: export RMW_IMPLEMENTATION={{ rmw_implementation__name }}
39 | state: present
40 | create: true
41 | mode: "0644"
42 |
--------------------------------------------------------------------------------
/.github/sync-files.yaml:
--------------------------------------------------------------------------------
1 | - repository: autowarefoundation/sync-file-templates
2 | source-dir: sources
3 | files:
4 | - source: .github/ISSUE_TEMPLATE/bug.yaml
5 | - source: .github/ISSUE_TEMPLATE/config.yml
6 | - source: .github/ISSUE_TEMPLATE/task.yaml
7 | - source: .github/dependabot.yaml
8 | - source: .github/pull_request_template.md
9 | - source: .github/stale.yml
10 | - source: .github/workflows/cancel-previous-workflows.yaml
11 | - source: .github/workflows/comment-on-pr.yaml
12 | - source: .github/workflows/github-release.yaml
13 | - source: .github/workflows/pre-commit-optional.yaml
14 | - source: .github/workflows/pre-commit-optional-autoupdate.yaml
15 | - source: .github/workflows/pre-commit-autoupdate.yaml
16 | - source: .github/workflows/semantic-pull-request.yaml
17 | - source: .github/workflows/spell-check-differential.yaml
18 | - source: .github/workflows/spell-check-daily.yaml
19 | - source: .github/workflows/sync-files.yaml
20 | - source: .clang-format
21 | - source: .clang-tidy
22 | - source: .markdown-link-check.json
23 | - source: .markdownlint.yaml
24 | - source: .pre-commit-config-optional.yaml
25 | - source: .pre-commit-config.yaml
26 | - source: .prettierignore
27 | - source: .prettierrc.yaml
28 | - source: .yamllint.yaml
29 | - source: CODE_OF_CONDUCT.md
30 | - source: CONTRIBUTING.md
31 | - source: CPPLINT.cfg
32 | - source: DISCLAIMER.md
33 | - source: LICENSE
34 | - source: setup.cfg
35 |
--------------------------------------------------------------------------------
/.clang-format:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | # Modified from https://github.com/ament/ament_lint/blob/master/ament_clang_format/ament_clang_format/configuration/.clang-format
6 | Language: Cpp
7 | BasedOnStyle: Google
8 |
9 | AccessModifierOffset: -2
10 | AlignAfterOpenBracket: AlwaysBreak
11 | AllowShortFunctionsOnASingleLine: InlineOnly
12 | BraceWrapping:
13 | AfterClass: true
14 | AfterFunction: true
15 | AfterNamespace: true
16 | AfterStruct: true
17 | BreakBeforeBraces: Custom
18 | ColumnLimit: 100
19 | ConstructorInitializerIndentWidth: 0
20 | ContinuationIndentWidth: 2
21 | DerivePointerAlignment: false
22 | PointerAlignment: Middle
23 | ReflowComments: true
24 | IncludeCategories:
25 | # C++ system headers
26 | - Regex: <[a-z_]*>
27 | Priority: 6
28 | CaseSensitive: true
29 | # C system headers
30 | - Regex: <.*\.h>
31 | Priority: 5
32 | CaseSensitive: true
33 | # Boost headers
34 | - Regex: boost/.*
35 | Priority: 4
36 | CaseSensitive: true
37 | # Message headers
38 | - Regex: .*_msgs/.*
39 | Priority: 3
40 | CaseSensitive: true
41 | - Regex: .*_srvs/.*
42 | Priority: 3
43 | CaseSensitive: true
44 | # Other Package headers
45 | - Regex: <.*>
46 | Priority: 2
47 | CaseSensitive: true
48 | # Local package headers
49 | - Regex: '".*"'
50 | Priority: 1
51 | CaseSensitive: true
52 |
--------------------------------------------------------------------------------
/ansible/roles/telegraf/files/telegraf.conf:
--------------------------------------------------------------------------------
1 | [global_tags]
2 |
3 | [agent]
4 | interval = "10s"
5 | round_interval = true
6 | metric_batch_size = 1000
7 | metric_buffer_limit = 10000
8 | collection_jitter = "0s"
9 | flush_interval = "10s"
10 | flush_jitter = "0s"
11 | precision = "0s"
12 | hostname = ""
13 | omit_hostname = false
14 |
15 | [[outputs.influxdb_v2]]
16 | urls = ["http://127.0.0.1:8086"]
17 | # Attach the access token. See also https://docs.influxdata.com/influxdb/cloud/admin/tokens/create-token/#manage-tokens-in-the-influxdb-ui
18 | token = ""
19 | organization = "autowarefoundation"
20 | bucket = "autoware"
21 | timeout = "5s"
22 | user_agent = "telegraf"
23 |
24 | [[inputs.cpu]]
25 | percpu = true
26 | totalcpu = true
27 | collect_cpu_time = false
28 | report_active = false
29 | core_tags = false
30 |
31 | [[inputs.disk]]
32 | ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
33 |
34 | [[inputs.diskio]]
35 |
36 | [[inputs.kernel]]
37 |
38 | [[inputs.mem]]
39 |
40 | [[inputs.processes]]
41 |
42 | [[inputs.swap]]
43 |
44 | [[inputs.system]]
45 |
46 | [[inputs.exec]]
47 | commands = ["/opt/autoware/bin/get_telegraf_proccpu_json.sh"]
48 | timeout = "10s"
49 | data_format = "json"
50 | name_suffix = "_proccpu"
51 |
52 | [[inputs.exec]]
53 | commands = ["/opt/autoware/bin/get_telegraf_procmem_json.sh"]
54 | timeout = "5s"
55 | data_format = "json"
56 | name_suffix = "_procmem"
57 |
58 | [[inputs.net]]
59 |
60 | [[inputs.nvidia_smi]]
61 |
--------------------------------------------------------------------------------
/.webauto-ci/main/autoware-build/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash -e
2 |
3 | : "${WEBAUTO_CI_SOURCE_PATH:?is not set}"
4 | : "${WEBAUTO_CI_DEBUG_BUILD:?is not set}"
5 |
6 | : "${AUTOWARE_PATH:?is not set}"
7 | : "${CCACHE_DIR:=}"
8 | : "${CCACHE_SIZE:=1G}"
9 | : "${PARALLEL_WORKERS:=4}"
10 |
11 | sudo mkdir "$AUTOWARE_PATH"
12 | sudo chown "$(whoami)": "$AUTOWARE_PATH"
13 | cd "$WEBAUTO_CI_SOURCE_PATH"
14 | cp -r src .webauto-ci.* "$AUTOWARE_PATH"
15 | cd "$AUTOWARE_PATH"
16 |
17 | if [ -n "$CCACHE_DIR" ]; then
18 | mkdir -p "$CCACHE_DIR"
19 | export USE_CCACHE=1
20 | export CCACHE_DIR="$CCACHE_DIR"
21 | export CC="/usr/lib/ccache/gcc"
22 | export CXX="/usr/lib/ccache/g++"
23 | ccache -M "$CCACHE_SIZE"
24 | fi
25 |
26 | # install xmlschema<4.0.0 before rosdep install as workaround for scenario_simulator_v2
27 | sudo pip3 install xmlschema==3.4.5
28 |
29 | sudo -E apt-get -y update
30 |
31 | # shellcheck disable=SC2012
32 | ROS_DISTRO=$(ls -1 /opt/ros | head -1)
33 | # shellcheck disable=SC1090
34 | source "/opt/ros/$ROS_DISTRO/setup.bash"
35 | rosdep update
36 | rosdep install -y --from-paths src --ignore-src --rosdistro "$ROS_DISTRO"
37 |
38 | [[ $WEBAUTO_CI_DEBUG_BUILD == "true" ]] && build_type="RelWithDebInfo" || build_type="Release"
39 |
40 | colcon build \
41 | --cmake-args -DCMAKE_BUILD_TYPE="$build_type" -DBUILD_TESTING=off -Wno-dev --no-warn-unused-cli \
42 | --symlink-install \
43 | --catkin-skip-building-tests \
44 | --executor parallel \
45 | --parallel-workers "$PARALLEL_WORKERS"
46 |
47 | sudo -E apt-get -y autoremove
48 |
--------------------------------------------------------------------------------
/docker/tools/visualizer/README.md:
--------------------------------------------------------------------------------
1 | # Autoware Tools - Visualizer
2 |
3 | Opens a remote RViz display for Autoware.
4 |
5 | ## Standalone Run
6 |
7 | ```bash
8 | docker run --rm --name visualizer -p 6080:6080 ghcr.io/autowarefoundation/autoware-tools:visualizer
9 | ```
10 |
11 | ## Settings
12 |
13 | The following environment variables can be configured with `-e` while launching the visualizer container:
14 |
15 | | Variable | Default Value | Possible Values | Description |
16 | | ----------------- | ------------------------------ | ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
17 | | `RVIZ_CONFIG` | `/autoware/rviz/autoware.rviz` | Any valid path | The full path to the RViz configuration file inside the container |
18 | | `REMOTE_DISPLAY` | `true` | `true`, `false` | **(Recommended)** Lightweight and browser-based RViz display, accessible from any device. Set this to `false` to launch a local rviz2 display. |
19 | | `REMOTE_PASSWORD` | `openadkit` | Any string without special characters | Password for remote display (only used when `REMOTE_DISPLAY=true`) |
20 |
--------------------------------------------------------------------------------
/.github/workflows/pre-commit-autoupdate.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | name: pre-commit-autoupdate
6 |
7 | on:
8 | schedule:
9 | - cron: 0 0 1 1,4,7,10 * # quarterly
10 | workflow_dispatch:
11 |
12 | concurrency:
13 | group: ${{ github.workflow }}-${{ github.ref }}
14 | cancel-in-progress: true
15 |
16 | jobs:
17 | check-secret:
18 | uses: autowarefoundation/autoware-github-actions/.github/workflows/check-secret.yaml@v1
19 | secrets:
20 | secret: ${{ secrets.APP_ID }}
21 |
22 | pre-commit-autoupdate:
23 | needs: check-secret
24 | if: ${{ needs.check-secret.outputs.set == 'true' }}
25 | runs-on: ubuntu-22.04
26 | steps:
27 | - name: Generate token
28 | id: generate-token
29 | uses: tibdex/github-app-token@v2
30 | with:
31 | app_id: ${{ secrets.APP_ID }}
32 | private_key: ${{ secrets.PRIVATE_KEY }}
33 |
34 | - name: Run pre-commit-autoupdate
35 | uses: autowarefoundation/autoware-github-actions/pre-commit-autoupdate@v1
36 | with:
37 | token: ${{ steps.generate-token.outputs.token }}
38 | pre-commit-config: .pre-commit-config.yaml
39 | pr-labels: |
40 | tag:bot
41 | tag:pre-commit-autoupdate
42 | pr-branch: pre-commit-autoupdate
43 | pr-title: "ci(pre-commit): autoupdate"
44 | pr-commit-message: "ci(pre-commit): autoupdate"
45 | auto-merge-method: squash
46 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/task.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | name: Task
6 | description: Plan a task
7 | body:
8 | - type: checkboxes
9 | attributes:
10 | label: Checklist
11 | description: Confirm the following items before proceeding. If one cannot be satisfied, create a discussion thread instead.
12 | options:
13 | - label: I've read the [contribution guidelines](https://github.com/autowarefoundation/autoware/blob/main/CONTRIBUTING.md).
14 | required: true
15 | - label: I've searched other issues and no duplicate issues were found.
16 | required: true
17 | - label: I've agreed with the maintainers that I can plan this task.
18 | required: true
19 |
20 | - type: textarea
21 | attributes:
22 | label: Description
23 | description: Write a brief description of the task.
24 | validations:
25 | required: true
26 |
27 | - type: textarea
28 | attributes:
29 | label: Purpose
30 | description: Describe the purpose of the task.
31 | validations:
32 | required: true
33 |
34 | - type: textarea
35 | attributes:
36 | label: Possible approaches
37 | description: Describe possible approaches for the task.
38 | validations:
39 | required: true
40 |
41 | - type: textarea
42 | attributes:
43 | label: Definition of done
44 | description: Write the definition of done for the task.
45 | validations:
46 | required: true
47 |
--------------------------------------------------------------------------------
/docker/etc/.bash_aliases:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # planning simulation
4 | function download_planning_map() {
5 | if [ ! -f ~/autoware_map/sample-map-planning.zip ]; then
6 | gdown -O ~/autoware_map/ 'https://docs.google.com/uc?export=download&id=1499_nsbUbIeturZaDj7jhUownh5fvXHd'
7 | unzip -d ~/autoware_map ~/autoware_map/sample-map-planning.zip
8 | fi
9 | }
10 | alias awf-launch-planning-sim='download_planning_map&&ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit'
11 |
12 | # rosbag replay simulation
13 | function download_rosbag_map() {
14 | if [ ! -f ~/autoware_map/sample-map-rosbag.zip ]; then
15 | gdown -O ~/autoware_map/ 'https://docs.google.com/uc?export=download&id=1A-8BvYRX3DhSzkAnOcGWFw5T30xTlwZI'
16 | unzip -d ~/autoware_map/ ~/autoware_map/sample-map-rosbag.zip
17 | fi
18 | }
19 | alias awf-launch-sample-rosbag-sim='download_rosbag_artifacts&&download_rosbag_map&&ros2 launch autoware_launch logging_simulator.launch.xml map_path:=$HOME/autoware_map/sample-map-rosbag vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit'
20 |
21 | # play sample rosbag
22 | function download_rosbag_file() {
23 | if [ ! -f ~/autoware_map/sample-rosbag.zip ]; then
24 | gdown -O ~/autoware_map/ 'https://docs.google.com/uc?export=download&id=1VnwJx9tI3kI_cTLzP61ktuAJ1ChgygpG'
25 | unzip -d ~/autoware_map/ ~/autoware_map/sample-rosbag.zip
26 | fi
27 | }
28 | alias awf-play-sample-rosbag='download_rosbag_file&&ros2 bag play ~/autoware_map/sample-rosbag/sample.db3 -r 0.35 -s sqlite3'
29 |
--------------------------------------------------------------------------------
/docker/docker-bake-cuda.hcl:
--------------------------------------------------------------------------------
1 | group "default" {
2 | targets = [
3 | "universe-common-devel-cuda",
4 | "universe-sensing-perception-devel-cuda",
5 | "universe-sensing-perception-cuda",
6 | "universe-devel-cuda",
7 | "universe-cuda"
8 | ]
9 | }
10 |
11 | // For docker/metadata-action
12 | target "docker-metadata-action-universe-common-devel-cuda" {}
13 | target "docker-metadata-action-universe-sensing-perception-devel-cuda" {}
14 | target "docker-metadata-action-universe-sensing-perception-cuda" {}
15 | target "docker-metadata-action-universe-devel-cuda" {}
16 | target "docker-metadata-action-universe-cuda" {}
17 |
18 | target "universe-common-devel-cuda" {
19 | inherits = ["docker-metadata-action-universe-common-devel-cuda"]
20 | dockerfile = "docker/Dockerfile"
21 | target = "universe-common-devel-cuda"
22 | }
23 |
24 | target "universe-sensing-perception-devel-cuda" {
25 | inherits = ["docker-metadata-action-universe-sensing-perception-devel-cuda"]
26 | dockerfile = "docker/Dockerfile"
27 | target = "universe-sensing-perception-devel-cuda"
28 | }
29 |
30 | target "universe-sensing-perception-cuda" {
31 | inherits = ["docker-metadata-action-universe-sensing-perception-cuda"]
32 | dockerfile = "docker/Dockerfile"
33 | target = "universe-sensing-perception-cuda"
34 | }
35 |
36 | target "universe-devel-cuda" {
37 | inherits = ["docker-metadata-action-universe-devel-cuda"]
38 | dockerfile = "docker/Dockerfile"
39 | target = "universe-devel-cuda"
40 | }
41 |
42 | target "universe-cuda" {
43 | inherits = ["docker-metadata-action-universe-cuda"]
44 | dockerfile = "docker/Dockerfile"
45 | target = "universe-cuda"
46 | }
47 |
--------------------------------------------------------------------------------
/.github/workflows/pre-commit-optional-autoupdate.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | name: pre-commit-optional-autoupdate
6 |
7 | on:
8 | schedule:
9 | - cron: 0 0 1 1,4,7,10 * # quarterly
10 | workflow_dispatch:
11 |
12 | concurrency:
13 | group: ${{ github.workflow }}-${{ github.ref }}
14 | cancel-in-progress: true
15 |
16 | jobs:
17 | check-secret:
18 | uses: autowarefoundation/autoware-github-actions/.github/workflows/check-secret.yaml@v1
19 | secrets:
20 | secret: ${{ secrets.APP_ID }}
21 |
22 | pre-commit-optional-autoupdate:
23 | needs: check-secret
24 | if: ${{ needs.check-secret.outputs.set == 'true' }}
25 | runs-on: ubuntu-22.04
26 | steps:
27 | - name: Generate token
28 | id: generate-token
29 | uses: tibdex/github-app-token@v2
30 | with:
31 | app_id: ${{ secrets.APP_ID }}
32 | private_key: ${{ secrets.PRIVATE_KEY }}
33 |
34 | - name: Run pre-commit-autoupdate
35 | uses: autowarefoundation/autoware-github-actions/pre-commit-autoupdate@v1
36 | with:
37 | token: ${{ steps.generate-token.outputs.token }}
38 | pre-commit-config: .pre-commit-config-optional.yaml
39 | pr-labels: |
40 | tag:bot
41 | tag:pre-commit-autoupdate
42 | pr-branch: pre-commit-optional-autoupdate
43 | pr-title: "ci(pre-commit-optional): autoupdate"
44 | pr-commit-message: "ci(pre-commit-optional): autoupdate"
45 | auto-merge-method: squash
46 |
--------------------------------------------------------------------------------
/autoware-nightly.repos:
--------------------------------------------------------------------------------
1 | repositories:
2 | core/autoware_adapi_msgs:
3 | type: git
4 | url: https://github.com/autowarefoundation/autoware_adapi_msgs.git
5 | version: main
6 | core/autoware_internal_msgs:
7 | type: git
8 | url: https://github.com/autowarefoundation/autoware_internal_msgs.git
9 | version: main
10 | core/autoware_core:
11 | type: git
12 | url: https://github.com/autowarefoundation/autoware_core.git
13 | version: main
14 | core/autoware_utils: # TODO(mitsudome-r): Remove this repository entry when https://github.com/autowarefoundation/autoware/pull/5700 is merged.
15 | type: git
16 | url: https://github.com/autowarefoundation/autoware_utils.git
17 | version: main
18 | core/autoware_rviz_plugins:
19 | type: git
20 | url: https://github.com/autowarefoundation/autoware_rviz_plugins.git
21 | version: main
22 | universe/autoware_universe:
23 | type: git
24 | url: https://github.com/autowarefoundation/autoware_universe.git
25 | version: main
26 | universe/external/managed_transform_buffer:
27 | type: git
28 | url: https://github.com/autowarefoundation/managed_transform_buffer.git
29 | version: main
30 | universe/external/tier4_ad_api_adaptor: # TODO(TIER IV): Migrate to AD API and remove this repository entry.
31 | type: git
32 | url: https://github.com/tier4/tier4_ad_api_adaptor.git
33 | version: tier4/universe
34 | universe/external/tier4_autoware_msgs:
35 | type: git
36 | url: https://github.com/tier4/tier4_autoware_msgs.git
37 | version: tier4/universe
38 | launcher/autoware_launch:
39 | type: git
40 | url: https://github.com/autowarefoundation/autoware_launch.git
41 | version: main
42 |
--------------------------------------------------------------------------------
/ansible/roles/tensorrt/tasks/main.yaml:
--------------------------------------------------------------------------------
1 | - name: Install cuDNN and TensorRT
2 | become: true
3 | ansible.builtin.apt:
4 | name:
5 | - libcudnn8={{ cudnn_version }}
6 | - libnvinfer10={{ tensorrt_version }}
7 | - libnvinfer-plugin10={{ tensorrt_version }}
8 | - libnvonnxparsers10={{ tensorrt_version }}
9 | allow_change_held_packages: true
10 | allow_downgrade: true
11 | update_cache: true
12 |
13 | - name: Install cuDNN and TensorRT Dev
14 | become: true
15 | ansible.builtin.apt:
16 | name:
17 | - libcudnn8-dev={{ cudnn_version }}
18 | - libnvinfer-dev={{ tensorrt_version }}
19 | - libnvinfer-plugin-dev={{ tensorrt_version }}
20 | - libnvinfer-headers-dev={{ tensorrt_version }}
21 | - libnvinfer-headers-plugin-dev={{ tensorrt_version }}
22 | - libnvonnxparsers-dev={{ tensorrt_version }}
23 | allow_change_held_packages: true
24 | allow_downgrade: true
25 | update_cache: true
26 | when: install_devel == 'y'
27 |
28 | # apt-mark hold
29 | - name: Prevent CUDA-related packages from upgrading
30 | become: true
31 | ansible.builtin.dpkg_selections:
32 | name: "{{ item }}"
33 | selection: hold
34 | with_items:
35 | - libcudnn8
36 | - libnvinfer10
37 | - libnvinfer-plugin10
38 | - libnvonnxparsers10
39 |
40 | - name: Prevent CUDA-related Dev packages from upgrading
41 | become: true
42 | ansible.builtin.dpkg_selections:
43 | name: "{{ item }}"
44 | selection: hold
45 | with_items:
46 | - libcudnn8-dev
47 | - libnvinfer-dev
48 | - libnvinfer-plugin-dev
49 | - libnvinfer-headers-dev
50 | - libnvinfer-headers-plugin-dev
51 | - libnvonnxparsers-dev
52 | when: install_devel == 'y'
53 |
--------------------------------------------------------------------------------
/.github/workflows/comment-on-pr.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | name: comment-on-pr
6 | on:
7 | pull_request_target:
8 |
9 | concurrency:
10 | group: ${{ github.workflow }}-${{ github.ref }}
11 | cancel-in-progress: true
12 |
13 | jobs:
14 | comment-on-pr:
15 | runs-on: ubuntu-22.04
16 | permissions:
17 | pull-requests: write
18 | steps:
19 | - name: Check out repository
20 | uses: actions/checkout@v4
21 |
22 | - name: Initial PR comment
23 | uses: marocchino/sticky-pull-request-comment@v2
24 | with:
25 | message: |
26 | Thank you for contributing to the Autoware project!
27 |
28 | 🚧 If your pull request is in progress, [switch it to draft mode](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request#converting-a-pull-request-to-a-draft).
29 |
30 | Please ensure:
31 | - You've checked our [contribution guidelines](https://autowarefoundation.github.io/autoware-documentation/main/contributing/).
32 | - Your PR follows our [pull request guidelines](https://autowarefoundation.github.io/autoware-documentation/main/contributing/pull-request-guidelines/).
33 | - All required CI checks pass before [marking the PR ready for review](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request#marking-a-pull-request-as-ready-for-review).
34 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/active/uparrow.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/uparrow.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/uparrow.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/active/downarrow.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/downarrow.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/downarrow.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/leftarrow.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/rightarrow.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/leftarrow.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/rightarrow.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/tab_close.svg:
--------------------------------------------------------------------------------
1 |
21 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/vline.svg:
--------------------------------------------------------------------------------
1 |
24 |
--------------------------------------------------------------------------------
/docker/planning-simulation.env:
--------------------------------------------------------------------------------
1 | # ROS settings
2 | ROS_DOMAIN_ID=1
3 | USE_SIM_TIME=false
4 |
5 | # Common settings
6 | POINTCLOUD_CONTAINER_NAME=pointcloud_container
7 | SCENARIO_SIMULATION=false
8 | SENSOR_MODEL=sample_sensor_kit
9 | VEHICLE_ID=default
10 | VEHICLE_MODEL=sample_vehicle
11 |
12 | # Map settings
13 | LANELET2_MAP_FILE=lanelet2_map.osm
14 | MAP_PATH=$HOME/autoware_map/sample-map-planning
15 | POINTCLOUD_MAP_FILE=pointcloud_map.pcd
16 |
17 | # Planning settings
18 | ENABLE_ALL_MODULES_AUTO_MODE=false
19 | IS_SIMULATION_MODE=true
20 | PLANNING_MODULE_PRESET=default
21 |
22 | # Control settings
23 | CHECK_EXTERNAL_EMERGENCY_HEARTBEAT=false
24 | CONTROL_MODULE_PRESET=default
25 | LATERAL_CONTROLLER_MODE=mpc
26 | LONGITUDINAL_CONTROLLER_MODE=pid
27 |
28 | # Vehicle interface
29 | LAUNCH_VEHICLE_INTERFACE=true
30 |
31 | # System settings
32 | SYSTEM_RUN_MODE=planning_simulation
33 | LAUNCH_SYSTEM_MONITOR=false
34 | LAUNCH_DUMMY_DIAG_PUBLISHER=true
35 |
36 | # Sensing settings
37 | LAUNCH_POINTCLOUD_CONTAINER_SENSING=false
38 | LAUNCH_SENSING_DRIVER=false
39 |
40 | # Perception settings
41 | DATA_PATH=$HOME/autoware_data
42 | LAUNCH_POINTCLOUD_CONTAINER_PERCEPTION=false
43 | LIDAR_DETECTION_MODEL=clustering
44 | PERCEPTION_MODE=lidar
45 |
46 | # Simulator settings
47 | INITIAL_ENGAGE_STATE=true
48 | LAUNCH_DUMMY_DOORS=true
49 | LAUNCH_DUMMY_PERCEPTION=true
50 | LAUNCH_DUMMY_VEHICLE=true
51 | LAUNCH_SCENARIO_SIMULATOR_V2_ADAPTER=false
52 | LOCALIZATION_SIM_MODE=api
53 | PERCEPTION_ENABLE_DETECTION_FAILURE=true
54 | PERCEPTION_ENABLE_OBJECT_RECOGNITION=true
55 | PERCEPTION_ENABLE_TRAFFIC_LIGHT=false
56 | PERCEPTION_USE_BASE_LINK_Z=true
57 | SENSING_VISIBLE_RANGE=300.0
58 | USE_POINTCLOUD_CONTAINER=false
59 |
60 | # Visualization settings
61 | REMOTE_DISPLAY=true
62 | RVIZ_CONFIG=/opt/autoware/share/autoware_launch/rviz/autoware.rviz
63 |
64 | # Rosbag settings
65 | ROSBAG_PATH=$HOME/autoware_map/sample-rosbag
66 | ROSBAG_RATE=1.0
67 | ROSBAG_FORMAT=sqlite3
68 |
--------------------------------------------------------------------------------
/docker/tools/visualizer/Dockerfile:
--------------------------------------------------------------------------------
1 | # cspell:ignore openbox, VNC, tigervnc, novnc, websockify, newkey, xstartup, keyout
2 | FROM ghcr.io/autowarefoundation/autoware:universe AS universe
3 | SHELL ["/bin/bash", "-o", "pipefail", "-c"]
4 |
5 | # Extract RViz configs for visualizer
6 | # hadolint ignore=SC1091
7 | RUN source /opt/autoware/setup.bash \
8 | && RVIZ_PATH="$(ros2 pkg prefix --share autoware_launch)/rviz" \
9 | && cp -r "$RVIZ_PATH" /autoware/rviz
10 |
11 | ### visualizer
12 | FROM ghcr.io/autowarefoundation/autoware:universe-visualization AS visualizer
13 | SHELL ["/bin/bash", "-o", "pipefail", "-c"]
14 | ARG ROS_DISTRO
15 | ARG LIB_DIR
16 |
17 | COPY --from=universe /autoware/rviz /autoware/rviz
18 | WORKDIR /autoware
19 |
20 | # Install openbox, VNC, and simulator dependencies
21 | # hadolint ignore=SC2002
22 | RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
23 | curl \
24 | unzip \
25 | openbox \
26 | tigervnc-standalone-server \
27 | tigervnc-common \
28 | novnc \
29 | websockify \
30 | python3-numpy \
31 | python3-xdg \
32 | && pip install --no-cache-dir yamale xmlschema \
33 | && /autoware/cleanup_system.sh $LIB_DIR $ROS_DISTRO
34 |
35 | # Create SSL certificate for NoVNC
36 | RUN openssl req -x509 -nodes -newkey rsa:2048 \
37 | -keyout /etc/ssl/private/novnc.key \
38 | -out /etc/ssl/certs/novnc.crt \
39 | -days 365 \
40 | -subj "/O=Autoware-OpenADKit/CN=localhost"
41 |
42 | # Need to expose VNC and NoVNC ports when running the container
43 | EXPOSE 5900 6080
44 |
45 | # Add source commands to bash startup
46 | RUN echo "source /opt/ros/$ROS_DISTRO/setup.bash" >> /root/.bashrc && \
47 | echo "source /opt/autoware/setup.bash" >> /root/.bashrc
48 |
49 | # Copy startup scripts
50 | COPY docker/tools/visualizer/xstartup /root/.vnc/xstartup
51 | COPY docker/tools/visualizer/entrypoint.sh /entrypoint.sh
52 | RUN chmod +x /entrypoint.sh && chmod +x /root/.vnc/xstartup
53 | ENTRYPOINT ["/entrypoint.sh"]
54 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-end.svg:
--------------------------------------------------------------------------------
1 |
25 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/branch-end.svg:
--------------------------------------------------------------------------------
1 |
25 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/branch-more.svg:
--------------------------------------------------------------------------------
1 |
25 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-more.svg:
--------------------------------------------------------------------------------
1 |
25 |
--------------------------------------------------------------------------------
/ansible/roles/dev_tools/tasks/main.yaml:
--------------------------------------------------------------------------------
1 | # https://github.com/git-lfs/git-lfs/wiki/Installation#debian-and-ubuntu
2 | - name: Install Git LFS
3 | become: true
4 | ansible.builtin.apt:
5 | name: git-lfs
6 | state: latest
7 | update_cache: true
8 |
9 | # ref: https://github.com/ansible/ansible-lint/issues/1780
10 | - name: Check if git lfs is installed # https://github.com/git-lfs/git-lfs/issues/901
11 | community.general.git_config:
12 | list_all: true
13 | scope: global
14 | register: dev_tools__git_lfs__git_global_config
15 |
16 | - name: Setup Git LFS
17 | ansible.builtin.command: git lfs install
18 | when: "'filter.lfs.required' not in dev_tools__git_lfs__git_global_config.config_values"
19 | changed_when: true
20 |
21 | - name: Install pipx
22 | become: true
23 | ansible.builtin.apt:
24 | name: pipx
25 | state: latest
26 | update_cache: true
27 |
28 | - name: Install pre-commit
29 | community.general.pipx:
30 | name: pre-commit
31 | executable: /usr/bin/pipx
32 |
33 | - name: Install clang-format
34 | community.general.pipx:
35 | name: clang-format
36 | executable: /usr/bin/pipx
37 |
38 | - name: Install Go
39 | become: true
40 | ansible.builtin.apt:
41 | name: golang
42 | state: latest
43 | update_cache: true
44 |
45 | - name: Hold check of ros-{{ rosdistro + '-plotjuggler' }}
46 | ansible.builtin.command: apt-mark showhold
47 | register: dev_tools__held_ros_packages
48 | changed_when: false
49 |
50 | - name: Install plotjuggler
51 | become: true
52 | ansible.builtin.apt:
53 | name:
54 | - ros-{{ rosdistro }}-plotjuggler
55 | state: latest
56 | update_cache: true
57 | when: "'ros-' + rosdistro + '-plotjuggler' not in dev_tools__held_ros_packages.stdout"
58 | register: dev_tools__install_result
59 | failed_when: false
60 |
61 | - name: Display warning if plotjuggler package is held
62 | ansible.builtin.debug:
63 | msg: ROS package 'ros-{{ rosdistro }}-plotjuggler' is apt-mark hold. Skipping installation.
64 | when: not dev_tools__install_result.changed
65 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/slider.svg:
--------------------------------------------------------------------------------
1 |
25 |
--------------------------------------------------------------------------------
/docker/logging-simulation.env:
--------------------------------------------------------------------------------
1 | # ROS settings
2 | ROS_DOMAIN_ID=1
3 | USE_SIM_TIME=true
4 |
5 | # Common settings
6 | POINTCLOUD_CONTAINER_NAME=pointcloud_container
7 | SCENARIO_SIMULATION=false
8 | SENSOR_MODEL=sample_sensor_kit
9 | VEHICLE_ID=default
10 | VEHICLE_MODEL=sample_vehicle
11 |
12 | # Map settings
13 | LANELET2_MAP_FILE=lanelet2_map.osm
14 | MAP_PATH=$HOME/autoware_map/sample-map-rosbag
15 | POINTCLOUD_MAP_FILE=pointcloud_map.pcd
16 |
17 | # Planning settings
18 | ENABLE_ALL_MODULES_AUTO_MODE=false
19 | IS_SIMULATION_MODE=true
20 | PLANNING_MODULE_PRESET=default
21 |
22 | # Control settings
23 | CHECK_EXTERNAL_EMERGENCY_HEARTBEAT=false
24 | CONTROL_MODULE_PRESET=default
25 | LATERAL_CONTROLLER_MODE=mpc
26 | LONGITUDINAL_CONTROLLER_MODE=pid
27 |
28 | # Vehicle interface
29 | LAUNCH_VEHICLE_INTERFACE=false
30 |
31 | # System settings
32 | SYSTEM_RUN_MODE=logging_simulation
33 | LAUNCH_SYSTEM_MONITOR=false
34 | LAUNCH_DUMMY_DIAG_PUBLISHER=false
35 |
36 | # Sensing settings
37 | LAUNCH_POINTCLOUD_CONTAINER_SENSING=true
38 | LAUNCH_SENSING_DRIVER=false
39 |
40 | # Perception settings
41 | SENSING_PERCEPTION_IMAGE=ghcr.io/autowarefoundation/autoware:universe-sensing-perception
42 | DATA_PATH=$HOME/autoware_data
43 | LAUNCH_POINTCLOUD_CONTAINER_PERCEPTION=false
44 | LIDAR_DETECTION_MODEL=clustering
45 | OCCUPANCY_GRID_MAP_METHOD=laserscan_based
46 | PERCEPTION_MODE=lidar
47 |
48 | # Simulator settings
49 | INITIAL_ENGAGE_STATE=false
50 | LAUNCH_DUMMY_DOORS=false
51 | LAUNCH_DUMMY_PERCEPTION=false
52 | LAUNCH_DUMMY_VEHICLE=false
53 | LAUNCH_SCENARIO_SIMULATOR_V2_ADAPTER=false
54 | LOCALIZATION_SIM_MODE=none
55 | PERCEPTION_ENABLE_DETECTION_FAILURE=false
56 | PERCEPTION_ENABLE_OBJECT_RECOGNITION=true
57 | PERCEPTION_ENABLE_TRAFFIC_LIGHT=true
58 | PERCEPTION_USE_BASE_LINK_Z=false
59 | SENSING_VISIBLE_RANGE=300.0
60 | USE_POINTCLOUD_CONTAINER=true
61 |
62 | # Visualization settings
63 | REMOTE_DISPLAY=true
64 | RVIZ_CONFIG=/opt/autoware/share/autoware_launch/rviz/autoware.rviz
65 |
66 | # Rosbag settings
67 | ROSBAG_PATH=$HOME/autoware_map/sample-rosbag
68 | ROSBAG_RATE=0.2
69 | ROSBAG_FORMAT=sqlite3
70 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_unchecked.svg:
--------------------------------------------------------------------------------
1 |
25 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/radiobutton_unchecked.svg:
--------------------------------------------------------------------------------
1 |
25 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_unchecked_invert.svg:
--------------------------------------------------------------------------------
1 |
25 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/radiobutton_checked.svg:
--------------------------------------------------------------------------------
1 |
28 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_checked.svg:
--------------------------------------------------------------------------------
1 |
28 |
--------------------------------------------------------------------------------
/docker/Dockerfile.base:
--------------------------------------------------------------------------------
1 | ARG BASE_IMAGE
2 |
3 | # hadolint ignore=DL3006
4 | FROM $BASE_IMAGE AS base
5 | SHELL ["/bin/bash", "-o", "pipefail", "-c"]
6 | ARG ROS_DISTRO
7 |
8 | # Copy files
9 | COPY setup-dev-env.sh ansible-galaxy-requirements.yaml amd64.env amd64_jazzy.env arm64.env /autoware/
10 | COPY ansible/ /autoware/ansible/
11 | COPY docker/scripts/cleanup_apt.sh /autoware/cleanup_apt.sh
12 | RUN chmod +x /autoware/cleanup_apt.sh
13 | COPY docker/scripts/cleanup_system.sh /autoware/cleanup_system.sh
14 | RUN chmod +x /autoware/cleanup_system.sh
15 | WORKDIR /autoware
16 |
17 | # Disable installing suggested and recommended packages
18 | RUN echo 'APT::Install-Recommends "false";' > /etc/apt/apt.conf.d/99-disable-extra-packages; \
19 | echo 'APT::Install-Suggests "false";' >> /etc/apt/apt.conf.d/99-disable-extra-packages
20 |
21 | # Install apt packages and add GitHub to known hosts for private repositories
22 | RUN rm -f /etc/apt/apt.conf.d/docker-clean \
23 | && echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' >/etc/apt/apt.conf.d/keep-cache
24 | RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
25 | apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \
26 | gosu \
27 | ssh \
28 | && /autoware/cleanup_apt.sh \
29 | && mkdir -p ~/.ssh \
30 | && ssh-keyscan github.com >> ~/.ssh/known_hosts
31 |
32 | # Set up base environment
33 | RUN --mount=type=ssh \
34 | --mount=type=cache,target=/var/cache/apt,sharing=locked \
35 | ./setup-dev-env.sh -y --module base --no-nvidia --no-cuda-drivers --runtime openadkit --ros-distro $ROS_DISTRO \
36 | && pipx uninstall ansible \
37 | && /autoware/cleanup_apt.sh \
38 | && echo "source /opt/ros/${ROS_DISTRO}/setup.bash" > /etc/bash.bashrc
39 |
40 | # Create entrypoint
41 | COPY docker/etc/ros_entrypoint.sh /ros_entrypoint.sh
42 | RUN chmod +x /ros_entrypoint.sh
43 | CMD ["/bin/bash"]
44 |
45 | FROM base AS base-cuda
46 | SHELL ["/bin/bash", "-o", "pipefail", "-c"]
47 |
48 | # Set up CUDA runtime environment
49 | # hadolint ignore=SC2002,SC2086
50 | RUN --mount=type=ssh \
51 | ./setup-dev-env.sh -y --module base --no-cuda-drivers --runtime openadkit --ros-distro $ROS_DISTRO \
52 | && pipx uninstall ansible \
53 | && /autoware/cleanup_apt.sh true
54 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_checked_invert.svg:
--------------------------------------------------------------------------------
1 |
28 |
--------------------------------------------------------------------------------
/.github/workflows/autoware-base.yaml:
--------------------------------------------------------------------------------
1 | name: autoware-base
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 | paths:
8 | - .github/actions/docker-build-and-push-base
9 | - .github/workflows/autoware-base.yaml
10 | - amd64.env
11 | - ansible-galaxy-requirements.yaml
12 | - ansible/playbooks/openadkit.yaml
13 | - ansible/roles/**
14 | - arm64.env
15 | - docker/Dockerfile.base
16 | - docker/etc
17 | - docker/scripts/cleanup_*.sh
18 | - setup-dev-env.sh
19 | schedule:
20 | - cron: 0 0 15 * * # every 15th of the month
21 | workflow_dispatch:
22 |
23 | jobs:
24 | autoware-base:
25 | strategy:
26 | matrix:
27 | platform: [humble, jazzy]
28 | include:
29 | - platform: humble
30 | runner: ubuntu-22.04
31 | env-file: amd64.env
32 | suffix: "" # no suffix for humble since it is default
33 | set-latest: true
34 | - platform: jazzy
35 | runner: ubuntu-24.04
36 | env-file: amd64_jazzy.env
37 | suffix: -jazzy
38 | set-latest: false
39 | runs-on: ${{ matrix.runner }}
40 | steps:
41 | - name: Check out this repository
42 | uses: actions/checkout@v4
43 |
44 | - name: Free disk space
45 | uses: ./.github/actions/free-disk-space
46 |
47 | - name: Set up QEMU
48 | uses: docker/setup-qemu-action@v3
49 | with: # cSpell:ignore tonistiigi, binfmt
50 | image: tonistiigi/binfmt:qemu-v7.0.0
51 |
52 | - name: Load env file
53 | id: load-env
54 | uses: falti/dotenv-action@v1
55 | with:
56 | path: ${{ matrix.env-file }}
57 | export-variables: true
58 | log-variables: true
59 |
60 | - name: Build Autoware's base images
61 | uses: ./.github/actions/docker-build-and-push-base
62 | with:
63 | target-image: autoware-base
64 | build-args: |
65 | *.platform=linux/amd64,linux/arm64
66 | *.args.ROS_DISTRO=${{ steps.load-env.outputs.rosdistro }}
67 | *.args.BASE_IMAGE=${{ steps.load-env.outputs.base_image }}
68 | suffix: ${{ matrix.suffix }}
69 | set-latest: ${{ matrix.set-latest }}
70 |
--------------------------------------------------------------------------------
/ansible/roles/docker_engine/README.md:
--------------------------------------------------------------------------------
1 | # docker_engine
2 |
3 | This role installs [Docker Engine](https://docs.docker.com/engine/) following the [installation guide](https://docs.docker.com/engine/install/ubuntu/) and sets up execution from non-root users following the [manual](https://docs.docker.com/engine/install/linux-postinstall/).
4 |
5 | ## Inputs
6 |
7 | None.
8 |
9 | ## Manual Installation
10 |
11 | Install Docker Engine:
12 |
13 | ```bash
14 | # Taken from: https://docs.docker.com/engine/install/ubuntu/
15 | # And: https://docs.docker.com/engine/install/linux-postinstall/
16 |
17 | # Uninstall old versions
18 | sudo apt-get remove docker docker-engine docker.io containerd runc
19 |
20 | # Install using the repository
21 | sudo apt-get update
22 |
23 | sudo apt-get install \
24 | ca-certificates \
25 | curl \
26 | gnupg \
27 | lsb-release
28 |
29 | # Add Docker’s official GPG key:
30 | sudo mkdir -p /etc/apt/keyrings
31 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
32 |
33 | # Use the following command to set up the repository:
34 | echo \
35 | "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
36 | $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
37 |
38 | # Install Docker Engine
39 | sudo apt-get update
40 | sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
41 |
42 | # Verify that Docker Engine is installed correctly by running the hello-world image.
43 | sudo docker run hello-world
44 | # Note: This command downloads a test image and runs it in a container. When the container runs, it prints a message and exits.
45 | ```
46 |
47 | Perform the post-installation steps:
48 |
49 | ```bash
50 | # Post-installation steps for Linux
51 |
52 | # Create the docker group.
53 | sudo groupadd docker
54 |
55 | # Add your user to the docker group.
56 | sudo usermod -aG docker $USER
57 |
58 | # Log out and log back in so that your group membership is re-evaluated.
59 |
60 | # Verify that you can run docker commands without sudo
61 | docker run hello-world
62 | # Note: This command downloads a test image and runs it in a container. When the container runs, it prints a message and exits.
63 | ```
64 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/README.md:
--------------------------------------------------------------------------------
1 | # qt5ct_setup Ansible role
2 |
3 | ## Overview
4 |
5 | The `qt5ct_setup` Ansible role automates the configuration of the `qt5ct` environment for Autoware.
6 | It won't affect the system-wide configuration.
7 |
8 | ## Installation
9 |
10 | Follow the instructions below to **install** or **update** the custom theme for `RViz2` in Autoware.
11 |
12 | > **Important:** Both commands must be run when you want to update the theme.
13 |
14 | ```bash
15 | cd ~/autoware # The root directory of the cloned repository
16 | ansible-galaxy collection install -f -r "ansible-galaxy-requirements.yaml"
17 | ansible-playbook autoware.dev_env.install_rviz_theme --ask-become-pass
18 | ```
19 |
20 | ## How to use the custom theme in RViz2
21 |
22 | To apply a custom theme to RViz2, you can use the `qt5ct` platform theme. Follow these steps to ensure that the `QT_QPA_PLATFORMTHEME` environment variable is set correctly for your RViz2 instance when used with Autoware.
23 |
24 | ### Manual setup for running RViz2
25 |
26 | Before running RViz2 manually, set the `QT_QPA_PLATFORMTHEME` environment variable to `qt5ct`.
27 | This ensures that the custom theme settings are applied.
28 |
29 | ```bash
30 | export QT_QPA_PLATFORMTHEME=qt5ct
31 | ```
32 |
33 | Then, start RViz2 as usual.
34 |
35 | ```bash
36 | rviz2
37 | ```
38 |
39 | ### Automatic setup in Autoware
40 |
41 | In Autoware, the `QT_QPA_PLATFORMTHEME` environment variable is automatically set within the main [autoware.launch.xml](https://github.com/autowarefoundation/autoware_launch/blob/main/autoware_launch/launch/autoware.launch.xml) file.
42 | Therefore, you do not need to manually set this environment variable when launching Autoware.
43 |
44 | In the `autoware.launch.xml` file, RViz2 is configured with the following `` element:
45 |
46 | ```xml
47 |
55 |
56 |
57 | ```
58 |
59 | This configuration automatically sets the `QT_QPA_PLATFORMTHEME` to `qt5ct` when RViz2 is launched as part of Autoware.
60 | It also includes additional options such as respawn behavior and custom RViz2 configurations.
61 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/sizegrip.svg:
--------------------------------------------------------------------------------
1 |
30 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/float.svg:
--------------------------------------------------------------------------------
1 |
45 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | name: Bug
6 | description: Report a bug
7 | body:
8 | - type: checkboxes
9 | attributes:
10 | label: Checklist
11 | description: Confirm the following items before proceeding. If one cannot be satisfied, create a discussion thread instead.
12 | options:
13 | - label: I've read the [contribution guidelines](https://github.com/autowarefoundation/autoware/blob/main/CONTRIBUTING.md).
14 | required: true
15 | - label: I've searched other issues and no duplicate issues were found.
16 | required: true
17 | - label: I'm convinced that this is not my fault but a bug.
18 | required: true
19 |
20 | - type: textarea
21 | attributes:
22 | label: Description
23 | description: Write a brief description of the bug.
24 | validations:
25 | required: true
26 |
27 | - type: textarea
28 | attributes:
29 | label: Expected behavior
30 | description: Describe the expected behavior.
31 | validations:
32 | required: true
33 |
34 | - type: textarea
35 | attributes:
36 | label: Actual behavior
37 | description: Describe the actual behavior.
38 | validations:
39 | required: true
40 |
41 | - type: textarea
42 | attributes:
43 | label: Steps to reproduce
44 | description: Write the steps to reproduce the bug.
45 | placeholder: |-
46 | 1.
47 | 2.
48 | 3.
49 | validations:
50 | required: true
51 |
52 | - type: textarea
53 | attributes:
54 | label: Versions
55 | description: Provide the version information. You can omit this if you believe it's irrelevant.
56 | placeholder: |-
57 | - OS:
58 | - ROS 2:
59 | - Autoware:
60 | validations:
61 | required: false
62 |
63 | - type: textarea
64 | attributes:
65 | label: Possible causes
66 | description: Write the possible causes if you have any ideas.
67 | validations:
68 | required: false
69 |
70 | - type: textarea
71 | attributes:
72 | label: Additional context
73 | description: Add any other additional context if it exists.
74 | validations:
75 | required: false
76 |
--------------------------------------------------------------------------------
/.github/workflows/github-release.yaml:
--------------------------------------------------------------------------------
1 | # This file is automatically synced from:
2 | # https://github.com/autowarefoundation/sync-file-templates
3 | # To make changes, update the source repository and follow the guidelines in its README.
4 |
5 | name: github-release
6 |
7 | on:
8 | push:
9 | tags:
10 | - "[0-9]+.[0-9]+.[0-9]+"
11 | workflow_dispatch:
12 | inputs:
13 | tag-name:
14 | description: The name of the tag to release
15 | type: string
16 | required: true
17 |
18 | concurrency:
19 | group: ${{ github.workflow }}-${{ github.ref }}
20 | cancel-in-progress: true
21 |
22 | jobs:
23 | github-release:
24 | runs-on: ubuntu-22.04
25 | steps:
26 | - name: Set tag name
27 | id: set-tag-name
28 | run: |
29 | if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
30 | REF_NAME="${{ github.event.inputs.tag-name }}"
31 | else
32 | REF_NAME="${{ github.ref_name }}"
33 | fi
34 |
35 | echo "tag-name=$REF_NAME" >> $GITHUB_OUTPUT
36 |
37 | - name: Check out repository
38 | uses: actions/checkout@v4
39 | with:
40 | fetch-depth: 0
41 | ref: ${{ steps.set-tag-name.outputs.tag-name }}
42 |
43 | - name: Run generate-changelog
44 | id: generate-changelog
45 | uses: autowarefoundation/autoware-github-actions/generate-changelog@v1
46 | with:
47 | git-cliff-args: --tag-pattern "^(\d+)\.(\d+)\.(\d+)$" --latest
48 |
49 | - name: Select verb
50 | id: select-verb
51 | run: |
52 | has_previous_draft=$(gh release view --json isDraft -q ".isDraft" "${{ steps.set-tag-name.outputs.tag-name }}") || true
53 |
54 | verb=create
55 | if [ "$has_previous_draft" = "true" ]; then
56 | verb=edit
57 | fi
58 |
59 | echo "verb=$verb" >> $GITHUB_OUTPUT
60 | env:
61 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
62 |
63 | - name: Release to GitHub
64 | run: |
65 | gh release ${{ steps.select-verb.outputs.verb }} "${{ steps.set-tag-name.outputs.tag-name }}" \
66 | --draft \
67 | --title "${{ steps.set-tag-name.outputs.tag-name }}" \
68 | --notes "$NOTES"
69 | env:
70 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
71 | NOTES: ${{ steps.generate-changelog.outputs.changelog }}
72 |
--------------------------------------------------------------------------------
/ansible/roles/ros2/tasks/main.yaml:
--------------------------------------------------------------------------------
1 | - name: Get latest release information of ros-apt-source package
2 | ansible.builtin.uri:
3 | url: https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest
4 | method: GET
5 | return_content: true
6 | register: ros2__ros_apt_release_info
7 |
8 | - name: Extract latest version of ros-apt-source package
9 | ansible.builtin.set_fact:
10 | ros2__ros_apt_source_version: "{{ (ros2__ros_apt_release_info.content | from_json).tag_name }}"
11 |
12 | - name: Save result of 'source /etc/os-release && echo $UBUNTU_CODENAME'
13 | ansible.builtin.shell: bash -c 'source /etc/os-release && echo $UBUNTU_CODENAME'
14 | register: ros2__ubuntu_codename
15 | changed_when: false
16 |
17 | - name: Get ros2-apt-source package
18 | ansible.builtin.get_url:
19 | url: https://github.com/ros-infrastructure/ros-apt-source/releases/download/{{ ros2__ros_apt_source_version }}/ros2-apt-source_{{ ros2__ros_apt_source_version }}.{{ ros2__ubuntu_codename.stdout }}_all.deb
20 | dest: /tmp/ros2-apt-source.deb
21 | mode: "0644"
22 |
23 | - name: Install ros2-apt-source package
24 | ansible.builtin.apt:
25 | deb: /tmp/ros2-apt-source.deb
26 | state: present
27 | become: true
28 |
29 | - name: Delete installed .deb file
30 | ansible.builtin.file:
31 | path: /tmp/ros2-apt-source.deb
32 | state: absent
33 |
34 | - name: Hold check of ros-{{ rosdistro + '-' + ros2_installation_type }}
35 | ansible.builtin.command: apt-mark showhold
36 | register: ros2_held_ros_packages
37 | changed_when: false
38 |
39 | - name: Install ros-{{ rosdistro + '-' + ros2_installation_type }}
40 | become: true
41 | ansible.builtin.apt:
42 | name: ros-{{ rosdistro }}-{{ ros2_installation_type }}
43 | state: latest
44 | update_cache: true
45 | when: "'ros-' + rosdistro + '-' + ros2_installation_type not in ros2_held_ros_packages.stdout"
46 | register: ros2_install_result
47 | failed_when: false
48 |
49 | - name: Display warning if ROS 2 package is held
50 | ansible.builtin.debug:
51 | msg: ROS package 'ros-{{ rosdistro + '-' + ros2_installation_type }}' is apt-mark hold. Skipping installation.
52 | when: not ros2_install_result.changed
53 |
54 | - name: Add PATH to .bashrc
55 | become: true
56 | ansible.builtin.lineinfile:
57 | dest: "{{ item }}"
58 | line: source /opt/ros/{{ rosdistro }}/setup.bash
59 | state: present
60 | create: true
61 | mode: 0644
62 | loop:
63 | - ~/.bashrc
64 | - /etc/skel/.bashrc
65 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/toolbar-handle-horizontal.svg:
--------------------------------------------------------------------------------
1 |
32 |
--------------------------------------------------------------------------------
/docker/tools/scenario-simulator/Dockerfile:
--------------------------------------------------------------------------------
1 | ### Builder
2 | FROM ghcr.io/autowarefoundation/autoware:universe-devel AS builder
3 | SHELL ["/bin/bash", "-o", "pipefail", "-c"]
4 | ARG ROS_DISTRO
5 | ENV CCACHE_DIR="/root/.ccache"
6 |
7 | COPY src/simulator /autoware/src/simulator
8 | COPY docker/scripts/ /autoware/
9 | RUN chmod +x /autoware/*.sh
10 | WORKDIR /autoware
11 |
12 | # Extract rosdep dependencies for simulator
13 | # hadolint ignore=SC1091
14 | RUN source /opt/autoware/setup.bash \
15 | && /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} --dependency-types=exec \
16 | > /rosdep-simulator-exec-depend-packages.txt \
17 | && cat /rosdep-simulator-exec-depend-packages.txt
18 |
19 | # Install dependencies and build the scenario simulator
20 | # hadolint ignore=SC1091
21 | RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
22 | apt-get update \
23 | && source /opt/autoware/setup.bash \
24 | && rosdep update && rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO \
25 | && /autoware/cleanup_apt.sh
26 |
27 | # Build the scenario simulator
28 | # hadolint ignore=SC1091
29 | RUN --mount=type=cache,target=${CCACHE_DIR} \
30 | source /opt/autoware/setup.bash \
31 | && /autoware/build_and_clean.sh ${CCACHE_DIR} /opt/autoware \
32 | && find /opt/autoware/lib -type f -name "*.py" -exec chmod +x {} \; \
33 | && find /opt/autoware/share -type f -name "*.py" -exec chmod +x {} \;
34 |
35 | ### Scenario Simulator
36 | FROM ghcr.io/autowarefoundation/autoware:universe AS scenario-simulator
37 | SHELL ["/bin/bash", "-o", "pipefail", "-c"]
38 | ARG ROS_DISTRO
39 | ARG LIB_DIR
40 |
41 | COPY --from=builder /opt/autoware /opt/autoware
42 | COPY --from=builder /rosdep-simulator-exec-depend-packages.txt /tmp/rosdep-simulator-exec-depend-packages.txt
43 |
44 | # hadolint ignore=SC2002
45 | RUN --mount=type=ssh \
46 | --mount=type=cache,target=/var/cache/apt,sharing=locked \
47 | apt-get update \
48 | # Remove xmlschema and yamale from rosdep packages since we install via pip
49 | && sed -i '/\(xmlschema\|yamale\)/d' /tmp/rosdep-simulator-exec-depend-packages.txt \
50 | && pip3 install --no-cache-dir yamale \
51 | && pip3 install --no-cache-dir xmlschema==3.4.5 \
52 | && cat /tmp/rosdep-simulator-exec-depend-packages.txt | xargs apt-get install -y --no-install-recommends \
53 | && /autoware/cleanup_system.sh $LIB_DIR $ROS_DISTRO
54 |
55 | COPY docker/tools/scenario-simulator/entrypoint.sh /entrypoint.sh
56 | RUN chmod +x /entrypoint.sh
57 | ENTRYPOINT ["/entrypoint.sh"]
58 |
--------------------------------------------------------------------------------
/.github/workflows/update-tool-versions.yaml:
--------------------------------------------------------------------------------
1 | name: update-tool-versions
2 |
3 | on:
4 | schedule:
5 | - cron: 0 0 * * *
6 | workflow_dispatch:
7 |
8 | jobs:
9 | update-tool-versions:
10 | runs-on: ubuntu-22.04
11 | steps:
12 | - name: Generate token
13 | id: generate-token
14 | uses: tibdex/github-app-token@v2
15 | with:
16 | app_id: ${{ secrets.APP_ID }}
17 | private_key: ${{ secrets.PRIVATE_KEY }}
18 |
19 | - name: Check out repository
20 | uses: actions/checkout@v4
21 |
22 | - name: Set up sd
23 | uses: kenji-miyake/setup-sd@v2
24 |
25 | - name: Get clang-format version
26 | id: get-clang-format-version
27 | run: |
28 | function get-latest-pip-version() {
29 | pip index versions "$1" 2>/dev/null | head -n1 | sd '.*\((.*)\)' '$1'
30 | }
31 |
32 | echo "version=$(get-latest-pip-version clang-format)" >> $GITHUB_OUTPUT
33 | env:
34 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
35 |
36 | - name: Update clang-format version
37 | run: |
38 | sd '(pre_commit_clang_format_version): .*' '$1: ${{ steps.get-clang-format-version.outputs.version }}' ansible/roles/pre_commit/defaults/main.yaml
39 | sd '(pre_commit_clang_format_version)=.*' '$1=${{ steps.get-clang-format-version.outputs.version }}' ansible/roles/pre_commit/README.md
40 |
41 | - name: Create PR
42 | id: create-pr
43 | uses: peter-evans/create-pull-request@v7
44 | with:
45 | token: ${{ steps.generate-token.outputs.token }}
46 | base: ${{ github.event.repository.default_branch }}
47 | branch: update-tool-versions
48 | title: "chore: update tool versions"
49 | commit-message: "chore: update tool versions"
50 | body: ""
51 | labels: |
52 | tag:bot
53 | tag:update-tool-versions
54 | signoff: true
55 | delete-branch: true
56 |
57 | - name: Check outputs
58 | run: |
59 | echo "Pull Request Number - ${{ steps.create-pr.outputs.pull-request-number }}"
60 | echo "Pull Request URL - ${{ steps.create-pr.outputs.pull-request-url }}"
61 | shell: bash
62 |
63 | - name: Enable auto-merge
64 | if: ${{ steps.create-pr.outputs.pull-request-operation == 'created' }}
65 | run: gh pr merge --squash --auto "${{ steps.create-pr.outputs.pull-request-number }}"
66 | env:
67 | GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
68 |
--------------------------------------------------------------------------------
/ansible/playbooks/openadkit.yaml:
--------------------------------------------------------------------------------
1 | - name: Set up source development environments for Autoware Universe
2 | hosts: localhost
3 | connection: local
4 | pre_tasks:
5 | - name: Verify OS
6 | ansible.builtin.fail:
7 | msg: Only Ubuntu 22.04 and 24.04 are supported for this branch. Please refer to https://autowarefoundation.github.io/autoware-documentation/main/installation/autoware/source-installation/.
8 | when: ansible_distribution != 'Ubuntu' or (ansible_distribution_version != '22.04' and ansible_distribution_version != '24.04')
9 |
10 | - name: Print args
11 | ansible.builtin.debug:
12 | msg:
13 | - module: "{{ module }}"
14 | - rosdistro: "{{ rosdistro }}"
15 | - rmw_implementation: "{{ rmw_implementation }}"
16 | - cuda_version: "{{ cuda_version }}"
17 | - cudnn_version: "{{ cudnn_version }}"
18 | - tensorrt_version: "{{ tensorrt_version }}"
19 | roles:
20 | # Autoware base dependencies
21 | - role: autoware.dev_env.rmw_implementation
22 | when: module == 'base'
23 | vars:
24 | rmw_implementation__rosdistro: "{{ rosdistro }}"
25 | rmw_implementation__name: "{{ rmw_implementation }}"
26 | - role: autoware.dev_env.gdown
27 | when: module == 'base'
28 | - role: autoware.dev_env.kisak_mesa
29 | when: module == 'base' and rosdistro != 'jazzy'
30 | - role: autoware.dev_env.pacmod
31 | when: module == 'base' and rosdistro != 'jazzy'
32 | - role: autoware.dev_env.build_tools
33 | when: module == 'all' and install_devel=='y'
34 |
35 | # Module specific dependencies
36 | - role: autoware.dev_env.geographiclib
37 | when: module == 'perception-localization' or module == 'all'
38 | - role: autoware.dev_env.cuda
39 | when: (module == 'base' or module == 'perception-localization' or module == 'all') and prompt_install_nvidia=='y'
40 | - role: autoware.dev_env.tensorrt
41 | when: (module == 'base' or module == 'perception-localization' or module == 'all') and prompt_install_nvidia=='y'
42 | - role: autoware.dev_env.spconv
43 | when: (module == 'base' or module == 'perception-localization' or module == 'all') and prompt_install_nvidia=='y'
44 |
45 | # Development environment
46 | - role: autoware.dev_env.dev_tools
47 | when: module == 'dev-tools'
48 | - role: autoware.dev_env.ros2_dev_tools
49 | when: module == 'dev-tools'
50 |
51 | # ONNX files and other artifacts
52 | - role: autoware.dev_env.artifacts
53 | when: prompt_download_artifacts == 'y'
54 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/toolbar-handle-vertical.svg:
--------------------------------------------------------------------------------
1 |
32 |
--------------------------------------------------------------------------------
/ansible/roles/qt5ct_setup/tasks/main.yml:
--------------------------------------------------------------------------------
1 | - name: Install qt5ct
2 | ansible.builtin.apt:
3 | name: qt5ct
4 | state: present
5 | become: true
6 |
7 | - name: Install rsync
8 | ansible.builtin.package:
9 | name: rsync
10 | state: present
11 | become: true
12 |
13 | - name: Remove qt5ct from auto-start
14 | ansible.builtin.file:
15 | path: /etc/X11/Xsession.d/99qt5ct
16 | state: absent
17 | become: true
18 |
19 | - name: Set variable qt5ct_setup_config_dir
20 | ansible.builtin.set_fact:
21 | qt5ct_setup_config_dir: "{{ ansible_env.HOME }}/.config/qt5ct"
22 |
23 | - name: Ensure qt5ct_setup_config_dir exists
24 | ansible.builtin.file:
25 | path: "{{ qt5ct_setup_config_dir }}"
26 | state: directory
27 | mode: "0755"
28 |
29 | - name: Print the role_path
30 | ansible.builtin.debug:
31 | msg: "The role_path is: {{ role_path }}"
32 |
33 | - name: Set qt5ct_setup_icons_path variable
34 | ansible.builtin.set_fact:
35 | qt5ct_setup_icons_path: "{{ qt5ct_setup_config_dir }}/autoware-rviz-icons"
36 |
37 | - name: Remove autoware-rviz-icons folder if it exists
38 | ansible.builtin.file:
39 | path: "{{ qt5ct_setup_icons_path }}"
40 | state: absent
41 |
42 | # Replace rsync with synchronize which is an ansible wrapper for rsync
43 | - name: Copy autoware-rviz-icons to the qt5ct config directory
44 | ansible.posix.synchronize:
45 | src: "{{ role_path }}/files/autoware-rviz-icons/"
46 | dest: "{{ qt5ct_setup_icons_path }}/"
47 | mode: push
48 |
49 | - name: Fix the paths in the qss file
50 | ansible.builtin.replace:
51 | path: "{{ role_path }}/files/autoware.qss"
52 | regexp: /icons_path/
53 | replace: "{{ qt5ct_setup_icons_path }}/"
54 |
55 | - name: Ensure qt5ct_setup_config_dir/qss exists
56 | ansible.builtin.file:
57 | path: "{{ qt5ct_setup_config_dir }}/qss"
58 | state: directory
59 | mode: "0755"
60 |
61 | - name: Copy autoware.qss to the qt5ct qss directory
62 | ansible.builtin.copy:
63 | src: "{{ role_path }}/files/autoware.qss"
64 | dest: "{{ qt5ct_setup_config_dir }}/qss/autoware.qss"
65 | force: true
66 | backup: true
67 | mode: "0644"
68 |
69 | - name: Fix the paths in the config file
70 | ansible.builtin.replace:
71 | path: "{{ role_path }}/files/qt5ct.conf"
72 | regexp: autoware_stylesheet_path
73 | replace: "{{ qt5ct_setup_config_dir }}/qss/autoware.qss"
74 |
75 | - name: Copy qt5ct.conf to the config directory
76 | ansible.builtin.copy:
77 | src: "{{ role_path }}/files/qt5ct.conf"
78 | dest: "{{ ansible_env.HOME }}/.config/qt5ct/qt5ct.conf"
79 | force: true
80 | backup: true
81 | mode: "0644"
82 |
--------------------------------------------------------------------------------
/docker/tools/scenario-simulator/entrypoint.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # cspell:ignore
3 | # shellcheck disable=SC1090,SC1091
4 |
5 | run_scenario_simulator() {
6 | echo -e "\e[32mRunning scenario simulator...\e[0m"
7 |
8 | # Prompt if no scenario is provided
9 | if [ -z "$SCENARIO" ]; then
10 | echo -e "\e[33mNo scenario provided, using default sample scenario...\e[0m"
11 | fi
12 |
13 | # Set default values if not provided
14 | LAUNCH_AUTOWARE=${LAUNCH_AUTOWARE:-false}
15 | LAUNCH_RVIZ=${LAUNCH_RVIZ:-false}
16 | ARCHITECTURE_TYPE=${ARCHITECTURE_TYPE:-awf/universe/20240605}
17 | SENSOR_MODEL=${SENSOR_MODEL:-sample_sensor_kit}
18 | VEHICLE_MODEL=${VEHICLE_MODEL:-sample_vehicle}
19 | INITIALIZE_DURATION=${INITIALIZE_DURATION:-90}
20 | GLOBAL_FRAME_RATE=${GLOBAL_FRAME_RATE:-30}
21 | OUTPUT_DIRECTORY=${OUTPUT_DIRECTORY:-/autoware/scenario-sim/output}
22 | SCENARIO=${SCENARIO:-$(ros2 pkg prefix --share scenario_test_runner)/scenario/sample.yaml}
23 | GLOBAL_TIMEOUT=${GLOBAL_TIMEOUT:-120}
24 | RECORD=${RECORD:-false}
25 | USE_SIM_TIME=${USE_SIM_TIME:-false}
26 |
27 | # Print all variables
28 | echo "LAUNCH_AUTOWARE: $LAUNCH_AUTOWARE"
29 | echo "LAUNCH_RVIZ: $LAUNCH_RVIZ"
30 | echo "ARCHITECTURE_TYPE: $ARCHITECTURE_TYPE"
31 | echo "SENSOR_MODEL: $SENSOR_MODEL"
32 | echo "VEHICLE_MODEL: $VEHICLE_MODEL"
33 | echo "INITIALIZE_DURATION: $INITIALIZE_DURATION"
34 | echo "GLOBAL_FRAME_RATE: $GLOBAL_FRAME_RATE"
35 | echo "OUTPUT_DIRECTORY: $OUTPUT_DIRECTORY"
36 | echo "SCENARIO: $SCENARIO"
37 | echo "GLOBAL_TIMEOUT: $GLOBAL_TIMEOUT"
38 | echo "RECORD: $RECORD"
39 | echo "USE_SIM_TIME: $USE_SIM_TIME"
40 |
41 | # Launch scenario test runner
42 | ros2 launch scenario_test_runner scenario_test_runner.launch.py \
43 | launch_autoware:="$LAUNCH_AUTOWARE" \
44 | launch_rviz:="$LAUNCH_RVIZ" \
45 | architecture_type:="$ARCHITECTURE_TYPE" \
46 | sensor_model:="$SENSOR_MODEL" \
47 | vehicle_model:="$VEHICLE_MODEL" \
48 | initialize_duration:="$INITIALIZE_DURATION" \
49 | global_frame_rate:="$GLOBAL_FRAME_RATE" \
50 | output_directory:="$OUTPUT_DIRECTORY" \
51 | scenario:="$SCENARIO" \
52 | global_timeout:="$GLOBAL_TIMEOUT" \
53 | record:="$RECORD" \
54 | use_sim_time:="$USE_SIM_TIME"
55 | }
56 |
57 | # Source ROS and Autoware setup files
58 | source "/opt/ros/$ROS_DISTRO/setup.bash"
59 | source "/opt/autoware/setup.bash"
60 |
61 | # Execute passed command if provided, otherwise run scenario simulator
62 | if [ $# -gt 0 ]; then
63 | exec "$@"
64 | else
65 | run_scenario_simulator
66 | fi
67 |
--------------------------------------------------------------------------------
/.github/workflows/load-env.yaml:
--------------------------------------------------------------------------------
1 | name: load-env
2 |
3 | on:
4 | workflow_call:
5 | inputs:
6 | env_file:
7 | description: Specify the env file to load (e.g., amd64.env, amd64_jazzy.env)
8 | required: false
9 | type: string
10 | default: ""
11 | outputs:
12 | rosdistro:
13 | value: ${{ jobs.load-env.outputs.rosdistro }}
14 | base_image:
15 | value: ${{ jobs.load-env.outputs.base_image }}
16 | autoware_base_image:
17 | value: ${{ jobs.load-env.outputs.autoware_base_image }}
18 | autoware_base_cuda_image:
19 | value: ${{ jobs.load-env.outputs.autoware_base_cuda_image }}
20 |
21 | jobs:
22 | load-env:
23 | runs-on: ubuntu-22.04
24 | outputs:
25 | rosdistro: ${{ steps.set-env.outputs.rosdistro }}
26 | base_image: ${{ steps.set-env.outputs.base_image }}
27 | autoware_base_image: ${{ steps.set-env.outputs.autoware_base_image }}
28 | autoware_base_cuda_image: ${{ steps.set-env.outputs.autoware_base_cuda_image }}
29 | steps:
30 | - name: Check out repository
31 | uses: actions/checkout@v4
32 |
33 | - name: Load env
34 | run: |
35 | # Check if env_file is specified
36 | if [ -n "${{ inputs.env_file }}" ]; then
37 | # Use specified env file
38 | echo "Loading specified env file: ${{ inputs.env_file }}"
39 | cat ${{ inputs.env_file }} | sed -e "s/^\s*//" -e "/^#/d" >> $GITHUB_ENV
40 | else
41 | # Auto-detect based on ROS_DISTRO
42 | rosdistro=${ROS_DISTRO:-humble}
43 | echo "rosdistro=$rosdistro" >> $GITHUB_ENV
44 |
45 | # Determine which env file to use based on rosdistro
46 | if [ "$rosdistro" = "humble" ]; then
47 | echo "Loading amd64.env for Humble"
48 | cat amd64.env | sed -e "s/^\s*//" -e "/^#/d" >> $GITHUB_ENV
49 | else
50 | echo "Loading amd64_jazzy.env for Jazzy"
51 | cat amd64_jazzy.env | sed -e "s/^\s*//" -e "/^#/d" >> $GITHUB_ENV
52 | fi
53 | fi
54 |
55 | # Load ARM64 specific env if on ARM64 architecture
56 | if [ "$(uname -m)" = "aarch64" ]; then
57 | echo "Loading arm64.env for ARM64 architecture"
58 | cat arm64.env | sed -e "s/^\s*//" -e "/^#/d" >> $GITHUB_ENV
59 | fi
60 |
61 | - name: Set env
62 | id: set-env
63 | run: |
64 | echo "rosdistro=${{ env.rosdistro }}" >> $GITHUB_OUTPUT
65 | echo "base_image=${{ env.base_image }}" >> $GITHUB_OUTPUT
66 | echo "autoware_base_image=${{ env.autoware_base_image }}" >> $GITHUB_OUTPUT
67 | echo "autoware_base_cuda_image=${{ env.autoware_base_cuda_image }}" >> $GITHUB_OUTPUT
68 |
--------------------------------------------------------------------------------
/.github/actions/docker-build-and-push-base/action.yaml:
--------------------------------------------------------------------------------
1 | name: docker-build-and-push-base
2 | description: Composite action to build and push base images to registry.
3 |
4 | inputs:
5 | target-image:
6 | description: Target docker image name in the registry.
7 | required: true
8 | build-args:
9 | description: Additional build args.
10 | required: false
11 | max-parallelism:
12 | default: 2
13 | description: Maximum parallelism for buildkitd.
14 | required: false
15 | set-latest:
16 | description: Whether to set the latest flavor for images.
17 | required: false
18 | default: true
19 | suffix:
20 | description: Suffix for image tags.
21 | required: false
22 | default: ""
23 |
24 | runs:
25 | using: composite
26 | steps:
27 | - name: Setup Docker Buildx
28 | uses: docker/setup-buildx-action@v3
29 | with:
30 | buildkitd-config-inline: |
31 | [worker.oci]
32 | max-parallelism = ${{ inputs.max-parallelism }}
33 | install: true
34 |
35 | - name: Get current date
36 | id: date
37 | run: echo "date=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT
38 | shell: bash
39 |
40 | - name: Docker meta for autoware-base:latest
41 | id: meta-base
42 | uses: docker/metadata-action@v5
43 | with:
44 | images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
45 | tags: |
46 | type=raw,value=${{ steps.date.outputs.date }}${{ inputs.suffix }}
47 | type=raw,value=latest${{ inputs.suffix }}
48 | bake-target: docker-metadata-action-base
49 | flavor: |
50 | latest=${{ inputs.set-latest }}
51 |
52 | - name: Docker meta for autoware-base:cuda-latest
53 | id: meta-base-cuda
54 | uses: docker/metadata-action@v5
55 | with:
56 | images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
57 | tags: |
58 | type=raw,value=cuda-latest${{ inputs.suffix }}
59 | type=raw,value=cuda-${{ steps.date.outputs.date }}${{ inputs.suffix }}
60 | bake-target: docker-metadata-action-base-cuda
61 | flavor: |
62 | latest=false
63 |
64 | - name: Login to GitHub Container Registry
65 | uses: docker/login-action@v3
66 | with:
67 | registry: ghcr.io
68 | username: ${{ github.repository_owner }}
69 | password: ${{ github.token }}
70 |
71 | - name: Build and Push to GitHub Container Registry
72 | uses: docker/bake-action@v5
73 | with:
74 | push: true
75 | files: |
76 | docker/docker-bake-base.hcl
77 | ${{ steps.meta-base.outputs.bake-file }}
78 | ${{ steps.meta-base-cuda.outputs.bake-file }}
79 | provenance: false
80 | set: |
81 | ${{ inputs.build-args }}
82 |
--------------------------------------------------------------------------------
/ansible/roles/artifacts/README.md:
--------------------------------------------------------------------------------
1 | # Autoware artifacts
2 |
3 | The Autoware perception stack uses models for inference. These models are automatically downloaded as part of the `setup-dev-env.sh` script.
4 |
5 | The models are hosted by Web.Auto.
6 |
7 | Default `data_dir` location is `~/autoware_data`.
8 |
9 | ## Download instructions
10 |
11 | ### Check out to the correct commit hash if necessary
12 |
13 | First check this chart if you need to change your current commit hash.
14 |
15 | ```mermaid
16 | graph TD
17 | cond1{{What is your current commit hash?}}
18 | --> option_release_branch(A release tag)
19 | cond1 --> opt2(main branch)
20 | opt2 --> cond2{{Did you pull `autoware-nightly.repos`?}}
21 | --> option_nightly(Yes)
22 | cond2 --> option_autoware_main(No, I only pulled the `autoware.repos`.)
23 |
24 | option_release_branch --> final_normal(((No need to change the commit hash, keep following the rest of the instructions. ✅)))
25 | option_nightly --> final_normal
26 | option_autoware_main --> final_change(((Switch to the latest release tag. 🔄)))
27 |
28 | %% Define styles
29 | classDef conditional fill:#FFF3CD,stroke:#FFB100,stroke-width:2px,color:#000,font-weight:bold;
30 | classDef final_normal fill:#D4EDDA,stroke:#28A745,stroke-width:2px,color:#000,font-weight:bold;
31 | classDef final_change fill:#F8D7DA,stroke:#DC3545,stroke-width:2px,color:#000,font-weight:bold;
32 | classDef neutral fill:#F0F0F0,stroke:#B0B0B0,stroke-width:2px,color:#000,font-weight:normal;
33 |
34 | %% Apply classes
35 | class cond1,cond2 conditional;
36 | class final_normal final_normal;
37 | class final_change final_change;
38 | class option_release_branch,opt2,option_nightly,option_autoware_main neutral;
39 | ```
40 |
41 | If you need to switch to the latest tag, run the following commands:
42 |
43 | ```bash
44 | cd ~/autoware
45 | git fetch --tags && git checkout $(git describe --tags $(git rev-list --tags --max-count=1))
46 | ```
47 |
48 | Once you've downloaded the artifacts, you can switch back to your desired branch or commit hash.
49 |
50 | ### Requirements
51 |
52 | Install ansible following the instructions in the [ansible installation guide](../../README.md#ansible-installation).
53 |
54 | ### Download artifacts
55 |
56 | #### Install ansible collections
57 |
58 | ```bash
59 | cd ~/autoware # The root directory of the cloned repository
60 | ansible-galaxy collection install -f -r "ansible-galaxy-requirements.yaml"
61 | ```
62 |
63 | This step should be repeated when a new playbook is added.
64 |
65 | #### Run the playbook
66 |
67 | ```bash
68 | ansible-playbook autoware.dev_env.download_artifacts -e "data_dir=$HOME/autoware_data" --ask-become-pass
69 | ```
70 |
71 | This will download and extract the artifacts to the specified directory and validate the checksums.
72 |
--------------------------------------------------------------------------------
/ansible/roles/docker_engine/tasks/main.yaml:
--------------------------------------------------------------------------------
1 | - name: Uninstall old versions
2 | become: true
3 | ansible.builtin.apt:
4 | name:
5 | - docker
6 | - docker-engine
7 | - docker.io
8 | - containerd
9 | - runc
10 | state: absent
11 | update_cache: true
12 |
13 | - name: Install dependencies for setting up apt sources
14 | become: true
15 | ansible.builtin.apt:
16 | name:
17 | - ca-certificates
18 | - curl
19 | - gnupg
20 | - lsb-release
21 | update_cache: true
22 |
23 | # sudo mkdir -p /etc/apt/keyrings
24 | - name: Create the directory for keyrings
25 | become: true
26 | ansible.builtin.file:
27 | state: directory
28 | path: /etc/apt/keyrings
29 | mode: 0755
30 |
31 | # curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
32 | - name: Authorize Docker GPG key
33 | become: true
34 | ansible.builtin.apt_key:
35 | url: https://download.docker.com/linux/ubuntu/gpg
36 | keyring: /etc/apt/keyrings/docker.gpg
37 |
38 | - name: Save result of 'dpkg --print-architecture'
39 | ansible.builtin.command: dpkg --print-architecture
40 | register: docker_engine__deb_architecture
41 | changed_when: false
42 |
43 | - name: Save result of 'lsb_release -cs'
44 | ansible.builtin.command: lsb_release -cs
45 | register: docker_engine__lsb_release_cs
46 | changed_when: false
47 |
48 | - name: Save result of 'lsb_release -is'
49 | ansible.builtin.command: lsb_release -is
50 | register: docker_engine__lsb_release_is
51 | changed_when: false
52 |
53 | # echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
54 | - name: Add Docker apt repository to source list
55 | become: true
56 | ansible.builtin.apt_repository:
57 | repo: deb [arch={{ docker_engine__deb_architecture.stdout }} signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/{{ docker_engine__lsb_release_is.stdout | lower }} {{ docker_engine__lsb_release_cs.stdout }} stable
58 | filename: docker
59 | state: present
60 | update_cache: true
61 |
62 | - name: Install Docker Engine
63 | become: true
64 | ansible.builtin.apt:
65 | name:
66 | - docker-ce
67 | - docker-ce-cli
68 | - containerd.io
69 | - docker-compose-plugin
70 | update_cache: true
71 |
72 | # sudo groupadd docker
73 | - name: Add docker group
74 | become: true
75 | ansible.builtin.group:
76 | name: docker
77 | state: present
78 |
79 | # sudo usermod -aG docker $USER
80 | - name: Add user to docker group
81 | become: true
82 | ansible.builtin.user:
83 | name: "{{ ansible_user_id }}"
84 | groups: docker
85 | append: true
86 |
--------------------------------------------------------------------------------