Repository structure#
Overview#
repositories/*.repos files
Visit for more information: Working with .repos files
Autoware has the following repository structure defined by the autoware.repos file:
Note
The diagram shows the repositories of Autoware 2.0.0. It leaves out some external packages of Universe, for example vendor packages of third-party libraries.
Important repositories#
Here is an overview of the most important repositories:
autoware_core#
- Contains high-quality, well-tested packages essential for self-driving.
- It has sensing, perception, localization, planning, control packages.
- Maintained by the Autoware Foundation.
autoware_universe#
- Contains experimental, cutting-edge packages useful for self-driving.
- It has sensing, perception, localization, planning, control packages.
- Maintained by the Autoware Foundation and the community.
- Hosted under autowarefoundation organization. But through the
CODEOWNERSmechanism, the community can also maintain the repository.
- Hosted under autowarefoundation organization. But through the
autoware_msgs#
- Contains the message definitions for inter-component communication. (for example, perception to planning)
- Can also be used by simulation software to communicate with Autoware.
autoware_internal_msgs#
- Contains the message definitions for intra-component communication. (for example, within perception)
autoware_adapi_msgs#
- Contains the message definitions for external API communication between Autoware and outside systems
(for example, vehicle HMI, remote operators, fleet management systems, simulators, or user applications)
autoware_launch#
- Contains launch files for Autoware.
- Able to launch multiple configurations of Autoware such as planning simulation, end-to-end simulation, rosbag-replay simulation, etc.
autoware_tools#
- Contains many useful tools for Autoware development.
- These are not expected to run during self-driving. Although some tools are helpful for diagnostics and debugging.
- Pulled by the
repositories/tools.repos.
autoware_utils#
- Contains many sub-packages for common utilities such as
autoware_utils_math,autoware_utils_geometry,autoware_utils_system, etc.
autoware_simple_planning_simulator#
- Contains the packages for planning simulation: the simple planning simulator, the dummy perception publisher, and a learning-based vehicle model.
- These packages came from Autoware Universe. They give a standalone simulation environment for testing and development.
autoware_system_designer#
- Contains a toolset to describe an Autoware system in YAML files: its nodes, modules, and connections.
- It generates system artifacts from these files, for example ROS 2 launch files, diagrams, and parameter templates.
agnocast#
- Contains Agnocast, a true zero-copy inter-process communication (IPC) middleware that is compatible with
rclcpp. - It supports all ROS message types, including the message structures that
rosidlgenerates.