Open-source project
autowarefoundation/autoware avatar
autowarefoundation/autoware

Autoware: the open source ROS 2 autonomous driving stack

Autoware - the world's leading open-source software project for autonomous driving

12,115 stars3,723 forksDockerfileApache-2.0

At a glance

What is it?
Autoware is an Apache-2.0 autonomous driving framework built on ROS 2. Its installation and demo instructions live on the documentation site, not in the repository README.
Who is it for?
Adopt Autoware if you have a vehicle platform, a ROS 2 engineering team and a reason to build on a shared open stack rather than a closed one. Do not adopt it if you want a weekend project or a single-board demo; the setup path assumes a workstation or vehicle computer with the Ansible and Docker tooling the documentation describes.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Dockerfile, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Autoware actually is, and who it is for

Autoware describes itself as an open source autonomous driving framework, and the README calls it production-ready software designed to accelerate commercial deployment across platforms and use cases. That framing matters. This is not a simulator, a research notebook or a driver assistance add-on. It is the software layer that sits between sensors and vehicle actuators, and it assumes you have a vehicle to put it on.

The audience is therefore narrow and specific: engineering teams working on autonomous vehicles who want a shared codebase instead of a private one. The topics listed on the repository (autonomous-driving, autonomous-vehicles, autoware, ros, ros2) confirm the ROS 2 dependency is structural, not incidental. If your team does not already work in ROS 2, adopting Autoware means adopting that ecosystem at the same time.

One detail in the repository layout is worth noticing early. The top-level entries include ansible/, docker/, repositories/ and src/, plus a long list of lint and formatting configuration files such as .clang-format, .clang-tidy, .hadolint.yaml, .markdownlint.yaml and .pre-commit-config.yaml. This is a meta-repository. It orchestrates how the stack is fetched, built and checked, rather than containing the full perception and planning code in one tree. The README points contributors at autoware_universe for contributor and activity metrics, which is consistent with that split.

How the stack is put together: Ansible, Docker and ROS 2

The mechanism visible from the repository is layered. The ansible/ directory and ansible-galaxy-requirements.yaml indicate that environment setup is driven by Ansible playbooks, so machine preparation is described as code rather than as a list of manual steps. The docker/ directory and .dockerignore indicate container images as the second layer. The repositories/ directory is where the set of source repositories that make up the build is defined. And src/ is where those sources land for the ROS 2 build.

That gives a data flow that looks like this: you prepare a host with Ansible, you obtain or build container images, the repositories file determines which ROS 2 packages are pulled in, and the result is a colcon-style workspace under src/ that you build and launch. The README does not walk through this sequence in detail; it defers to the Autoware documentation site for installation and for the demo. Anyone evaluating the project should treat the documentation site, not the README, as the authoritative source for the exact steps.

The presence of .webauto-ci.yaml and the .webauto-ci/ directory is another signal about how the project is validated. It suggests a CI configuration tied to a specific validation toolchain, separate from the health-check workflow referenced in the README badges. The README does not explain what that CI covers, so treat it as an internal quality gate rather than a guarantee about your configuration.

Installing Autoware and running the first demo

The README does not contain installation commands. It links to the Autoware documentation site for installation and for the quick start demo, and it says the demo lets you drive a simulated vehicle in a few minutes. Because the repository itself gives no command sequence, the honest answer is that installation instructions live at the documentation URL, and any command you run should come from there rather than from this article.

What the repository does tell you is the shape of the environment you are preparing. The Ansible requirements file is named ansible-galaxy-requirements.yaml, and the README's contribution guidelines point contributors at the documentation site for setup, so the playbook invocation is documented there rather than here. The same applies to Docker: the docker/ directory holds the container definitions and the top-level .dockerignore controls what is excluded from the build context, but the README publishes no build line.

The practical first use is the quick start demo the README links to. It states the demo drives a simulated vehicle in just a few minutes, which is the right way to confirm the stack launches before you connect any hardware. If the demo does not come up, the problem is in your environment, not in your vehicle. For anything beyond the demo, the documentation site is the only source in this repository that is pointed to as authoritative.

Where Autoware is the wrong tool

The clearest limitation is the one the README implies rather than states: Autoware is a deployment stack, and the demo is a simulation. Nothing in the repository describes a path from the simulated demo to a validated vehicle without substantial engineering work in between. Sensor calibration, vehicle interface, safety case and road testing are not solved by installing the framework.

The second limitation is the dependency chain. ROS 2, Ansible and Docker are all prerequisites, and the repository's lint configuration covers C++, Ansible, shell, Markdown and YAML. That breadth reflects a large, polyglot codebase with strict style enforcement. Contributing to it, or even building it, means conforming to those checks. Teams without ROS 2 experience will spend their first weeks on tooling rather than on autonomous driving.

Third, the meta-repository structure means the code you care about may not be here. If you are looking for a specific perception or planning module, the README points to autoware_universe for contributor and activity information, and the repositories/ directory defines what gets pulled in. Searching this repository alone will not find everything. That is a design choice, and it is a reasonable one for a project assembled from many packages, but it makes the project harder to evaluate by browsing a single GitHub page.

Autoware compared with Apollo and openpilot

The comparison people search for most often is Autoware against Apollo and openpilot. The repository supports only a partial answer, and it is better to be precise about that than to invent differences.

What can be said from the repository is that Autoware is built on ROS 2 and is licensed Apache-2.0, with the topics explicitly listing ros and ros2. That is a real architectural commitment: middleware, message definitions, node composition and tooling all follow ROS 2 conventions. A team already running ROS 2 for robotics can reuse its knowledge, its debugging tools and its launch infrastructure. A team that is not on ROS 2 inherits that whole stack as a dependency.

The README does not describe Apollo or openpilot, so any claim about how those projects are architected would be speculation. The useful question is not which is better but which ecosystem you are already inside. If your engineers live in ROS 2, Autoware's structure is familiar. If they do not, the cost of adoption is measured in middleware training before it is measured in autonomous driving capability. That is the actual decision, and the repository gives you enough to make it.

Releases, maintenance and what upgrades cost

The release history shows a steady cadence: 1.9.0 on 2026-07-16, 1.8.0 on 2026-05-04 and 1.7.1 on 2026-02-18. The repository is not archived, and the last push was on 2026-09-18. Those are the only maintenance facts available, and they support a simple reading: the project is moving, and versioned releases exist to pin against.

That cadence is also the upgrade cost. A framework at this scale, assembled from many repositories through repositories/, will have inter-version changes across package boundaries. Pinning to a release tag is the only sane approach for a vehicle program, and the README's emphasis on installation and demos rather than on upgrade guides means you should expect to read release notes for each version you move to. The README does not document a rollback procedure, so plan your own.

On licensing, Autoware is Apache-2.0. That permits commercial use and modification, and it includes an explicit patent grant, which matters for a product shipped in vehicles. It also carries notice and attribution obligations. The repository includes a NOTICE file and a DISCLAIMER.md, and both are part of what you inherit. This is not legal advice; have counsel review the NOTICE and DISCLAIMER against your distribution model before you ship.

Editorial conclusion

Adopt Autoware if you have a vehicle platform, a ROS 2 engineering team and a reason to build on a shared open stack rather than a closed one. Do not adopt it if you want a weekend project or a single-board demo; the setup path assumes a workstation or vehicle computer with the Ansible and Docker tooling the documentation describes. Before committing, verify the exact installation route in the Autoware documentation, confirm which release tag you are pinning, and check whether your sensor set is covered by the supported hardware list, because the repository itself ships no hardware configuration for your vehicle.

Frequently asked questions

What is Autoware?

Autoware is an open source autonomous driving framework built on ROS 2, licensed Apache-2.0. The README describes it as a production-ready software stack intended to accelerate commercial deployment of autonomous vehicles.

How do I install Autoware?

The README does not include installation commands. It links to the Autoware documentation site for installation, where the environment setup and build steps are described, and to a quick start demo that runs a simulated vehicle.

Is Autoware free?

The repository is licensed under Apache-2.0, which permits commercial use and modification. It also includes a NOTICE file and a DISCLAIMER.md, so attribution and notice obligations apply when you redistribute it.

What is Autoware Universe?

The README does not define Autoware Universe directly. It references autoware_universe for contributor counts and commit activity, and the top-level repositories/ directory in this repository defines which source repositories are pulled into the build.

How do I use Autoware?

Start with the quick start demo linked from the README, which the README says drives a simulated vehicle in a few minutes. After that, the documentation site is the reference for configuration and development.

Official sources

  1. autowarefoundation/autoware on GitHub
  2. License: Apache-2.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/autowarefoundation-autoware.svg)](https://hysenlabs.com/projects/autowarefoundation-autoware)