See it in practice

One release, checked end to end.

A real update of Nav2, the open-source navigation stack many mobile robots are built on, run through the pipeline for a fictional warehouse robot, AMR-1. The code changes are real. The robot, its safety file and its limits are a specimen.

For the CTO: the release gate
Repository
amr-1/navigation
Pull request
#482
Branch
bump/nav2-1.3.11
Date
23 Jan 2026

Pull request check

#482 Bump Nav2 to 1.3.11

Specimen. Illustrative CI check.

Checks: 4 passed · 1 waiting for approval

  • Passedbuild / colcon (Jazzy)Passed in 6m 12s
  • Passedtest / unit + integration1,284 passed
  • Passedsecurity / SBOM + vulnerability scan44 components updated · 0 new vulnerabilities
  • Passedcompliance / foreseen-modification limitsWithin limits (FML-02, FML-05)
  • Waitingcompliance / safety reviewSafety lead approval required
Review
compliance / safety review

2 changes affect credited risk-reduction measures. Merge blocked until approved.

Release gate · AMR-1 · 1.3.10 → 1.3.11

  REVIEW  3fc1600c  collision monitor height now in base frame
          → M-03 slowdown zone · H-04 low obstacles
          → re-run test T-M03-01

  REVIEW  3320ebf7  obstacle marking range now 2D cell distance
          → M-05 obstacle avoidance · H-04, H-06
          → re-run test T-M05-02

  OK      SF-01 protective stop (safety scanner): unchanged
  OK      within foreseen-modification limits: no notified body needed

  Approver: safety lead · Evidence stored signed, retained 10 years
For the safety lead: every change traced
Document
AMR1-CHG-3fc1600c
Release
1.3.11
Date
23 Jan 2026
Classification
Internal

Change detail

Commit 3fc1600c: fix Z base frame transformation

Specimen. Real Nav2 commit.

nav2_collision_monitor/src/pointcloud.cpp · +5 lines · in Nav2 1.3.11

     tf2::Vector3 p_v3_b = tf_transform * p_v3_s;
 
+    // Still need to transfer height from "z" field if not using global height
+    if (!use_global_height_) {
+      data_height = p_v3_b.z();
+    }
+
     // Refill data array
     if (data_height >= min_height_ && data_height <= max_height_) {

What changes in behaviour. Before, point heights were taken from the sensor frame. On AMR-1 the 3D camera is mounted 0.42 m high and tilted, so low obstacles could fall outside the min_height / max_height window and be ignored. After this fix, heights are measured from the robot base, and more low obstacles are detected.

Traceability

Codenav2_collision_monitor, declared in safety.yaml as implementation of M-03
MeasureM-03 Slowdown to 0.3 m/s when an obstacle is within 1.0 m (non-safety-rated, credited for occurrence reduction)
HazardH-04 Collision with a person or object below 0.3 m height (e.g. pallet foot, crouching worker)
Safety-rated functionSF-01 Protective stop via safety laser scanner: Not affected no firmware or parameter change
RequirementMachinery Regulation (EU) 2023/1230, Annex III, 1.2.1 (control systems) · clause mapping to be verified by a safety engineer
EvidenceUpstream: unit tests in collision_monitor_node_test.cpp pass · Site: test T-M03-01 (low-obstacle slowdown) must be re-run

Foreseen-modification check

LimitDocumentedThis releaseResult
FML-02 Navigation software updatesAllowed if SF-01 unchanged and credited measures re-validatedSF-01 unchanged · re-validation pendingWithin limits
FML-05 Max speed in shared zones≤ 1.2 m/s1.0 m/s, unchangedWithin limits

Assessment. Likely a safety improvement, but it changes detection behaviour, so the risk assessment entry for H-04 needs review.

Decision☐ Approve after T-M03-01 passes   ☐ Reject
Assigned toSafety lead

SHA-256 4b07…c912 · signed · retained 10 years · Page 1 of 1

For the CEO: one verdict per release
Document
AMR1-RIR-1.3.11
Revision
1
Date
23 Jan 2026
Classification
Internal

Release impact report

AMR-1 navigation 1.3.11

Specimen. Built on the real open-source Nav2 stack (ROS 2 Jazzy); the code changes are real.

ReleaseNav2 1.3.11 (23 Jan 2026), compared with 1.3.10 (23 Oct 2025)
Scope13 commits · 129 files · 44 packages updated
Safety functions affected0 safety-rated · 2 credited risk-reduction measures
Foreseen-modification limitsWithin limits (FML-02)
SBOM44 components updated · 0 added · 0 removed
Known vulnerabilities0 new (illustrative)
Review
Verdict: Review

Two changes alter how obstacles are detected. Both affect measures credited in the risk assessment, not the safety-rated protective stop. Safety lead approval and a re-run of tests T-M03-01 and T-M05-02 are required before release. No notified body involvement needed: the change stays within the documented limits of foreseen modifications.

Changes by impact

ImpactCommitChangeLinked to
Review3fc1600cCollision monitor: height filter now uses robot base frame instead of sensor frameM-03 slowdown zone · H-04
Review3320ebf7Obstacle layer: max marking range now measured in 2D map cells instead of 3D distanceM-05 obstacle avoidance · H-04, H-06
Note6794f00fCollision monitor: optional "height" point field (off by default)M-03
Note77d6579cVelocity smoother: optional timestamp smoothing (off by default)M-02
None9 othersPlanner cost fix, goal checker, visualization, RViz/Groot tooling, typo—

Next steps

  1. Safety lead reviews 2 changes: approve or reject.
  2. Re-run T-M03-01 and T-M05-02 on the test track and attach the results.
  3. Technical file and Declaration of Conformity draft regenerate automatically after approval.
Prepared byCompliance agent
Approved bySafety lead · pending

SHA-256 9c41…e07a · signed · retained 10 years · Page 1 of 1

Based on real Nav2 releases: compare 1.3.10 and 1.3.11, or see the collision monitor fix on GitHub.

Specimen for illustration. AMR-1, its safety functions, hazards, tests and limits are fictional, and the vulnerability figure is illustrative. Code excerpts from Nav2 (ros-navigation/navigation2), Apache License 2.0. Independent example, not affiliated with or endorsed by the Nav2 project. Mapping to legal requirements and standard clauses is verified by a safety engineer in every client project.

Getting started

From a readiness check to every release.

1

Readiness check: we review your safety file and release process against the 2026–2027 requirements.

2

Setup: safety.yaml, the CI connection and the first technical file draft, in your infrastructure.

3

Every release: checked, documented and signed, with requirements kept current as the law changes.

Make every release audit-ready