Changelog & Release Notes
Releases are listed newest-first. Unreleased work lives under Unreleased until it is tagged.
Note
Version numbering restarted at v0.1.0 when the project was renamed and restructured as Autoware Safety Island. Legacy releases (v1.0, v2.0) from the previous project structure are preserved at the bottom of this page for historical reference.
Unreleased
No unreleased changes.
v0.3.0
Targets the Autoware 2.0.0 release, as Open AD Kit 2.0 does.
Changed
The Safety Island reads the Autoware trajectory from
/planning/trajectory, the trajectory Autoware 2.0’s own follower reads, instead of/control/trajectory, which only Autoware’smainpublishes (after its trajectory gate).bridge-config.yamlbridges it 1:1. An integration on Autowaremainneeds a remap in its own bridge; seedocumentation/design/topics.rst.The demo runs Autoware
universe-humble-2.0.0.
Removed
demo/bridge/bridge-overlay.yamland its merge in the bridge entrypoint: Autoware 2.0.0 publishes the topic the contract bridges.
v0.2.0
Prepares the FreeRTOS POSIX release binary and the bridge contract for pinning by Open AD Kit (Open AD Kit integration (release pins)).
Added
Release asset
bridge-config.yaml(the domain-bridge topic contract,demo/bridge/bridge-config.yaml), listed insha256sums.txt. CI and the release workflow check it againstdocumentation/design/topics.rst.Release asset
cyclonedds-domain2.xml:MaxMessageSize1400 B on domain 2, which every domain-2 writer must load throughCYCLONEDDS_URI. Without it, the Safety Island truncates an unfragmentedTrajectoryat 2048 bytes, drops it, and latchesSI_STOPon the trajectory timeout. The demo’scyclonedds*.xmltake the value from this file, and CI checks the file against the Safety Island’s receive limit.FreeRTOS POSIX:
SI_DDS_INTERFACEoverrides the compile-timeCONFIG_DDS_NETWORK_INTERFACEat runtime (name, IPv4 address orauto), so one binary runs on loopback and on a LAN. The startup log names the interface and its source.Release workflow runs the published
actuation_freertosin plainubuntu:22.04andubuntu:24.04containers before publishing.Release workflow publishes a SemVer pre-release tag (
v0.2.0-rc.1) as a GitHub pre-release, so it does not become the latest release. Tags still have to be onmain.Release workflow builds with a pinned devcontainer and no caches, runs the Zephyr FVP validation, requires a changelog section for the tag, and attests the build provenance of its assets.
Open AD Kit integration guide: release pins,
SI_DDS_INTERFACEandtrajectory_follower_mode: none.Closed-loop CAN/CARLA path: Safety Island
CAN_ONLYand host CAN-CARLA bridge. Open AD Kit does not ship its side of this path: Open AD Kit PR #146 was closed without merging.Zephyr FVP TAP UDP CAN tunnel: one 48-byte datagram per command onto the same
vcan0decoder as FreeRTOS POSIX. Native FVP CAN stays loopback.
Changed
The Safety Island reads the Autoware trajectory from
/control/trajectory(the trajectory gate output that Autoware’s own follower reads) instead of/planning/scenario_planning/trajectory.bridge-config.yamlbridges it 1:1, and the contract check rejects anyremap. Autoware without the trajectory gate needs a remap in its own bridge; seedocumentation/design/topics.rst.The demo runs Autoware
universe-humble-20261029and disables Autoware’s follower with thesafety_islandcontrol module preset (trajectory_follower_mode: none). The stubdemo/launch/control.launch.xmlis removed. Until the demo image publishes/control/trajectory, the demo bridge mergesdemo/bridge/bridge-overlay.yamlinto the contract to remap/planning/trajectoryto/control/trajectory.Autoware with
trajectory_follower_mode: nonemust remove/autoware/control/performance_monitoring/control_statefrom its diagnostic graph, orchange_to_autonomousfails.demo/launch/autoware-safety-island.yamlis the e2e-style graph fordiagnostic_graph_aggregator_graph_path. Untilplanning_simulator.launch.xmlaccepts that argument (autoware_launch PR pending), the demo mounts a CI-checked copy of the image’sautoware-main.yamlwith the same edit.build.shand the documentation now present the supported runtime target matrix:zephyr-fvp,zephyr-s32z,freertos-posix, andfreertos-s32z2.Added a first-class
freertos-posixuser guide and aligned architecture, troubleshooting, and timing notes with the runtime target matrix.freertos-s32z2can be selected throughbuild.sh --platform; it remains a hardware-specific target that requires NXP-licensed SDK inputs.
Fixed
The v0.1.0
actuation_freertosexited on start with “DDS network interface not set” because it was built with an empty interface. An empty interface now means CycloneDDS auto-selects, and the POSIX build defaults tolo.Wait for
/system/operation_mode/statebefore the first control tick.Ingest the MPC trajectory once per control tick instead of also in
isReady().Drop per-tick PID INFO logs that blocked the S32Z2 UART on the control thread.
Align AVH and user-guide ELF paths with
build.shplatform defaults (build/<platform>/zephyr/zephyr.elf).Key CycloneDDS CI/release caches on the submodule gitlink SHA.
Correct documented Zephyr/CycloneDDS pins, public submodule init, and S32Z DDS/network runbooks.
v0.1.0
First release of Autoware Safety Island. Major restructuring from the
previous project: Autoware components are now vendored directly into the
application, the separate Actuation Service / Message Converter /
Actuation Player split has been retired, and a platform abstraction
layer enables a FreeRTOS POSIX runtime alongside the Zephyr target.
New features
Direct integration of Autoware modules (MPC lateral, PID longitudinal, trajectory follower node) compiled as part of the application.
fvp_baser_aemv8r_smptarget for Arm Fixed Virtual Platform simulation.s32z270dc2_rtu0_r52@Dtarget for NXP S32Z270 hardware.AVH deployment flow via
avh.py, using theaem8r64-lan9c111instance flavor.Simplified top-level
build.shreplacing the previous multi-step build.Platform abstraction layer (
actuation_module/include/platform/) with Zephyr and FreeRTOS backends, keeping controller logic fully shared.FreeRTOS POSIX runtime build (
actuation_module/freertos/) using FreeRTOS-Kernel V11.1.0, buildable on any Linux host.CI pipeline verifying both Zephyr (FVP) and FreeRTOS POSIX builds on every pull request and daily.
Release workflow publishing
zephyr-fvp.elf,zephyr-s32z.elf,actuation_freertos, andsha256sums.txton everyv*.*.*tag.
Changed
Removed dependency on a separate Autoware workspace and pre-compiled binaries.
Replaced the ROS 2-based Message Converter and Actuation Player with direct DDS communication and integrated control logic.
network_configrefactored from header-only to a proper declaration (include/common/dds/network_config.hpp) and Zephyr-specific source (src/common/dds/network_config.cpp).Devcontainer image published at
ghcr.io/autowarefoundation/autoware-safety-island:devcontainer.
Limitations
A devicetree overlay at
actuation_module/boards/s32z270dc2_rtu0_r52@D.overlayis used as a workaround to set a unique MAC address for the NXP S32Z270DC2_R52 board, which otherwise reuses the same MAC on every build (tracked in Zephyr Project #61478).FreeRTOS support is currently POSIX runtime only; real hardware port (Phases 5–6) is future work.
Third-party repositories
name: cyclonedds
url: https://github.com/eclipse-cyclonedds/cyclonedds.git
branch: master
commit: f7688ce709e53f408e30706ebc27bd052c03d693
name: zephyr
url: https://github.com/zephyrproject-rtos/zephyr.git
branch: main
commit: 339cd5a45fd2ebba064ef462b71c657336ca0dfe
name: freertos-kernel
url: https://github.com/FreeRTOS/FreeRTOS-Kernel.git
tag: V11.1.0
commit: dbf70559b27d39c1fdb68dfb9a32140b6a6777a0
Legacy releases (previous project structure)
The releases below predate the rename and restructuring to Autoware Safety Island. They are preserved here for historical reference only and are not upgrade-compatible with v0.1.0.
v2.0
New features
Lighter deployment mode that does not require the full Autoware pipeline on the main compute:
Actuation Player component that replays recorded messages as DDS traffic.
Packet Analyzer that validates actuation commands against a reference recording.
Changed
Simplified the user guide; new Dockerfile replaces the previous multi-step reproduce instructions. Board flashing moved from the IDE to the command line.
Autoware updated to the 2023.10 release, moving the underlying ROS 2 distribution from Galactic to Humble.
Zephyr updated to 3.5.0 (with an additional patch for S32Z support beyond the release tag).
CycloneDDS updated for compatibility with the new Zephyr version.
Autoware pipeline (main compute) and Actuation Service (safety island) now use distinct ROS domain IDs.
Limitations
A devicetree overlay at
actuation_module/boards/s32z270dc2_rtu0_r52@D.overlayis used as a workaround to set a unique MAC address for the NXP S32Z270DC2_R52 board, which otherwise reuses the same MAC on every build (tracked in Zephyr Project #61478).The AVA Developer Platform and the S32Z need to share a sub-network.
RViz2 has been seen to crash on machines with NVIDIA Optimus graphics (
libGL error: failed to create drawable). Run the visualizer on a different machine when this occurs.
Resolved issues
The S32Z no longer needs to be re-flashed between runs.
Official Zephyr support for the S32 Debug Probe has landed, so the IDE workaround and manual register pokes are no longer required.
Third-party repositories
name: autoware
url: https://github.com/autowarefoundation/autoware.git
branch: release/2023.10
commit: 78e5f575b258598e6460e6f04cc00211e7e7e604
name: cyclonedds
url: https://github.com/eclipse-cyclonedds/cyclonedds.git
branch: master
commit: f7688ce709e53f408e30706ebc27bd052c03d693
name: zephyr
url: https://github.com/zephyrproject-rtos/zephyr.git
branch: main
commit: 339cd5a45fd2ebba064ef462b71c657336ca0dfe
v1.0
Initial release: Pure Pursuit controller as the Zephyr application, with autoware.universe driving the main pipeline.
Limitations
No official support for the NXP S32 Debug Probe (debugging the S32Z required workarounds).
The AVA Developer Platform and the S32Z need to share a sub-network.
Known issues
The S32Z must be re-flashed before each run of the demo (tracked in CycloneDDS #1682).
Third-party repositories
name: autoware
url: https://github.com/autowarefoundation/autoware.git
branch: main
commit: 3a9bbd0142b453563469b8a3a6d232e98a51280a
name: cyclonedds
url: https://github.com/eclipse-cyclonedds/cyclonedds.git
branch: master
commit: 87b31771ad4dda92afccc6ad1cb84cb7f752b66b
name: zephyr
url: https://github.com/zephyrproject-rtos/zephyr.git
branch: main
commit: 07c6af3b8c35c1e49186578ca61a25c76e2fb308