Skip to content

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:

The repositories of autoware.repos in three groups: Autoware Core, Autoware Universe, and the sensor components. Core feeds Universe, and all three feed autoware_launch. The tools and the scenario simulator are optional.Autoware Coreautoware_msgsautoware_adapi_msgsautoware_internal_msgsautoware_cmakeautoware_utilsautoware_lanelet2_extensionautoware_rviz_pluginsautoware_simple_planning_simulatorautoware_system_designeragnocastautoware_coreQuality-assured packagesAutoware Universeautoware_universeCommunity packagestier4_autoware_msgscuda_blackboardmanaged_transform_bufferbevdet_vendorand 8 more external packagesSensor componentsnebulasensor_component_descriptionsync_tooling_msgstransport_driversros2_socketcanOptionalautoware_toolstools.reposscenario_simulator_v2simulator.reposautoware_launchLaunch files and parameters
An arrow points from a group of repositories to the repositories that build on it.

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 CODEOWNERS mechanism, the community can also maintain the repository.

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 rosidl generates.