Overview
The Autoware Safety Island is a Zephyr RTOS application that runs Autoware’s trajectory follower on an Arm safety-class processor. It consumes planning, localization, and vehicle-state topics from the Autoware main compute, runs MPC lateral and PID longitudinal control, and publishes control commands back out over DDS. No changes to the upstream Autoware codebase are required.
The main compute and the safety island run on separate DDS domains. A domain bridge on the main compute forwards the relevant topics between them, which isolates the real-time controller from the rest of the Autoware graph.
Workflow
See DDS topics for the full list of DDS topics with message types and domain IDs, and Architecture for the runtime design.
Main Components
Component |
Version |
|---|---|
Zephyr RTOS |
|
CycloneDDS |
|
Autoware |
|
Autoware.Universe |
|
Autoware.msgs |
Autoware Components
The following Autoware packages are vendored into actuation_module/src/autoware/
and compiled as part of the Zephyr application.
Component |
Role |
|---|---|
autoware_msgs |
Message definitions (IDL) |
autoware_osqp_interface |
OSQP solver wrapper for MPC |
autoware_universe_utils |
General utilities |
autoware_motion_utils |
Motion primitives |
autoware_interpolation |
Trajectory interpolation |
autoware_vehicle_info_utils |
Vehicle model parameters |
autoware_trajectory_follower_base |
Controller base classes |
autoware_mpc_lateral_controller |
MPC lateral controller |
autoware_pid_longitudinal_controller |
PID longitudinal controller |
autoware_trajectory_follower_node |
Controller node entry point |
ROS RCL to Zephyr mapping
Autoware code is written against ROS 2’s rcl layer. In this project the
equivalents are built directly on Zephyr primitives, so no ROS 2 runtime is
needed on the safety island.
ROS 2 (rcl) |
Zephyr equivalent |
|---|---|
Logging |
Custom logger ( |
Node |
POSIX threads on Zephyr stacks ( |
Timers |
Zephyr software timers |
Publisher / Subscriber |
CycloneDDS ( |