Progress: where we are, with evidence

What we are building
An open-source dual-arm mobile manipulator: our own mobile base with a DOLD Hexalift V4 lift and two OpenArm 2.0 arms, ROS 2 Jazzy software, released as a package a second site can build. The 2.0 target application is Use Case 1.
Where we are
Base navigation works in simulation only with fixtures; the safe command path, docking acceptance, 2.0 base firmware and the combined robot model are not on main; no physical acceptance is recorded. Since 19 Oct: command arbitration, the recovery behaviour tree and the STM32 CubeMX project are in review; only the Stop (software) label reached main. 111 PRs from 15 authors since 1 Oct (41 open).
What is next
Gate A and the electrical and safety release on 30 Oct, the I8 freeze and STM32 go/no-go on 6 Nov (P-02 rev19.2), the 13 Nov issue dues and Gate B regression 13 to 20 Nov, then v2.0.0-rc.1 on 20 Nov and physical integration from 23 Nov.
runtime: works in simulation with fixture runtime evidence (rounded) · physical: none recorded physical acceptance (box)

Attention now

Navigation

On main the simulated robot did not move: 0 of 3 goals, 0.000 m travel. With the fixture, 3 of 3 goals. Consequence: no navigation evidence on main is valid until the LiDAR body filter is fixed.

owner @skunal3318 (navigation lead) · scenarios S1 · code · closes when: Rerun S1 on main: 3 of 3 goals

OA-47 · scenario S1 · code openamr-platform-sw/ros2/src/openamrobot_nav2/config/scan_body_filter.yaml:1 · owner @skunal3318 (navigation lead) · closes when: Rerun S1 on main: 3 of 3 goals; a test fails when the mask covers the forward sector

Operator UI

UI teleop drove the simulated robot into a wall at 0.2 m/s. After the UI connection was lost the robot continued 2.25 m. Recording replay moved it 0.672 m with no operator command. Consequence: every UI motion path bypasses the reactive layer.

owner @parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks) · scenarios S4, S5, S7 · code · closes when: Rerun S4, S5 and S7a: no UI or replay publisher on /cmd_vel; stop before the wall; stop within 0.5 s after the connection drops

OA-02-P2 · scenario S4 · code openamrobot-ui/web/src/shared/constants/index.js:7 · owner @parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks) · closes when: Rerun S4 and S7a: rosbridge is not a /cmd_vel publisher; robot stops before the wall; stops within 0.5 s after the UI connection dropsOA-45-P2 · scenario S7 · code openamr-platform-sw/ros2/src/openamrobot_description/urdf/gazebo_control.xacro:5 · owner @skunal3318 (navigation lead) · closes when: Rerun S7a and S7c: simulated base stops within the command timeout after publisher lossOA-48 · scenario S5 · code location withheld (security) · owner @parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks) · closes when: Replay of a recording that contains command topics: robot travel 0

Docking

0 of 5 docked; 5 of 8 planned attempts ran. The navigation stack reset during docking because docking switched the collision monitor off. Consequence: docking has no reactive layer and no successful run in simulation.

owner @fridayali (docking and robot description) · scenarios S3 · code · closes when: Rerun S3: 5 of 5 docked; collision monitor the sole /cmd_vel publisher; zero lifecycle transitions

OA-04-P2 · scenario S3 · code openamr-platform-sw/ros2/src/openamrobot_docking/scripts/dock_trigger.py:833 · owner @skunal3318 (navigation lead) · closes when: Rerun S3: 5 of 5 docked; collision_monitor the sole /cmd_vel publisher; zero lifecycle transitionsOA-68 · scenario S3 · code openamr-platform-sw/ros2/src/openamrobot_docking/scripts/dock_trigger.py:833 · owner @fridayali (docking and robot description) · closes when: Rerun S3: reported monitor state equals the lifecycle state in every phaseOA-53 · scenario S3 · code openamr-platform-sw/ros2/src/openamrobot_docking/scripts/dock_trigger.py:942 · owner @fridayali (docking and robot description) · closes when: Undock when not docked is refused; cancel stops within 0.5 s; no automatic undock after a failed dockOA-54 · scenario S3 · code openamr-platform-sw/ros2/src/openamrobot_docking/scripts/dock_trigger.py:1800 · owner @fridayali (docking and robot description) · closes when: Rerun S3 at 0.1 real-time factor with the same parameters as at 1.0: no wall-clock timeout

Stop and RESET (AR-05)

Motion commands are not held at zero across an E-stop and RESET: no host node reads the safety-relay state, motion sources keep publishing while actuator power is off, and the UI stop does not latch. Consequence: after RESET, the last command of any direct source can reach the base.

owner @skunal3318 (navigation lead) · scenarios S6, S7 · architecture review · closes when: After RESET, no motion from any source until an explicit operator release; verified in simulation and on the bench

NR-03 · owner @skunal3318 (navigation lead) · closes when: After RESET, no motion from any source until an explicit operator release; verified in simulation and on the bench

Obstacle tests

No contact with sudden obstacles, but the collision monitor never engaged; the planner avoided them with 0.117 to 0.128 m clearance. Consequence: the stop is not demonstrated.

owner @skunal3318 (navigation lead) · scenarios S2 · code · closes when: Rerun S2: clearance at least 0.25 m and the collision monitor engages in the barrier test

OA-35-P2 · scenario S2 · code openamr-platform-sw/ros2/src/openamrobot_nav2/config/nav2_params.yaml:177 · owner @skunal3318 (navigation lead) · closes when: Rerun S2: clearance at least 0.25 m; collision monitor engages in the barrier testOA-69 · scenario S10, S12 · code openamr-platform-sw/ros2/src/openamrobot_nav2/config/nav2_params.yaml · owner @skunal3318 (navigation lead) · closes when: Collision monitor and local costmap list the ToF and ultrasonic sources, or the register records their role

Manipulation

48 of 48 plans on mock hardware (branch, not main). One park pose sits exactly at a joint limit, and the lift is not a planned joint. Consequence: lift height is not part of planning.

owner @Tushargoel230 (upper-body model) · scenarios S8 · code · closes when: Rerun S8 with the lift in the planning group: 48 of 48 and every margin above 0.05 rad

OA-64 · scenario S8 · code PR #14 (branch evidence) · owner @Tushargoel230 (upper-body model) · closes when: Rerun S8 with the lift in the planning group: 48 of 48 and every margin above 0.05 rad

Coverage

85 requirement rows: 26 need hardware, 20 missing, 16 partial, 6 implemented untested, 5 documented only, 5 out of scope, 4 tested in simulation, 3 contradicted.

owner per row · traceability panel · closes when: See the traceability panel

v2.0.0-rc.1 readiness

19 items

Audit pass 2 recommends not cutting v2.0.0-rc.1 until the items below land. This page states the dependencies; it does not decide the release. Target 20 Nov 2026, 32 days after this snapshot.

rc.1 depends onDeliveryFindingsOwner
UI teleop, blocks and voice actions enter an arbitrated input ahead of the smoother; the browser never publishes /cmd_velIN REVIEW
platform-sw #90 (UI TwistStamped on /ui/cmd_vel), changes requested, sign-off missing
OA-02-P2 OA-45-P2 OA-52 OA-62@parthkeshari (UI lead)
#35 option (b): docking commands through the chain, collision monitor never switched off, truthful monitor statusIN PROGRESSOA-04-P2 OA-68@skunal3318 (navigation lead); @fridayali (docking and robot description)
UI no longer starts its own navigation or mapping stackNOT STARTEDOA-03-P2@parthkeshari (UI lead)
Recording replay restricted to non-command topicsNOT STARTEDOA-48@parthkeshari (UI lead)
UI command path hardeningIN PROGRESS
ui issues #31 to #37 open: security hardening in progress
OA-50@parthkeshari (UI lead)
Simulation body filter fixed on main with a URDF-derived testNOT STARTEDOA-47@skunal3318 (navigation lead)
UI command path hardening: access controlNOT STARTEDOA-49@parthkeshari (UI lead)
Collision monitor and smoother under their own lifecycle managerNOT STARTEDOA-56@skunal3318 (navigation lead)
Bounded startup with retriesNOT STARTEDOA-57@skunal3318 (navigation lead)
Docking deadlines on the node clockNOT STARTEDOA-54@fridayali (docking and robot description)
Undock only from docked, cancellable, with rear coverageNOT STARTEDOA-53@fridayali (docking and robot description)
Command timeout for the simulated baseNOT STARTEDOA-45-P2@skunal3318 (navigation lead)
Stop and slowdown polygons; inflation at or above the inscribed radiusNOT STARTEDOA-35-P2@skunal3318 (navigation lead)
Motion commands held at zero across E-stop and RESET until an explicit operator release (AR-05)NOT STARTEDNR-03@skunal3318 (navigation lead)
Latched software stop with its own label (not E-STOP)IN REVIEW
stop lock in platform-sw #90 (changes requested); Stop (software) label merged in ui #38
OA-16-P2@parthkeshari (UI lead)
Lift as a planning joint; both-arms group; poses with limit marginIN REVIEWOA-64@Tushargoel230 (upper-body model)
Simulated docking camera on base_camera_link (Gemini 336L) and docking retunedIN REVIEWOA-59@fridayali (docking and robot description)
Release reproducible from a manifest with exact SHAs; drivers installable (release #12, manifest #17 and #18, drafts)IN REVIEWOA-05 OA-06 OA-39@KARTHIKEYAN124 (release lead)
Decision: does rc.1 run the Teensy Gate A controller or the STM32 (P-02 rev19.2: STM32 go/no-go 6 Nov, fallback Teensy; input: CubeMX project platform-fw #22 in review)NOT STARTEDOA-14to be confirmed

Action plan: what to do, in order

Proposed sequence, ordered by dependency and the critical path; owners and dates only where a source names them.

35 steps; 16 on the critical path (steps 1, 2, 3, 6, 8, 9, 10, 11, 15, 17, 18, 30, 32, 33, 34, 35). Due kinds: confirmed (P-02 rev19.2, the register, a work package or an issue body; no repository uses GitHub milestones), proposed (audit pass 2), or none in any source. Each step shows its state on 24 Oct with the PR or issue it rests on.

35 items

Phase dependency diagram

What this shows: the six phases of the action plan in order, with how many steps each holds and how many are on the critical path.

How to read it: each phase depends on the one before; select a phase to jump to its steps; red arrows carry the critical path.

Source: this action plan (proposed sequence), built from audit pass 2, P-02 rev19.2, P-03 rev19.7 item 12, the register and the Team document · 24 Oct 2026

Phase 0: start now (from 19 Oct)

  1. 1

    Fix the simulation LiDAR body filter on main with a URDF-derived test so navigation evidence on main becomes valid. critical path

    Owner
    @skunal3318 (navigation lead)
    Status now
    NOT STARTED
    State 24 Oct
    Open as platform-sw #74 (due 6 Nov), no PR yet. The simulation filter assumes an unrotated LiDAR; with the URDF yaw of pi it removes the robot front and keeps the body.
    Depends on
    none
    Due
    6 Nov 2026 confirmed (platform-sw #74 issue body)
    Done when
    S1 on main: 3 of 3 goals; the test fails when the mask covers the forward sector
    Links
    finding OA-47 · issue #74
  2. 2

    Get a firm quote with delivery date for the GX11CAC K1/K2 contactors, or approve an alternative, and close the BUY-32 datasheet checks. critical path

    Owner
    @Evans-Kwashie (electrical and firmware lead)
    Status now
    BLOCKED
    State 24 Oct
    BUY-32 is HOLD in the BOM Issue 7.10 purchase view; blocked on quotes. No package is recorded as ordered.
    Depends on
    none
    Due
    none in any source
    Done when
    BUY-32 released: order placed with a delivery date, or an approved alternative recorded in the BOM and the register
    Links
    BUY-32 risk · finding OA-01
  3. 3

    Resolve the open shared-base differences (second E-stop, battery pack, encoder supply, release 001 sensor list) so Sheet A, Sheet B and the wire list describe one shared base. critical path

    Owner
    @Evans-Kwashie (electrical and firmware lead); decisions @BotshareAI (project lead)
    Status now
    IN PROGRESS
    State 24 Oct
    WCM-500-24 on both robots is now recorded (P-03 rev19.7 item 23, BOM Issue 7.10 update of 20 Oct).
    Depends on
    none
    Due
    none in any source
    Done when
    Every open difference on the hardware page is closed or moved to an intended controller or sensor variant; Sheet A, Sheet B and the wire list are reissued against E-01 rev1.4
    Links
    open differences
  4. 4

    Record the shared-base direction in decisions.yaml through a contract change request.

    Owner
    @BotshareAI (project lead)
    Status now
    MERGED AND TESTED (was NOT STARTED on 19 Oct; .github #55 (1c3f516, 22 Oct) records SHARED-BASE)
    State 24 Oct
    Done by .github #55 (1c3f516, 22 Oct). Open follow-up: the register document label still says rev19.6 (drift 1).
    Depends on
    3
    Due
    none in any source
    Done when
    A register entry for the shared base is merged (done: SHARED-BASE at 1c3f516); the document label still says P-03 rev19.6
    Links
    register at 1c3f516

Phase 1: Gate A (30 Oct (P-02 F5))

  1. 5

    Ship the Gate A UI scope: Stop (software) label, software stop lock, basic command routing and stop tests.

    Owner
    @parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)
    Status now
    IN PROGRESS
    State 24 Oct
    "Stop (software)" label landed in ui #38 (22 Oct). The software stop lock and the /ui/cmd_vel relay are not on main; they sit in platform-sw #90 (changes requested 23 Oct, sign-off missing).
    Depends on
    none
    Due
    30 Oct 2026 confirmed (P-02 rev19.2 Gate A date; UI scope agreed in coordination, not yet in a plan)
    Done when
    Simulation check by the simulation reviewer: UI motion cannot bypass an active stop
    Links
    finding OA-16-P2
  2. 6

    Define the twist_mux input topics, priorities and timeouts for #35 option (b) in a contract change request. critical path

    Owner
    @skunal3318 (navigation lead)
    Status now
    IN PROGRESS
    State 24 Oct
    Topics and priorities are proposed in platform-sw #90 (stop lock priority 255, UI TwistStamped on /ui/cmd_vel); no contract change request yet.
    Depends on
    none
    Due
    30 Oct 2026 confirmed (platform-sw #35 issue body)
    Done when
    Contract change request accepted by the software lead with topic names, priorities and timeouts
    Links
    issue #35
  3. 7

    Pass Gate A on the Jetson with the existing Teensy and drivetrain.

    Owner
    @Evans-Kwashie (electrical and firmware lead)
    Status now
    MERGED UNTESTED
    State 24 Oct
    pid.h is not in the repository, so Gate A cannot be rebuilt from platform-fw main; host tests for the Gate A PID are in draft platform-fw #27.
    Depends on
    none
    Due
    30 Oct 2026 confirmed (P-02 rev19.2 Gate A, Jetson and Teensy)
    Done when
    Command, odometry, LiDAR, Nav2, the functional watchdog, recovery and safety-chain status telemetry (functional) pass the host-migration suite
    Links
    platform-fw #13 · platform-fw #27
  4. 8

    Implement the LOCKED/RUN safety state machine on the Teensy and clear its verify-before-sending list. critical path

    Owner
    @Evans-Kwashie (electrical and firmware lead)
    Status now
    NOT STARTED
    State 24 Oct
    Issue platform-fw #17 not started; it still names LEV100H contactors (drift 8) and needs an /estop contract change request that does not exist (drift 11).
    Depends on
    3
    Due
    none in any source
    Done when
    Bench tests 1 to 6 of the state machine draft pass and the AR-05 closure test holds on the Teensy path
    Links
    issue #17 · state machine · finding NR-03
  5. 9

    Build the release 001 shared base where parts allow and bench test it. critical path

    Owner
    @Evans-Kwashie (electrical and firmware lead); @ArkaStark (bench and integration)
    Status now
    NOT STARTED
    Depends on
    2, 3
    Due
    none in any source
    Done when
    Bench record of tests 1 to 6, including the tested PNOZ reset dial setting; K1/K2 tests wait for step 2
    Links
    equivalence table

Phase 2: batch 1 (6 Nov)

  1. 10

    Route UI teleop, blocks and voice actions into an arbitrated twist_mux input; the browser never publishes /cmd_vel. critical path

    Owner
    @parthkeshari (UI lead)
    Status now
    IN REVIEW (was IN PROGRESS on 19 Oct; platform-sw #90 opened (UI TwistStamped /ui/cmd_vel relay))
    State 24 Oct
    In platform-sw #90: twist_mux and stop gate with the UI relay; changes requested on 23 Oct; DCO sign-off missing. On main the UI still publishes /cmd_vel (drift 14).
    Depends on
    6
    Due
    6 Nov 2026 proposed (audit pass 2 action 1)
    Done when
    S4 and S7a rerun: no UI publisher on /cmd_vel; stop before the wall; stop within 0.5 s after the connection drops
    Links
    finding OA-02-P2 · finding OA-45-P2 · platform-sw #90
  2. 11

    Land #35 option (b): docking commands through the chain without switching the collision monitor off. critical path

    Owner
    @skunal3318 (navigation lead); @fridayali (docking and robot description)
    Status now
    IN PROGRESS
    State 24 Oct
    Issue #35 open, due 30 Oct. On main docking still publishes /cmd_vel directly.
    Depends on
    6
    Due
    30 Oct 2026 confirmed (platform-sw #35 issue body); audit pass 2 action 2 proposed 6 Nov
    Done when
    S3: 5 of 5 docked; collision monitor the sole /cmd_vel publisher; zero lifecycle transitions
    Links
    finding OA-04-P2 · finding OA-68 · issue #35
  3. 12

    Stop the UI from starting its own navigation or mapping stack.

    Owner
    @parthkeshari (UI lead)
    Status now
    NOT STARTED
    Depends on
    none
    Due
    6 Nov 2026 proposed (audit pass 2 action 3)
    Done when
    S5: building a map leaves one controller_server and the platform map server and localisation unchanged
    Links
    finding OA-03-P2
  4. 13

    Restrict recording replay to non-command topics.

    Owner
    @parthkeshari (UI lead)
    Status now
    NOT STARTED
    Depends on
    none
    Due
    6 Nov 2026 proposed (audit pass 2 action 4)
    Done when
    Replay of a recording that contains command topics: robot travel 0
    Links
    finding OA-48
  5. 14

    Harden the UI command path.

    Owner
    @parthkeshari (UI lead)
    Status now
    IN PROGRESS (was NOT STARTED on 19 Oct; ui issues #31 to #37 opened (security hardening in progress))
    State 24 Oct
    Security hardening in progress (ui #31 to #37 open).
    Depends on
    none
    Due
    6 Nov 2026 proposed (audit pass 2 action 5)
    Done when
    Security review of the UI backend passes
    Links
    finding OA-50
  6. 15

    Decide which base controller rc.1 runs (STM32 go/no-go, Teensy Gate A as fallback). critical path

    Owner
    to be confirmed
    Status now
    NOT STARTED
    State 24 Oct
    Input: CubeMX project platform-fw #22 is ready for review (changes asked in comments: Ethernet DMA in DTCM, HAL edit, unused UART TX pins); boards/stm32 is empty on main.
    Depends on
    7
    Due
    6 Nov 2026 confirmed (P-02 rev19.2 STM32 go/no-go; fallback Teensy)
    Done when
    A recorded decision names the rc.1 controller
    Links
    open decision · finding OA-14
  7. 16

    Freeze the I8 base-controller contract.

    Owner
    @Evans-Kwashie (electrical and firmware lead)
    Status now
    DOCUMENTED ONLY
    Depends on
    7
    Due
    6 Nov 2026 confirmed (P-02 rev19.2, I8 freeze)
    Done when
    I8 accepted by the software lead with its consumers listed
    Links
    finding OA-15

Phase 3: batch 2 (13 Nov (proposed))

  1. 17

    Run the reactive motion layer (collision monitor and smoother) under its own lifecycle manager with respawn. critical path

    Owner
    @skunal3318 (navigation lead)
    Status now
    NOT STARTED
    Depends on
    11
    Due
    13 Nov 2026 proposed (audit pass 2 action 8)
    Done when
    S7b: after killing controller_server the monitor stays active and zero velocity holds
    Links
    finding OA-56
  2. 18

    Hold motion commands at zero across E-stop and RESET until an explicit operator release, on the host and in firmware. critical path

    Owner
    @skunal3318 (navigation lead)
    Status now
    NOT STARTED
    State 24 Oct
    The stop gate in platform-sw #90 is a host input only; the firmware side is not started.
    Depends on
    8, 10, 11
    Due
    none in any source
    Done when
    After RESET, no motion from any source until an explicit operator release; verified in simulation and on the bench
    Links
    AR-05 · finding NR-03
  3. 19

    Add bounded startup with retries and a startup watchdog.

    Owner
    @skunal3318 (navigation lead)
    Status now
    NOT STARTED
    Depends on
    17
    Due
    13 Nov 2026 proposed (audit pass 2 action 9)
    Done when
    S11 extended to 10 starts: all reach active within 120 s simulated
    Links
    finding OA-57
  4. 20

    Add a command timeout to the simulated base.

    Owner
    @skunal3318 (navigation lead)
    Status now
    NOT STARTED
    Depends on
    none
    Due
    13 Nov 2026 proposed (audit pass 2 action 12)
    Done when
    S7a and S7c: the base stops within the timeout after publisher loss
    Links
    finding OA-45-P2
  5. 21

    Add stop and slowdown zones and set inflation at or above the inscribed radius.

    Owner
    @skunal3318 (navigation lead)
    Status now
    NOT STARTED
    Depends on
    1
    Due
    13 Nov 2026 proposed (audit pass 2 action 13)
    Done when
    S2: clearance at least 0.25 m and the collision monitor engages in the barrier test
    Links
    finding OA-35-P2
  6. 22

    Move docking deadlines to the ROS clock and make undock a cancellable action allowed only from docked.

    Owner
    @fridayali (docking and robot description)
    Status now
    NOT STARTED
    Depends on
    11
    Due
    13 Nov 2026 proposed (audit pass 2 actions 10 and 11)
    Done when
    S3 at real-time factor 0.1 with no wall-clock timeout; undock when not docked is refused; cancel stops within 0.5 s
    Links
    finding OA-54 · finding OA-53
  7. 23

    Move the simulated docking camera to base_camera_link (Gemini 336L) and retune docking.

    Owner
    @fridayali (docking and robot description)
    Status now
    IN REVIEW
    State 24 Oct
    platform-sw #53 is a draft with changes requested.
    Depends on
    11
    Due
    13 Nov 2026 proposed (audit pass 2 action 16)
    Done when
    S10: image frame base_camera_link; S3 passes with it
    Links
    finding OA-59 · platform-sw #53
  8. 24

    Add UI access control.

    Owner
    @parthkeshari (UI lead)
    Status now
    NOT STARTED
    Depends on
    14
    Due
    13 Nov 2026 proposed (audit pass 2 action 7)
    Done when
    Security review of the UI backend passes
    Links
    finding OA-49
  9. 25

    Latch the software stop with its own label until an explicit release.

    Owner
    @parthkeshari (UI lead)
    Status now
    IN REVIEW (was NOT STARTED on 19 Oct; platform-sw #90 opened (stop lock))
    State 24 Oct
    Stop lock in platform-sw #90 (changes requested); not on main.
    Depends on
    5, 10
    Due
    13 Nov 2026 proposed (audit pass 2 action 14)
    Done when
    S6 plus: after stop, UI teleop and docking produce no motion until release
    Links
    finding OA-16-P2
  10. 26

    Make the lift a planned joint with a controller, add a both-arms group and keep poses off the joint limits.

    Owner
    @Tushargoel230 (upper-body model)
    Status now
    IN REVIEW
    State 24 Oct
    Issues upperbody-sw #17 and #18 are open.
    Depends on
    none
    Due
    13 Nov 2026 confirmed (upperbody-sw #17 issue body); joint clamp default upperbody-sw #18 also due 13 Nov
    Done when
    S8 with the lift in the group: 48 of 48 and every margin above 0.05 rad
    Links
    finding OA-64
  11. 27

    Investigate the intermittent parameter_bridge crash seen in PR #14 and record the cause.

    Owner
    @Tushargoel230 (upper-body model)
    Status now
    NOT STARTED
    Depends on
    none
    Due
    none in any source
    Done when
    Cause recorded in PR #14; A7 reruns on the merge candidate show no SIGSEGV
    Links
    PR #14
  12. 28

    Address the review of PR #14 and merge the combined model.

    Owner
    @Tushargoel230 (upper-body model)
    Status now
    IN REVIEW
    State 24 Oct
    upperbody-sw #14 is a draft of 405 files with changes requested: NaN joint samples are accepted and the quality check must be restored.
    Depends on
    26, 27
    Due
    none in any source
    Done when
    PR #14 merged with A6 and A7 passing on main
    Links
    PR #14

Phase 4: rc.1 (by 20 Nov (register))

  1. 29

    Run the STM32 Gate B regression if step 15 chose the STM32.

    Owner
    @Evans-Kwashie (electrical and firmware lead)
    Status now
    NOT STARTED
    Depends on
    15, 16
    Due
    13 to 20 Nov 2026 confirmed (P-02 rev19.2, Gate B regression)
    Done when
    Gate A host acceptance suite passes on the STM32 and new-drive configuration; bench and physical results reported separately
    Links
    -
  2. 30

    Rerun audit scenarios S1 to S12 on main as the rc.1 simulation check. critical path

    Owner
    @nikgolobo (simulation checks)
    Status now
    NOT STARTED
    Depends on
    1, 10, 11, 17, 18, 21, 22
    Due
    20 Nov 2026 confirmed (rc.1 date, register RELEASE-MILESTONES; the rerun must finish before it)
    Done when
    Every scenario meets its pass criterion on main; results published with the tested SHAs
    Links
    scenarios
  3. 31

    Merge release #12 and manifest #17 and #18 with one agreed pin set.

    Owner
    @KARTHIKEYAN124 (release lead)
    Status now
    IN REVIEW
    State 24 Oct
    release #8 and #9 merged 24 Oct. release #12 (draft) pins 14 sources, manifest #17 pins 11 (drift 12). manifest #13 is approved twice and not merged; manifest #11 is stale.
    Depends on
    none
    Due
    20 Nov 2026 confirmed (rc.1 date, register RELEASE-MILESTONES)
    Done when
    Two builds from the rc.1 manifest give identical checksums; drivers install from the manifest plus rosdep
    Links
    finding OA-05 · finding OA-39 · finding OA-06 · release #12
  4. 32

    Cut v2.0.0-rc.1 from pinned SHAs as a GitHub pre-release. critical path

    Owner
    @KARTHIKEYAN124 (release lead)
    Status now
    NOT STARTED
    Depends on
    15, 30, 31
    Due
    20 Nov 2026 confirmed (register RELEASE-MILESTONES)
    Done when
    Pre-release published with the pinned manifest, checksums and the simulation check results
    Links
    -

Phase 5: v2.0.0 (23 Nov to 18 Dec (P-03 item 12))

  1. 33

    Run supervised bench tests per subsystem, safety chain first (E-stop, contactors, brakes, RESET, charge interlock). critical path

    Owner
    @Evans-Kwashie (electrical and firmware lead); @ArkaStark (bench and integration)
    Status now
    NOT STARTED
    Depends on
    2, 9, 32
    Due
    23 Nov 2026 confirmed (P-03 item 12, window 23 Nov to 18 Dec)
    Done when
    Bench record per subsystem; release 001 evidence counted for 2.0 only where the equivalence table says yes
    Links
    equivalence table
  2. 34

    Run robot-level physical acceptance, including the 26 rows that need hardware and the stopping tests that set the operating speed. critical path

    Owner
    to be confirmed
    Status now
    NOT STARTED
    Depends on
    33
    Due
    18 Dec 2026 confirmed (P-03 item 12)
    Done when
    Each hardware row has a physical test record; physical acceptance recorded
    Links
    hardware rows
  3. 35

    Release v2.0.0. critical path

    Owner
    @KARTHIKEYAN124 (release lead)
    Status now
    NOT STARTED
    Depends on
    34
    Due
    18 Dec 2026 confirmed (register RELEASE-MILESTONES)
    Done when
    v2.0.0 published from pinned SHAs with the acceptance records
    Links
    -

Governance and organisation

How decisions are made and who owns what, as recorded in openAMRobot/.github on main (68833f2) and in each repository on 24 Oct 2026. Mismatches are listed under Known drift 20 and 21.

Decision flow

GOVERNANCE.md: an issue, then the source document is updated, then one PR, then owner approval. Botshare LTD has final authority. The decisions register (decisions.yaml, last changed 1c3f516 by .github #55 on 22 Oct) mirrors the documents in force; P-03 rev19.7 is in force by project-lead decision of 24 Oct.

Contributions

DCO sign-off on every commit and the individual contributor agreement ICLA v1.1 (or the corporate agreement). Rulesets on all public repositories: 1 approval, code-owner review, DCO and license/cla checks. openamrobot-embodied-ai has 0 required approvals and no CLA check.

Watchdog

A weekly scan on Thursday at 14:00 Berlin time writes one dashboard issue; every repository calls the shared harness at @main.

Agent rules and state files

Shared agent rules v2 are on main in .github, platform-sw, ui, manipulation, interfaces and manifest; drafts are open for platform-fw (#24) and platform-hw (#35). STATE.md exists only in platform-sw and interfaces, and both are stale.

Roles (maintainers.yaml)

RoleHandleCovers
platform-lead@BotshareAIplatform, hardware, safety chain, decisions of record, final review
software-lead@panthera-momagdiirobot software, AI, interfaces, agent rules
ci-owner@wikki26CI/CD, reusable workflows, quality gates
release-owner@KARTHIKEYAN124release, installation, manifest
docs-owner@anandgawai123456-glitchdocumentation site, public extracts
electrical-owner@Evans-Kwashiebase controller firmware, electrical and power distribution, safety chain implementation
robot-description-owner@fridayaliURDF, base robot model, sensor frames, chassis and panel CAD

Code owners (CODEOWNERS on main)

RepositoryCode owners
openamr-platform-sw@fridayali, @panthera-momagdii, @skunal3318
openamr-platform-fw@BotshareAI, @evans-kwashie
openamr-platform-hw@AnushkaAMuragod, @BotshareAI, @fridayali
openamrobot-ui@BotshareAI, @panthera-momagdii
openamrobot-interfaces@KARTHIKEYAN124, @panthera-momagdii, @wikki26
openamrobot-manipulation@Brinex45, @panthera-momagdii
openamr-upperbody-sw@Brinex45, @panthera-momagdii
openamr-upperbody-hw@BotshareAI
openamr-upperbody-fw@BotshareAI
openamrobot-release@BotshareAI, @KARTHIKEYAN124
openamrobot-manifest@KARTHIKEYAN124, @panthera-momagdii
openamrobot-comm@BotshareAI, @panthera-momagdii
openamrobot-embodied-ai@SatyaA27, @panthera-momagdii
.github@BotshareAI, @panthera-momagdii, @wikki26
openamrobot-docs@anandgawai123456-glitch, @panthera-momagdii

PRs missing DCO sign-off

"Blocked on sign-off" where the sign-off is the only thing left.

PRState on 24 Oct
platform-sw #90changes requested; sign-off missing
platform-sw #92approved once (24 Oct); needs sign-off and a second approval
platform-sw #93draft; sign-off missing
platform-sw #66sign-off missing; needs an /estop contract change request
platform-fw #18draft; sign-off missing
platform-hw #27sign-off missing
platform-hw #29sign-off missing
interfaces #28approved; blocked on sign-off (the only blocker)
manipulation #2099/99 tests; one controller-config defect left; sign-off missing

Activity and licences

111 PRs from 15 authors opened since 1 Oct (41 open on 24 Oct); 8 commit authors on main since 24 Sep. Licences: software MIT, hardware CERN-OHL-P-2.0, documentation CC BY 4.0. CITATION.cff is on openamrobot-release main (release #13) and FUNDING in .github (#56). The 2.0 work is announced in GitHub Discussions #27.

Source: openAMRobot/.github GOVERNANCE.md, maintainers.yaml, WATCHDOG.md and CONTRIBUTING.md at 68833f2; CODEOWNERS on main of each repository; PR lists of each repository · 24 Oct 2026

Known drift: 22 items

Definition: a value or rule on which two sources disagree. The roadmap shows the design value (P-03 rev19.7, then E-01 rev1.4, then BOM Issue 7.10) or the rule in force, marks the place with a drift marker and lists both values and both sources here. A drift row closes when the named fix is merged.

#ItemDesign value or rule (source)Other value (source)Fix
1Register document labelP-03 rev19.7 is in force (project lead, 24 Oct); its decisions are already in decisions.yaml (.github #55, 1c3f516)decisions.yaml still labels the document P-03-rev19.6 (.github main 68833f2)Register label to rev19.7 (.github PR, platform lead)
2ToF pitch10 deg down (P-03 rev19.7 item 19 D6; register near-field entry)20 deg on platform-sw main (sensor_frames.yaml, sensors.xacro) and in platform-hw near-field.md; draft platform-sw #93 sets 10 deg but keeps 20 deg in comments and docsplatform-sw #93 and platform-hw near-field.md
3TF-Luna x position+/-0.390 m, panel (P-03 rev19.7 item 19, BOM Issue 7.10)+/-0.399 m (lens face) on platform-sw main, in draft #93 and in the register near-field entry (robot-description owner confirmation, 20 Oct)platform-sw #93 sets +/-0.390, or P-03 and the BOM record the lens-face value; register entry to match
4Ultrasonic x position+/-0.390 m (register; P-03 rev19.7 item 19)model: +0.3906 front, -0.3886 rear (platform-sw sensor_frames.yaml)Robot description owner to align the model or record the measured values in P-03
5IMU frameimu_link (0.0544, 0, 0.1210), yaw -90 deg (platform-sw main and register; P-03 rev19.7 item 19 D5 update)P-03 item 15 and D5 text still (0.195, 0, -0.044); BOM sensor sheet and P-02 say axes aligned; platform-hw imu.md z 0.133; platform-fw I/O doc and docs index.md x 0.195P-03 item 15, BOM sensor sheet, P-02, platform-hw imu.md, platform-fw I/O doc and docs index.md
6LiDAR mount17.5 mm printed spacer, no standoffs, scan plane 222.05 mm (register, platform-sw, BOM Hardware BOM sheet MEC-008 after the 24 Oct correction)P-03 item 13, platform-hw lidar.md and docs index.md: standoffs plus 7.1 mm plate; BOM Mechanical sheet: aluminium spacer plate; BOM Connections sheet: 222.0 mmP-03 item 13, BOM Mechanical and Connections sheets, platform-hw lidar.md, docs index.md
7Base camera posebase_camera_link (0.387, 0, 0.046), 10 deg up (P-03 rev19.7 item 19 D3; platform-sw main)docs index.md: (0.376, 0, 0.0445) at 142.5 mmdocs index.md (docs owner)
8Contactors2 x GX11CAC (register; E-01 rev1.4; BOM Issue 7.10 SAF-003)P-03 item 5, platform-fw #17, platform-fw #18 and platform-hw #27 still LEV100HP-03 item 5 and the three PRs or issues
9Near-field sensor set4 x MB7060 (UART) and 2 x TF-Luna (UART) (P-03 rev19.7 item 19; BOM Issue 7.10 SNS-001, SNS-002)platform-fw #11 title and platform-hw #15 body: TF-Luna and MB7040 over I2CRetitle platform-fw #11 and update platform-hw #15
10Navigation contract versionCONTRACT_VERSION 1 on interfaces main (d048fb8)interfaces #28 bumps it to 2; repositories pin three different interfaces commits (87ab8a9, fa7c438, d048fb8)Merge or close interfaces #28, then one pin across repositories (release owner)
11/estop contractContract changes go through a contract change request (GOVERNANCE.md)platform-fw #17 and platform-sw #66 require an /estop contract change request; none existsOpen the /estop contract change request (software lead, electrical owner)
12rc.1 pin countOne pinned source set for v2.0.0-rc.1 (register RELEASE-MILESTONES)release #12 pins 14 sources; manifest #17 pins 11Release owner to agree one list
13Arm mountArm profile on a 10 mm adapter plate on the column top (register; BOM Issue 7.10 MEC-003, MEC-004)ADR-010: profile overlaps the column; upperbody-sw #14 model: profile in front of the columnADR-010 and upperbody-sw #14 to follow the register
14Motion chaincollision_monitor is the only /cmd_vel publisher (P-03 rev19.7; register)on platform-sw main the UI and docking publish /cmd_vel directly; twist_mux and the UI relay are only in platform-sw #90platform-sw #90 and #35
15Hub motorZLLG80ASM250-L-B, 120 kg per pair (BOM Issue 7.10 DRV-001; P-03 rev19.5 item 21, supplier answer 18 Oct)platform-hw datasheets README drops the -B suffix; platform-hw #28 uses -B2; the drawing says 100 kg per pairplatform-hw datasheets README and #28
16ChargerWCM-500-24 on release 001 and 2.0 (P-03 rev19.7 item 23; register SHARED-BASE and CHARGING; BOM Issue 7.10)docs concepts.md names the WCM-300docs concepts.md (docs owner)
17Raspberry Pi 5 labelJetson Orin NX 16 GB is the 2.0 compute; the Raspberry Pi 5 is release 001 onlyThe Pi 5 is named without a release 001 or legacy label in platform-hw, platform-sw, docs and the release READMELabel each mention release 001 or legacy
18Old revisions cited as currentP-03 rev19.7 and BOM Issue 7.10rev19.0 and BOM 7.7 in docs hardware-architecture, platform-hw product-architecture and BOM files, platform-fw base-controller-2-0-io, platform-sw sensor_frames.yaml, upperbody-hw README and manipulation; rev18.9 in upperbody-sw; the release README title still says v0.0.1 above the 2.0 planEach repository owner; release README title (release owner)
19.github ROADMAP.md and org profileTwo 7-DoF OpenArm 2.0 arms and a 2D RPLIDAR S3 (register; org profile); brake rating is an open supplier gate (BOM Issue 7.10)ROADMAP.md says dual 6-DoF arms and a 3D LiDAR; the org profile says fail-safe holding brakes.github ROADMAP.md and profile (platform lead)
20GovernanceGOVERNANCE.md: platform lead reviews safety paths; two approvals on safety changes; maintainers.yaml lists the rolesCode owners skunal3318, AnushkaAMuragod, Brinex45 and SatyaA27 are not in maintainers.yaml or MAINTAINERS.md; the platform lead is not a code owner in several repositories (platform-sw, interfaces, manifest, manipulation, upperbody-sw, embodied-ai, docs); rulesets enforce one approval; embodied-ai is missing from maintainers.yaml and the Watchdog list; TECHNICAL_STEERING.md is empty.github maintainers.yaml, MAINTAINERS.md, rulesets and Watchdog list (platform lead, CI owner)
21BOM ownersTeam document: @Evans-Kwashie owns power and safety, @AnushkaAMuragod supportsBOM Issue 7.10 power and safety rows still list the supporting contributor as owner; mechanical rows list an inactive contributorBOM owner columns (platform lead)
22Docs siteThe deploy job verifies the live custom domainStep "Verify the live custom domain" fails with exit 127 since at least 11 Oct because the deploy job has no checkout; draft docs #49 fixes it. Drafts docs #46 and #47 cite older revisions (P-03 rev19.2 and rev19.4) than this roadmapdocs #49; refresh #46 and #47 to P-03 rev19.7

Source: P-03 rev19.7, E-01 rev1.4, BOM Issue 7.10 (corrected 24 Oct), P-02 rev19.2, decisions.yaml at 1c3f516, and main and open PRs of each repository at the heads in the footer · 24 Oct 2026

Data refresh, 24 Oct 2026

Every repository was re-read on 24 Oct 2026 (heads of main in the footer, open and merged PRs since 19 Oct, issues with their due dates from the issue body; no repository uses GitHub milestones). Review, CI and sign-off states are as recorded on 24 Oct.

Action plan status changes since 19 Oct

Step19 Oct24 OctSource
4NOT STARTEDMERGED AND TESTED.github #55 (1c3f516, 22 Oct) records SHARED-BASE
10IN PROGRESSIN REVIEWplatform-sw #90 opened (UI TwistStamped /ui/cmd_vel relay)
14NOT STARTEDIN PROGRESSui issues #31 to #37 opened (security hardening in progress)
25NOT STARTEDIN REVIEWplatform-sw #90 opened (stop lock)
Earlier refresh notes (19 Oct 2026)
  • Three draft PRs opened by @KARTHIKEYAN124 (release lead): release #12 (rc.1 built from pinned commit SHAs with verified checksums, OA-05), manifest #17 (SHA-pinned rc.1 release manifest, OA-39) and manifest #18 (pinned Jazzy driver sources and installation checks, OA-06). Effect: OA-05, OA-39 and OA-06 have fix work IN REVIEW (draft); the release item now lists these PRs; release owner @KARTHIKEYAN124 (release lead) (Team document: release and installation lead). openamrobot-release/pull/12 openamrobot-manifest/pull/17 openamrobot-manifest/pull/18
  • platform-sw #54 (behaviour server routed through the reactive motion layer) merged on 18 Oct after two change requests; it is the platform-sw main head 8a7a5b1. Effect: Already in the first snapshot; confirmed. openamr-platform-sw/pull/54
  • SiteConfigStatus: interfaces issue #27 and PR #28 (open, not draft) add SiteConfigStatus to NavigationStatus and bump CONTRACT_VERSION from 1 to 2; platform-sw #73 (open, not draft) produces it. Effect: Shown IN REVIEW in the interfaces and contracts map; contract version on main stays 1. openamrobot-interfaces/issues/27 openamrobot-interfaces/pull/28 openamr-platform-sw/pull/73
  • platform-fw #19 (2.0 controller I/O docs, open; @Evans-Kwashie (electrical and firmware lead) requested as reviewer), platform-fw issue #13 (pin the linorobot2 base commit for v0.0.1 and Gate A, open), platform-hw #30 (datasheets for the 2.0 pin map, open; one review comment from @Evans-Kwashie (electrical and firmware lead)). Effect: Statuses unchanged: IN REVIEW for #19 and #30; issue #13 open. openamr-platform-fw/pull/19 openamr-platform-fw/issues/13 openamr-platform-hw/pull/30
  • upperbody-sw #14 is still a draft at e5cf613 with two change requests from @panthera-momagdii (tech lead, UI reviewer). Effect: PR #14 stays IN REVIEW, not merged, not accepted. openamr-upperbody-sw/pull/14
  • Issue #35 (route all velocity sources through arbitration) is open; platform-fw issue #17 (E-01 safety state machine, Teensy 4.0 first, then STM32) is open. Effect: Arbitration stays IN PROGRESS (branch); the safety state machine is NOT STARTED in code (design draft only). openamr-platform-sw/issues/35 openamr-platform-fw/issues/17
  • Counts: 96 PRs merged 21 Sep to 19 Oct in 14 repositories (unchanged; two independent counts agree); 30 open PRs (was 27); 79 open issues in the 14 repositories (the first snapshot's 80 included one issue in a repository outside the 14). Effect: Merged-PR figure unchanged; open counts updated.
  • 20 Oct: the charging receiver is decided by @BotshareAI (project lead): the TZBOT WCM-500-24 is used on both robots; the WCM-300 is only the unit on release 001 today. Review of openamrobot-docs #48 by @panthera-momagdii (tech lead, UI reviewer): reactive motion layer terminology and the parameter-check classification applied. Effect: Charging leaves the open shared-base differences; Sheet A is to be updated. S12 now counts 7 contradictions and 6 observations. openamrobot-docs/pull/48
  • Main heads unchanged since the first snapshot (newest: .github 9109d3e, 19 Oct). Effect: No code on main changed; implementation statuses stand.

Progress in pictures

Area by stage

What this shows: how far each area has come through design, merged code, simulation test, bench and physical acceptance; the lower rows are the shared base, with whether release 001 evidence will carry over to 2.0.

How to read it: green check: reached; orange half circle: partly; red bar: fails; white dashed circle: not reached; grey: not applicable. No percentages are used.

Scroll sideways inside the diagram.

Area by stagedesigncode mergedsim testedbenchphysicalacceptancecarries over to2.0Base and navigationreachedpartlyfailsnot reachednot reachednot applicableDockingpartlypartlyfailsnot reachednot reachednot applicableReactive motion layer (software)partlypartlyfailsnot reachednot reachednot applicableOperator UIpartlypartlyfailsnot reachednot reachednot applicableUpper body and manipulationreachednot reachedpartlynot reachednot reachednot applicableFirmware (2.0 STM32)reachednot reachednot reachednot reachednot reachednot applicableInterfacesreachedreachednot applicablenot applicablenot applicablenot applicableEmbodied AIpartlypartlynot reachednot reachednot reachednot applicableRelease and docsreachedpartlynot applicablenot applicablenot applicablenot applicableShared: safety chainpartlynot applicablenot applicablenot reachednot reachedpartlyShared: chargingpartlynot applicablenot applicablenot reachednot reachedpartlyShared: E-stop wiring and logicpartlynot applicablenot applicablenot reachednot reachedpartlyShared: power distributionpartlynot applicablenot applicablenot reachednot reachedpartlyShared: proximity sensingpartlynot applicablenot applicablenot reachednot reachedno

Source: per-area deliverables and runtime layers on this page; equivalence table on the hardware page · 24 Oct 2026

rc.1 blocker board

What this shows: every rc.1 dependency grouped by proposed batch and owner, with counts.

How to read it: each box has a coloured left bar, a status chip with an icon and the status in words; batch dates are proposed targets from audit pass 2; items with no batch date have no date in any source.

19 items
rc.1 blockers by batch (proposed targets) and owner6 Nov: 6 items@skunal3318 (navigation lead) (1 items)Simulation body filter fixed on mainwith a URDF-derived testOA-47@skunal3318 (navigation lead);@fridayali (docking and robot description) (1 items)#35 option (b): docking commandsthrough the chain, collision monitorOA-04-P2 OA-68@parthkeshari (UI lead) (4 items)UI teleop, blocks and voice actionsenter an arbitrated input ahead ofOA-02-P2 OA-45-P2 OA-52 OA-62UI no longer starts its ownnavigation or mapping stackOA-03-P2Recording replay restricted tonon-command topicsOA-48UI command path hardeningOA-5013 Nov: 10 items@fridayali (docking and robot description) (3 items)Docking deadlines on the node clockOA-54Undock only from docked, cancellable,with rear coverageOA-53Simulated docking camera onbase_camera_link (Gemini 336L) andOA-59@skunal3318 (navigation lead) (4 items)Collision monitor and smoother undertheir own lifecycle managerOA-56Bounded startup with retriesOA-57Command timeout for the simulatedbaseOA-45-P2Stop and slowdown polygons; inflationat or above the inscribed radiusOA-35-P2@parthkeshari (UI lead) (2 items)UI command path hardening: accesscontrolOA-49Latched software stop with its ownlabel (not E-STOP)OA-16-P2@Tushargoel230 (upper-body model) (1 items)Lift as a planning joint; both-armsgroup; poses with limit marginOA-6420 Nov: 0 itemsno batch date: 3 items@KARTHIKEYAN124 (release lead) (1 items)Release reproducible from a manifestwith exact SHAs; drivers installableOA-05 OA-06 OA-39@skunal3318 (navigation lead) (1 items)Motion commands held at zero acrossE-stop and RESET until an explicitNR-03to be confirmed (1 items)Decision: does rc.1 run the TeensyGate A controller or the STM32OA-14
rc.1 blockers by batch6 Nov (6)Simulation body filter fixed on mainwith a URDF-derived testowner @skunal3318 (navigation lead)OA-47#35 option (b): docking commandsthrough the chain, collision monitorowner @skunal3318 (navigation lead); @fridayali (docking and robot description)OA-04-P2 OA-68UI teleop, blocks and voice actionsenter an arbitrated input ahead of theowner @parthkeshari (UI lead)OA-02-P2 OA-45-P2 OA-52 OA-62UI no longer starts its own navigationor mapping stackowner @parthkeshari (UI lead)OA-03-P2Recording replay restricted tonon-command topicsowner @parthkeshari (UI lead)OA-48UI command path hardeningowner @parthkeshari (UI lead)OA-5013 Nov (10)Docking deadlines on the node clockowner @fridayali (docking and robot description)OA-54Undock only from docked, cancellable,with rear coverageowner @fridayali (docking and robot description)OA-53Simulated docking camera onbase_camera_link (Gemini 336L) andowner @fridayali (docking and robot description)OA-59Collision monitor and smoother undertheir own lifecycle managerowner @skunal3318 (navigation lead)OA-56Bounded startup with retriesowner @skunal3318 (navigation lead)OA-57Command timeout for the simulated baseowner @skunal3318 (navigation lead)OA-45-P2Stop and slowdown polygons; inflationat or above the inscribed radiusowner @skunal3318 (navigation lead)OA-35-P2UI command path hardening: accesscontrolowner @parthkeshari (UI lead)OA-49Latched software stop with its ownlabel (not E-STOP)owner @parthkeshari (UI lead)OA-16-P2Lift as a planning joint; both-armsgroup; poses with limit marginowner @Tushargoel230 (upper-body model)OA-6420 Nov (0)no batch date (3)Release reproducible from a manifestwith exact SHAs; drivers installableowner @KARTHIKEYAN124 (release lead)OA-05 OA-06 OA-39Motion commands held at zero acrossE-stop and RESET until an explicitowner @skunal3318 (navigation lead)NR-03Decision: does rc.1 run the Teensy GateA controller or the STM32 (register:owner to be confirmedOA-14

Source: audit pass 2 top 20 actions and the rc.1 table on this page · 24 Oct 2026

Requirement coverage by area

What this shows: the 85 traceability rows of each area as one stacked bar, split by coverage class.

How to read it: each segment is one coverage class with its count; icons and the legend under the bars name the classes; the number after the bar is the area total.

Requirement coverage by area (85 rows)upper body and manipulation42621328hardware21417navigation8211safety chain8210perception36embodied AI215firmware23docking2docs and release2operator UI1implemented and tested in simulationimplemented, untestedpartially implementeddocumented onlymissingcontradictedneeds hardware, not checkable in simulationout of scope this pass
Requirement coverage by area (85 rows)upper body and manipulation (28)461328hardware (17)1417navigation (11)811safety chain (10)8210perception (6)6embodied AI (5)5firmware (3)23docking (2)2docs and release (2)2operator UI (1)1implemented and tested in simulationimplemented, untestedpartially implementeddocumented onlymissingcontradictedneeds hardware, not checkable in simulationout of scope this pass

Source: audit pass 2 traceability (85 rows) · 24 Oct 2026

Merged PR activity since 21 Sep

What this shows: how many pull requests were merged per week in each repository.

How to read it: darker cells mean more merged PRs; the number in each cell is the count; a merged PR is not a tested product change.

Scroll sideways inside the diagram.

Merged PRs per week by repository (96 since 21 Sep)21 Sep to 27 Sep12 PRs28 Sep to 04 Oct36 PRs05 Oct to 11 Oct11 PRs12 Oct to 18 Oct36 PRs19 Oct to 19 Oct1 PRsopenamr-platform-sw349.github23171openamrobot-interfaces652openamrobot-docs624openamr-platform-hw314openamrobot-ui124openamrobot-manipulation132openamrobot-manifest211openamr-upperbody-fw211openamr-upperbody-sw22openamr-upperbody-hw21openamr-platform-fw21openamrobot-comm1openamrobot-release1

Source: GitHub search and per-repository PR lists, 19 Oct 2026 · 24 Oct 2026

Risk matrix

What this shows: the main risks to rc.1 and v2.0.0 placed by likelihood and impact.

How to read it: top right is worst; each dot is a risk ID listed below the matrix; likelihood and impact are this review's assessment (opinion), the evidence is linked.

Risk matrix (this review's assessment)R2R1R3R4R7R8R6R5highlowmediummediumlowhighlikelihoodimpact on rc.1 and v2.0.0

Source: this review's assessment, based on the linked evidence · 24 Oct 2026

Per area

Delivery status, runtime evidence (with the tested branch or commit) and physical acceptance are separate columns. Physical acceptance is none recorded everywhere.

Base and navigation owner @skunal3318 (navigation lead)

Nav2 output passes through the smoother and collision monitor; reactive stopping has not been demonstrated (S2). #54 routed recoveries through the chain. The simulation on main cannot navigate, the reactive layer covers only Nav2, and there is no 2.0 real-robot bringup.

DeliverableDeliveryRuntime evidence (tested setup)PhysicalFindings · closes when
Nav2 chain (controller, smoother, collision monitor)MERGED UNTESTEDruntime: fails in simulation
main 8a7a5b1
physical: none recordedOA-47 OA-35-P2
Rerun S1 and S2 on main
Recoveries through the chain (#54)MERGED AND TESTEDruntime: works in simulation with fixture
main 8a7a5b1 + fixture
physical: none recorded
-
Navigation status producerMERGED AND TESTEDruntime: not run
unit tests on main (113)
physical: none recordedOA-58
Status flags a non-monitor /cmd_vel publisher at runtime
Motion-source arbitration (#35)IN PROGRESSruntime: works on branch or prototype
review/issue35-arbitration c25ceef
physical: none recordedOA-04-P2 OA-02-P2
S3, S4 and S7 reruns with a single protected /cmd_vel publisher
2.0 real-robot bringupNOT STARTEDruntime: not run
-
physical: none recordedOA-17
Launch test: TF single-rooted on the 2.0 profile

Merged work

Open work

Runtime evidence

  • runtime: fails in simulation S1 main 8a7a5b1
  • runtime: works in simulation with fixture S1 main + F1 to F3
  • runtime: works in simulation with fixture S2 no contact; monitor never engaged
  • runtime: works in simulation with fixture S6 stop 0.79 s for a Nav2 goal; no latch

Simulation at about 0.1 real-time factor; not safety evidence.

Requirement coverage

Open blockers

OA-47 · scenario S1 · code openamr-platform-sw/ros2/src/openamrobot_nav2/config/scan_body_filter.yaml:1 · owner @skunal3318 (navigation lead) · closes when: Rerun S1 on main: 3 of 3 goals; a test fails when the mask covers the forward sectorOA-56 · scenario S7 · code openamr-platform-sw/ros2/src/openamrobot_nav2/launch/navigation_launch.py · owner @skunal3318 (navigation lead) · closes when: Rerun S7b: after killing controller_server the monitor stays active and zero velocity holdsOA-57 · scenario S1, S11 · code openamr-platform-sw/ros2/src/openamrobot_bringup/launch/bringup.launch.py · owner @skunal3318 (navigation lead) · closes when: S11 extended to 10 starts: all reach active within 120 s sim timeOA-35-P2 · scenario S2 · code openamr-platform-sw/ros2/src/openamrobot_nav2/config/nav2_params.yaml:177 · owner @skunal3318 (navigation lead) · closes when: Rerun S2: clearance at least 0.25 m; collision monitor engages in the barrier testNR-03 · owner @skunal3318 (navigation lead) · closes when: After RESET, no motion from any source until an explicit operator release; verified in simulation and on the bench
Docking owner @fridayali (docking and robot description)

Tag detection is upstream apriltag_ros; the dock_trigger.py sequencer is custom, has no tests and no cancel. DockingStatus is issue #33 (no PR). No Use Case 1 site-marker alignment.

DeliverableDeliveryRuntime evidence (tested setup)PhysicalFindings · closes when
dock_trigger sequencerMERGED UNTESTEDruntime: fails in simulation
main + fixture; prototype
physical: none recordedOA-04-P2 OA-53 OA-54 OA-68
Rerun S3: 5 of 5 docked
Docking retuned for Gemini 336LIN REVIEWruntime: not run
PR #53 draft
physical: none recordedOA-59
S10 and S3 pass on base_camera_link
DockingStatus (issue #33)NOT STARTEDruntime: not run
-
physical: none recorded
Status at 2 Hz plus on change; docked and charging separate
Site ArUco alignment (Use Case 1)NOT STARTEDruntime: not run
-
physical: none recordedOA-46
Align on site markers in simulation to +/-1 cm and +/-1 deg

Merged work

  • No product PR merged in this area since 21 Sep.

Open work

Runtime evidence

  • runtime: fails in simulation S3 main, fixture
  • runtime: works on branch or prototype S3 #35 c25ceef: single publisher; 0 of 2 docked
  • runtime: fails in simulation S7 (c) drove into the dock after dock_trigger was killed

Simulation at about 0.1 real-time factor; not safety evidence.

Requirement coverage

Open blockers

OA-04-P2 · scenario S3 · code openamr-platform-sw/ros2/src/openamrobot_docking/scripts/dock_trigger.py:833 · owner @skunal3318 (navigation lead) · closes when: Rerun S3: 5 of 5 docked; collision_monitor the sole /cmd_vel publisher; zero lifecycle transitionsOA-68 · scenario S3 · code openamr-platform-sw/ros2/src/openamrobot_docking/scripts/dock_trigger.py:833 · owner @fridayali (docking and robot description) · closes when: Rerun S3: reported monitor state equals the lifecycle state in every phaseOA-53 · scenario S3 · code openamr-platform-sw/ros2/src/openamrobot_docking/scripts/dock_trigger.py:942 · owner @fridayali (docking and robot description) · closes when: Undock when not docked is refused; cancel stops within 0.5 s; no automatic undock after a failed dockOA-54 · scenario S3 · code openamr-platform-sw/ros2/src/openamrobot_docking/scripts/dock_trigger.py:1800 · owner @fridayali (docking and robot description) · closes when: Rerun S3 at 0.1 real-time factor with the same parameters as at 1.0: no wall-clock timeoutOA-59 · scenario S10 · code openamr-platform-sw/ros2/src/openamrobot_description/urdf/robo_urdf.urdf.xacro:696 · owner @fridayali (docking and robot description) · closes when: Rerun S10: /rgb_image frame base_camera_link; S3 passes with it
Safety chain owner to be confirmed

Design is final in E-01 rev1.4 and the register (PNOZ s3, two E-stops, GX11CAC K1/K2, single RESET, charge inhibit). Contactor order BUY-32 is blocked on datasheet checks and supply. No repository on main carries the E-01 chain; drafts are open. No bench or physical record.

DeliverableDeliveryRuntime evidence (tested setup)PhysicalFindings · closes when
E-01 rev1.4 safety chain designDOCUMENTED ONLYruntime: not run
-
physical: none recordedOA-23
E-01 chain on main of platform-hw with two human approvals
K1/K2 GX11CAC procurement (BUY-32)BLOCKEDruntime: not run
-
physical: none recorded
Datasheet checks pass and a firm quote exists
Supervised safety-chain bench testNOT STARTEDruntime: not run
-
physical: none recordedOA-38
Bench record: each E-stop cuts the SAFE bus; reset with E-stop pressed does nothing

Merged work

  • .github #52 Register brought to P-03 rev19.6, E-01 rev1.3 and BOM Issue 7.10 (GX11CAC, item 22 I/O) (merged 2026-10-19)
  • .github #48 Register records P-03 item 20 (E-stop scope, single RESET, wireless charging) (merged 2026-10-16)

Open work

Runtime evidence

  • runtime: not run - hardware chain; nothing to simulate

Requirement coverage

Open blockers

OA-23 · code openamr-platform-hw (main) · owner to be confirmed · closes when: Register check passes on each repository carrying the E-01 rev1.4 chain; two human approvalsOA-38 · owner to be confirmed · closes when: Evidence record location and procedure exist; supervised bench record attached
Operator UI owner @parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)

The UI works as an operator tool, but its teleop, blocks, Maps page and replay are motion sources outside the platform chain. Web tests: 0. Reporting Mode: no code yet.

DeliverableDeliveryRuntime evidence (tested setup)PhysicalFindings · closes when
Safe UI command pathIN PROGRESSruntime: fails in simulation
UI c5558ad5 + platform fixture
physical: none recordedOA-02-P2 OA-03-P2 OA-48 OA-45-P2
S4, S5, S7a reruns pass
Stop (software) with lockNOT STARTEDruntime: works in simulation with fixture
S6 (Nav2 path only)
physical: none recordedOA-16-P2
S6 plus: no motion from any source until release
UI access control and command path hardeningNOT STARTEDruntime: not run
-
physical: none recordedOA-49 OA-50
Access-control tests pass
Web testsNOT STARTEDruntime: not run
0 tests
physical: none recordedOA-24
More than 0 web tests run in CI
Reporting ModeDOCUMENTED ONLYruntime: not run
-
physical: none recorded
Full-screen reporting session recorded

Merged work

Open work

Runtime evidence

  • runtime: fails in simulation S4 UI c5558ad5
  • runtime: fails in simulation S5 replay and second controller
  • runtime: works in simulation with fixture S6 stop for a Nav2 goal
  • runtime: fails in simulation S7 (a) 2.25 m after UI loss

Simulation at about 0.1 real-time factor; not safety evidence.

Requirement coverage

Open blockers

OA-02-P2 · scenario S4 · code openamrobot-ui/web/src/shared/constants/index.js:7 · owner @parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks) · closes when: Rerun S4 and S7a: rosbridge is not a /cmd_vel publisher; robot stops before the wall; stops within 0.5 s after the UI connection dropsOA-03-P2 · scenario S5 · owner @parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks) · closes when: Rerun S5: build_map leaves one controller_server; platform map_server and AMCL states unchangedOA-48 · scenario S5 · code location withheld (security) · owner @parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks) · closes when: Replay of a recording that contains command topics: robot travel 0OA-49 · scenario S4, S5 · code location withheld (security) · owner @parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks) · closes when: Security review of the UI backend passesOA-50 · scenario S5 · code location withheld (security) · owner @parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks) · closes when: Security review of the UI backend passesOA-16-P2 · scenario S6 · code openamrobot-ui/web/src/components/StatusBar.jsx:63 · owner @parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks) · closes when: Rerun S6: after stop, UI teleop and docking produce no motion until release; button not labelled E-STOP
Upper body and manipulation owner @Tushargoel230 (upper-body model); other owners to be confirmed

PR #14 is a draft: IN REVIEW, not merged, not accepted. Head e5cf613 adds evidence and docs on top of code fe2e821; the PR description still names 49d2368. Remaining WARN: M07 (four upstream joint limits) and V01 (no human visual check). Risk: intermittent bridge crash on shutdown, cause not investigated.

PR #14 evidence (openamr-upperbody-sw) IN REVIEW

Draft: IN REVIEW, not merged, not accepted. Head e5cf613 (19 Oct 2026). The PR description still names 49d2368.

Latest batch on upper-body code fe2e821 with platform-sw dfd44a5: A6 25 PASS / 3 WARN / 0 FAIL and A7 14 PASS / 2 WARN / 0 FAIL, 3 of 3 runs each.

Cumulative on platform-sw dfd44a5: A7 9 runs, 2 failed (18 Oct: parameter_bridge base_joint_states_bridge SIGSEGV during stop, cause not investigated per the test index), the last 6 passed.

Risk: Intermittent bridge crash, cause not investigated. Remaining WARN: M07 (four upstream joint limits), V01 (no human visual check).

Separate from audit pass 2 S8 (48 of 48 plans on mock hardware, branch followups/a6-a7-49d2368). Owner @Tushargoel230 (upper-body model). Sources: PR #14, branch test index. Simulation at about 0.1 real-time factor; not safety evidence.

DeliverableDeliveryRuntime evidence (tested setup)PhysicalFindings · closes when
Combined base, lift and arm model with MoveIt (PR #14)IN REVIEWruntime: works on branch or prototype
PR #14 head e5cf613, code fe2e821, platform-sw dfd44a5 (see PR #14 evidence)
physical: none recordedOA-12
A6 and A7 green on the exact head with M07 and V01 closed, bridge crash investigated; merged
Combined model with MoveIt on mock hardware (audit pass 2 S8, separate from PR #14 evidence)IN REVIEWruntime: works on mock hardware
followups/a6-a7-49d2368 a490503
physical: none recordedOA-64
Rerun S8 with the lift in the planning group: 48 of 48 and every margin above 0.05 rad
Lift as a planned jointNOT STARTEDruntime: not run
-
physical: none recordedOA-64 OA-13
S8 with the lift in the group
Base-arm and lift interlocksNOT STARTEDruntime: not run
-
physical: none recordedOA-37
Integration test both directions
A5/I2 device package (PR #20)IN REVIEWruntime: not run
draft; hosted tests skipped
physical: none recorded
Schema and conformance tests run on the PR head

Merged work

Open work

Runtime evidence

  • runtime: works on mock hardware S8 audit pass 2: followups/a6-a7-49d2368 a490503, 48 of 48 plans
  • runtime: works on branch or prototype A6/A7 PR #14 head e5cf613, upper-body code fe2e821 with platform-sw dfd44a5: latest batch A6 25/3/0 and A7 14/2/0 (3 of 3 each); cumulative A7 on dfd44a5 9 runs, 2 failed

Simulation at about 0.1 real-time factor; not safety evidence.

Requirement coverage

Open blockers

OA-64 · scenario S8 · code PR #14 (branch evidence) · owner @Tushargoel230 (upper-body model) · closes when: Rerun S8 with the lift in the planning group: 48 of 48 and every margin above 0.05 radOA-37 · code openamr-platform-sw (main) · owner to be confirmed · closes when: Integration test both directions: arm goal rejected while base moves; base goal rejected while arm movesOA-40 · code openamrobot-manipulation/integration/README.md · owner to be confirmed · closes when: Planning test passes without strict xfail at an approved acceleration limit set
Firmware and base controller owner @Evans-Kwashie (electrical and firmware lead)

Main has the experimental Teensy Gate A overlay with a 200 ms /cmd_vel watchdog. The STM32H723ZG port is not on main; the I/O allocation is documented and in review (#19).

DeliverableDeliveryRuntime evidence (tested setup)PhysicalFindings · closes when
Teensy Gate A overlay (200 ms watchdog)MERGED UNTESTEDruntime: not run
-
physical: none recorded
Gate A host-migration suite passes on 30 Oct
STM32H723ZG port and I8 Gate BNOT STARTEDruntime: not run
-
physical: none recordedOA-14
I8 Gate B evidence on the bench
2.0 controller I/O documentation (#19)IN REVIEWruntime: not run
-
physical: none recordedOA-19
Merged with the 16 Oct IMU pose

Merged work

Open work

Runtime evidence

  • runtime: not run - no firmware runtime evidence; Teensy watchdog is a code statement

Requirement coverage

Open blockers

OA-14 · code openamr-platform-fw/boards/stm32/.gitkeep · owner @Evans-Kwashie (electrical and firmware lead) · closes when: I8 Gate B evidence on the NUCLEO-H723ZG bench (owner implements; agents do not write safety logic)
Simulation owner @nikgolobo (simulation checks)

Gazebo Harmonic runs the base and the combined model. The simulated model is rated NEEDS WORK: body filter, legacy docking camera, LiDAR range_min 0.40 m, no command timeout, near-field sensors without consumers.

DeliverableDeliveryRuntime evidence (tested setup)PhysicalFindings · closes when
Simulated 2.0 robot modelMERGED UNTESTEDruntime: fails in simulation
main 8a7a5b1
physical: none recordedOA-47 OA-59 OA-69 OA-45-P2
S1, S7, S10 reruns pass on main

Merged work

Open work

Runtime evidence

  • runtime: works in simulation with fixture S9 REP 105 tree
  • runtime: fails in simulation S10 camera on legacy frame; near-field unused
  • runtime: works in simulation with fixture S11 start and stop cycles
  • runtime: fails in simulation S7 simulated base keeps the last command

Simulation at about 0.1 real-time factor; not safety evidence.

Requirement coverage

Open blockers

OA-47 · scenario S1 · code openamr-platform-sw/ros2/src/openamrobot_nav2/config/scan_body_filter.yaml:1 · owner @skunal3318 (navigation lead) · closes when: Rerun S1 on main: 3 of 3 goals; a test fails when the mask covers the forward sectorOA-45-P2 · scenario S7 · code openamr-platform-sw/ros2/src/openamrobot_description/urdf/gazebo_control.xacro:5 · owner @skunal3318 (navigation lead) · closes when: Rerun S7a and S7c: simulated base stops within the command timeout after publisher lossOA-59 · scenario S10 · code openamr-platform-sw/ros2/src/openamrobot_description/urdf/robo_urdf.urdf.xacro:696 · owner @fridayali (docking and robot description) · closes when: Rerun S10: /rgb_image frame base_camera_link; S3 passes with itOA-69 · scenario S10, S12 · code openamr-platform-sw/ros2/src/openamrobot_nav2/config/nav2_params.yaml · owner @skunal3318 (navigation lead) · closes when: Collision monitor and local costmap list the ToF and ultrasonic sources, or the register records their role
Interfaces owner to be confirmed

Navigation health contract merged and tested. I1 (manipulation), I8 (base status) and DockingStatus contracts are not in the repository.

DeliverableDeliveryRuntime evidence (tested setup)PhysicalFindings · closes when
Navigation health contractMERGED AND TESTEDruntime: works in simulation on main
interfaces 87ab8a9 CI (interface tests)
physical: none recorded
-
I1 manipulation and I8 base-status contractsDOCUMENTED ONLYruntime: not run
-
physical: none recordedOA-15
Proposed contracts merged with consumers listed

Merged work

Open work

Runtime evidence

  • runtime: works in simulation on main - exchange tests in CI on Fast DDS and Cyclone DDS (interface test, not robot runtime)

Simulation at about 0.1 real-time factor; not safety evidence.

Requirement coverage

Open blockers

OA-15 · code openamrobot-interfaces (main) · owner to be confirmed · closes when: I1 and I8 Proposed contracts build with consumers listedOA-08 · code openamrobot-ui/ros2/src/openamr_ui_msgs/package.xml:3 · owner @parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks) · closes when: colcon build at the workspace root exits 0
Embodied AI owner to be confirmed

Interfaces and the C9 capture schema exist (merged 2 Oct, still Proposed). No trained policy, validated dataset or imitation-learning task is demonstrated.

Exists

  • C9 whole-body capture schema (interfaces PR #16, merged 2 Oct; contract Proposed)
  • Capture station items in the BOM (offboard)

Not demonstrated

  • Recorder and calibrated capture session
  • Dataset QA (C10 draft only)
  • Imitation-learning baseline (C11, due 6 Nov)
  • One timebase across streams (UC1-61)
DeliverableDeliveryRuntime evidence (tested setup)PhysicalFindings · closes when
C9 whole-body capture schemaMERGED AND TESTEDruntime: not run
schema tests in interfaces CI
physical: none recorded
Contract accepted by the owner; a capture session recorded
C10 dataset quality gateIN REVIEWruntime: not run
draft PR #25
physical: none recorded
Each check has a corrupted-fixture test
Imitation-learning baselineNOT STARTEDruntime: not run
-
physical: none recorded
Held-out evaluation recorded

Merged work

  • openamrobot-interfaces #16 C9 whole-body capture schema (LeRobotDataset), merged 2 Oct; contract still Proposed (merged 2026-10-02)

Open work

Runtime evidence

  • runtime: not run - no capture or policy run

Requirement coverage

Open blockers

none recorded

Docs and release owner @KARTHIKEYAN124 (release lead) (release); documentation owner to be confirmed

The register content is current (P-03 rev19.7 decisions at 1c3f516; its label still says rev19.6, drift 1; BOM 7.10). The release builder cannot reproduce rc.1; the manifest tracks main; public docs still carry some superseded values.

DeliverableDeliveryRuntime evidence (tested setup)PhysicalFindings · closes when
Reproducible rc.1 releaseIN REVIEWruntime: not run
release #12, manifest #17 and #18 (all draft, 19 Oct); release #9 (navigation install evidence)
physical: none recordedOA-05 OA-39 OA-06
Two builds from the rc.1 manifest give identical checksums
Decisions register with the P-03 rev19.7 decisions (1c3f516)MERGED AND TESTEDruntime: not run
.github 9109d3e CI
physical: none recordedOA-01 OA-07
-

Merged work

Open work

Runtime evidence

  • runtime: not run - release builder not run for rc.1

Requirement coverage

Open blockers

OA-05 · code openamrobot-release/release-config.json:1 · owner to be confirmed · closes when: Two builds from the same rc.1 manifest give identical checksumsOA-06 · code openamr-platform-sw/ros2/src/openamrobot_drivers/package.xml · owner to be confirmed · closes when: Clean-machine rosdep check exits 0; root colcon build passesOA-39 · code openamrobot-manifest/openamrobot.repos:5 · owner to be confirmed · closes when: Release manifest with exact SHAs exists and feeds the builderOA-20 · code openamrobot-docs/docs/reference/openamrobot-2/index.md:39 · owner to be confirmed · closes when: Closure test to be defined by the ownerOA-21 · code openamrobot-docs/docs/assets/hardware/openamrobot2-general-arrangement.html:53 · owner to be confirmed · closes when: Closure test to be defined by the owner

Traceability: 85 rows

75 Use Case 1 requirements (baseline rev18.5) plus P-03 rev19.7 items 13 to 22 (item 23, the shared base, is tracked in section C of the overview and in the register), with the audit pass 2 classification. Requirement texts are short paraphrases; site-specific wording is neutralised (Use Case 1 site data is restricted).

needs hardware, not checkable in simulation: 26missing: 20partially implemented: 16implemented, untested: 6documented only: 5out of scope this pass: 5implemented and tested in simulation: 4contradicted: 3

IDRequirementAreaStatusImplementationEvidenceAcceptance testOwnerNeeded for

What is next

Batch dates of 6, 13 and 20 Nov are proposed targets from audit pass 2 unless the plan or the register confirms the date.

  1. 2026-10-30
    Gate A confirmed date
    • Jetson with the existing Teensy and ZBLD/PWM drivetrain: command, odometry, RPLIDAR S3, Nav2, functional 200 ms /cmd_vel watchdog, recovery and safety-chain status telemetry (functional) pass the host-migration suite
    • UI: Stop (software) replaces the E-STOP label, software stop lock, basic command routing and stop tests (@nikgolobo (simulation checks) checks in simulation that UI motion cannot bypass an active stop)

    Source: P-02 rev19.2 (Gate A date and base scope; electrical and safety release the same day); UI scope agreed in coordination on 19 Oct; only the Stop (software) label is on main (ui #38)

  2. 2026-11-06
    Batch 1 proposed target
    • UI teleop, blocks and voice into an arbitrated input with a 0.25 s timeout
    • #35 option (b) for docking
    • UI-side navigation and mapping launches removed
    • Replay restricted
    • UI command path hardened
    • Simulation body filter fixed on main

    Source: Audit pass 2 top 20 actions 1 to 6 (proposed target). Confirmed separately: I8 freeze and STM32 go/no-go 6 Nov, fallback Teensy (both P-02 rev19.2, not the register); simulation body filter due 6 Nov in platform-sw #74

  3. 2026-11-13
    Batch 2 proposed target
    • UI access control
    • Reactive motion layer under its own lifecycle manager
    • Bounded startup
    • Docking on the node clock
    • Undock only from docked, cancellable
    • Simulated base command timeout
    • Stop and slowdown polygons
    • Latched software stop
    • Lift as a planning joint
    • Simulated camera on base_camera_link

    Source: Audit pass 2 top 20 actions 7 to 16 (proposed target). Confirmed on 13 Nov by issue bodies: lift as planned joint (upperbody-sw #17), joint clamp default (#18), lift interlock (platform-fw #20), micro-ROS transport (#21), base and arm exclusion (manipulation #24); Gate B regression 13 to 20 Nov (P-02 rev19.2)

  4. 2026-11-20
    Batch 3 and v2.0.0-rc.1 confirmed date
    • Navigation status from the live graph
    • Reverse disabled until rear coverage; tight goal checker
    • Voice plans bounded server-side
    • Real route outcomes and stale pose shown in the UI
    • v2.0.0-rc.1 published as a GitHub pre-release

    Source: rc.1 date: register RELEASE-MILESTONES, P-03 item 12. Batch 3 items: audit pass 2 actions 17 to 20 (proposed target). STM32 Gate B regression 13 to 20 Nov (P-02 F9)

  5. 2026-11-23 to 2026-12-18
    Physical integration, testing and acceptance confirmed date
    • Supervised safety-chain tests (E-stop, contactors, brakes, reset, charge interlock)
    • 26 traceability rows that need hardware
    • Physical stopping tests that set the accepted operating speed

    Source: P-03 item 12; Team document

  6. 2026-12-18
    v2.0.0 confirmed date
    • Final release

    Source: Register RELEASE-MILESTONES; P-03 item 12

Findings register

Severity and confidence are separate fields. A verified finding is not a fix. Evidence kind says whether a scenario or test ran or whether the finding comes from reading code. Security findings are described at area level only.

IDFindingSeverity, confidenceEvidence kindAreaScenarioPublic code locationOwnerClosure testStaterc.1Source
OA-01Decisions register recorded the withdrawn LEV100H contactors instead of the GX11CACblocker
verified (source conflict)
code review, not runSafety chain-.github/decisions.yamlto be confirmedcheck_decisions.py flags LEV100H as current; register validatesclosed on main
Closed on main by .github PR #52 (9109d3e, 19 Oct): SAFETY-PROCUREMENT now records GX11CAC with LEV100H superseded. Checked in this review by reading decisions.yaml.
yesaudit pass 1
OA-02Operator UI publishes teleop and block commands on the final velocity topic, past the smoother and collision monitorblocker
verified
code review, not runOperator UI-openamrobot-ui/web/src/shared/constants/index.js:7@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)Rerun S4: UI command limited by the smoother and stopped by the collision monitoropenyesaudit pass 1
OA-02-P2UI teleop drove the simulated robot into a wall at 0.2 m/s (S4)blocker
verified
runtimeOperator UIS4openamrobot-ui/web/src/shared/constants/index.js:7@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)Rerun S4 and S7a: rosbridge is not a /cmd_vel publisher; robot stops before the wall; stops within 0.5 s after the UI connection dropsopenyesaudit pass 2
OA-03Operator UI Maps page starts its own navigation stack outside the platform command chainblocker
verified
code review, not runOperator UI-openamrobot-ui/ros2/src/openamr_ui_package/launch/move_base_launch.py:18@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)Rerun S5: build_map leaves one controller_server; platform map_server and AMCL states unchangedopenyesaudit pass 1
OA-03-P2UI Maps page started a second navigation controller (S5)blocker
verified
runtimeOperator UIS5-@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)Rerun S5: build_map leaves one controller_server; platform map_server and AMCL states unchangedopenyesaudit pass 2
OA-04Docking publishes the final velocity command and switches the collision monitor off during the dockblocker
verified
code review, not runDocking-openamr-platform-sw/ros2/src/openamrobot_docking/config/dock_trigger.yaml:170@skunal3318 (navigation lead)Rerun S3: 5 of 5 docked; collision_monitor the sole /cmd_vel publisher; zero lifecycle transitionsopenyesaudit pass 1
OA-04-P2Docking switched the collision monitor off; the navigation stack reset mid-dock (S3)blocker
verified
runtimeDockingS3openamr-platform-sw/ros2/src/openamrobot_docking/scripts/dock_trigger.py:833@skunal3318 (navigation lead)Rerun S3: 5 of 5 docked; collision_monitor the sole /cmd_vel publisher; zero lifecycle transitionsopen
fix: IN PROGRESS #35 branch
yesaudit pass 2
OA-05Release builder cannot reproduce v2.0.0-rc.1 (no pinned SHAs, hand-supplied archives)blocker
verified
code review, not runDocs and release-openamrobot-release/release-config.json:1to be confirmedTwo builds from the same rc.1 manifest give identical checksumsopen
fix: IN REVIEW release #12 (draft)
yesaudit pass 1
OA-06LiDAR and micro-ROS agent drivers cannot be installed from the manifest plus rosdepblocker
verified
runtime (build, test or smoke run)Docs and release-openamr-platform-sw/ros2/src/openamrobot_drivers/package.xmlto be confirmedClean-machine rosdep check exits 0; root colcon build passesopen
fix: IN REVIEW manifest #18 (draft)
yesaudit pass 1
OA-48Recording replay can drive the robot; replay output needs restricting (S5)blocker
verified
area-level (detail withheld for security)Operator UIS5withheld (security)@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)Replay of a recording that contains command topics: robot travel 0openyesaudit pass 2
OA-49UI command path hardening: access controlblocker
verified
area-level (detail withheld for security)Operator UIS4, S5withheld (security)@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)Security review of the UI backend passesopenyesaudit pass 2
OA-50UI command path hardeningblocker
verified
area-level (detail withheld for security)Operator UIS5 (code path)withheld (security)@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)Security review of the UI backend passesopenyesaudit pass 2
OA-07Decisions register was four P-03 revisions behind (rev19.2, BOM 7.8)should-fix
verified (source conflict)
code review, not runDocs and release-.github/decisions.yamlto be confirmedRegister in_force is P-03 rev19.6 and BOM Issue 7.10closed on main
Closed on main by .github PR #52 (9109d3e, 19 Oct): in_force P-03 rev19.6, BOM Issue 7.10. Checked in this review.
yesaudit pass 1
OA-08Workspace does not build at its root: openamr_ui_msgs exists in two repositoriesshould-fix
verified
runtime (build, test or smoke run)Operator UI-openamrobot-ui/ros2/src/openamr_ui_msgs/package.xml:3@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)colcon build at the workspace root exits 0openyesaudit pass 1
OA-09Three lint tests fail locally on main; CI does not lint those packagesshould-fix
verified
runtime (build, test or smoke run)Base and navigation-openamr-platform-sw/ros2/src/openamrobot_nav2/launch/navigation_launch.py:228@skunal3318 (navigation lead)Closure test to be defined by the owneropennoaudit pass 1
OA-10ToF frames at x +/-0.399 m in the URDF; register and P-03 give +/-0.390 mshould-fix
verified
code review, not runBase and navigation-openamr-platform-sw/ros2/src/openamrobot_description/urdf/sensors.xacro:125to be confirmedFrame check in CI against the register passesopennoaudit pass 1
OA-11Ultrasonic frames at x 0.3906 / -0.3886 m against the P-03 nominal +/-0.390 m (open item)should-fix
verified
code review, not runBase and navigation-openamr-platform-sw/ros2/src/openamrobot_description/urdf/sensors.xacro:116to be confirmedOwner decision recorded; frame check passesopennoaudit pass 1
OA-12Upper body on main is a kinematic skeleton: no arms, no ros2_control, not attached to the baseshould-fix
verified
code review, not runUpper body and manipulation-openamr-upperbody-sw/ros2/src/openamrobot_upperbody_description/urdf/openamrobot_upperbody.urdf.xacro:1@Tushargoel230 (upper-body model)PR #14 merged with A6 and A7 green on its exact headopenyesaudit pass 1
OA-14No 2.0 base-controller firmware on main (STM32 port, safety-chain diagnostic I/O, BMS, traction are placeholders)should-fix
verified
code review, not runFirmware and base controller-openamr-platform-fw/boards/stm32/.gitkeep@Evans-Kwashie (electrical and firmware lead)I8 Gate B evidence on the NUCLEO-H723ZG bench (owner implements; agents do not write safety logic)openyesaudit pass 1
OA-15I1 manipulation and I8 base-status contracts are not in the interfaces repositoryshould-fix
verified
code review, not runInterfaces-openamrobot-interfaces (main)to be confirmedI1 and I8 Proposed contracts build with consumers listedopenyesaudit pass 1
OA-16UI software stop is labelled E-STOP and does not latchshould-fix
verified
code review, not runOperator UI-openamrobot-ui/web/src/components/StatusBar.jsx:63@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)UI shows Stop (software); stop latches against every sourceopenyesaudit pass 1
OA-16-P2UI stop works for navigation goals but does not latch; any direct source resumes (S6)should-fix
verified
runtimeOperator UIS6openamrobot-ui/web/src/components/StatusBar.jsx:63@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)Rerun S6: after stop, UI teleop and docking produce no motion until release; button not labelled E-STOPopenyesaudit pass 2
OA-17Only real-robot bringup is the Gate A path with hand-set static transformsshould-fix
verified
code review, not runBase and navigation-openamr-platform-sw/ros2/src/openamrobot_bringup/launch/real_bringup.launch.py:78@skunal3318 (navigation lead)Launch test: TF tree single-rooted at map, odom, base_footprint on the 2.0 real profileopenyesaudit pass 1
OA-18Hardware repository states superseded base camera and IMU positionsshould-fix
verified
code review, not runDocs and release-openamr-platform-hw/product-architecture.md:31to be confirmedClosure test to be defined by the owneropennoaudit pass 1
OA-19Firmware I/O page states the superseded IMU positionshould-fix
verified
code review, not runFirmware and base controller-openamr-platform-fw/docs/architecture/base-controller-2-0-io.md:30@Evans-Kwashie (electrical and firmware lead)Closure test to be defined by the owneropennoaudit pass 1
OA-20Public docs and the dark-store simulation source carry pre-16 Oct LiDAR and camera valuesshould-fix
verified
code review, not runDocs and release-openamrobot-docs/docs/reference/openamrobot-2/index.md:39to be confirmedClosure test to be defined by the owneropennoaudit pass 1
OA-21Public assets show the superseded fixed-mast arrangement and LEV100 contactors without a labelshould-fix
verified
code review, not runDocs and release-openamrobot-docs/docs/assets/hardware/openamrobot2-general-arrangement.html:53to be confirmedClosure test to be defined by the owneropennoaudit pass 1
OA-22Repositories cite superseded P-03 and BOM revisionsshould-fix
verified
code review, not runDocs and release--to be confirmedClosure test to be defined by the owneropennoaudit pass 1
OA-23E-01 safety chain is not documented on main of any repository (drafts open)should-fix
verified
code review, not runSafety chain-openamr-platform-hw (main)to be confirmedRegister check passes on each repository carrying the E-01 rev1.4 chain; two human approvalsopenyesaudit pass 1
OA-24UI web front end has zero tests; CI passes the empty suiteshould-fix
verified
code review, not runOperator UI-openamrobot-ui/.github/workflows/ci.yml:30@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)Web test suite runs more than 0 tests; --passWithNoTests removedopennoaudit pass 1
OA-26Runtime dependencies used but not declared in package.xml (heuristic)should-fix
inferred
code review, not runDocs and release-openamr-platform-sw/ros2/src/openamrobot_bringup/package.xmlto be confirmedClosure test to be defined by the owneropennoaudit pass 1
OA-27Hardware repository code owner differs from the Team documentshould-fix
verified
code review, not runDocs and release-openamr-platform-hw/.github/CODEOWNERS:1to be confirmedClosure test to be defined by the owneropennoaudit pass 1
OA-28Communication repository code owner is a contributor who has leftshould-fix
verified
code review, not runDocs and release-openamrobot-comm (main)to be confirmedClosure test to be defined by the owneropennoaudit pass 1
OA-29Owner conflicts inside the plan set (contactor rows, F2S)should-fix
verified (source conflict)
code review, not runDocs and release--to be confirmedClosure test to be defined by the owneropennoaudit pass 1
OA-31Older plan text keeps superseded IMU, LiDAR spacer and camera height valuesshould-fix
verified (source conflict)
code review, not runDocs and release--to be confirmedClosure test to be defined by the owneropennoaudit pass 1
OA-34IMU topic ownership differs from the register (/imu vs /imu/data_raw and /imu/data)should-fix
verified
code review, not runBase and navigation-openamr-platform-sw/ros2/src/openamrobot_gazebo/config/gz_bridge.yaml:37@skunal3318 (navigation lead)/imu/data_raw and /imu/data present in simulation; register check passesopennoaudit pass 1
OA-35Local costmap inflation radius below the inscribed radiusshould-fix
verified
runtime (build, test or smoke run)Base and navigation-openamr-platform-sw/ros2/src/openamrobot_nav2/config/nav2_params.yaml:177@skunal3318 (navigation lead)No inflation error at start; S2 clearance at least 0.25 mopennoaudit pass 1
OA-35-P2Sudden obstacles passed at 0.117 to 0.128 m; collision monitor never engaged (S2)should-fix
verified
runtimeBase and navigationS2openamr-platform-sw/ros2/src/openamrobot_nav2/config/nav2_params.yaml:177@skunal3318 (navigation lead)Rerun S2: clearance at least 0.25 m; collision monitor engages in the barrier testopenyesaudit pass 2
OA-36Docking is a custom sequencer while Nav2 opennav_docking is installed and unusedshould-fix
verified
code review, not runDocking-openamr-platform-sw/ros2/src/openamrobot_docking/scripts/dock_trigger.py@fridayali (docking and robot description)Recorded decision: opennav_docking routed through arbitration, or the sequencer kept with testsopennoaudit pass 1
OA-37No base-arm interlock, hold-and-move mode or lift interlock implementedshould-fix
verified
code review, not runUpper body and manipulation-openamr-platform-sw (main)to be confirmedIntegration test both directions: arm goal rejected while base moves; base goal rejected while arm movesopenyesaudit pass 1
OA-38No physical, bench or HIL safety evidence record or record locationshould-fix
verified
code review, not runSafety chain--to be confirmedEvidence record location and procedure exist; supervised bench record attachedopennoaudit pass 1
OA-39Manifest tracks main for every repository; no release manifest with immutable refsshould-fix
verified
code review, not runDocs and release-openamrobot-manifest/openamrobot.repos:5to be confirmedRelease manifest with exact SHAs exists and feeds the builderopen
fix: IN REVIEW manifest #17 (draft)
yesaudit pass 1
OA-40Arm planning fails at the pinned upstream (no acceleration limits); gripper controller mismatchshould-fix
verified
code review, not runUpper body and manipulation-openamrobot-manipulation/integration/README.mdto be confirmedPlanning test passes without strict xfail at an approved acceleration limit setopenyesaudit pass 1
OA-45-P2After the UI connection dropped, the simulated robot kept driving 2.25 m (S7)should-fix
verified
runtimeSimulationS7openamr-platform-sw/ros2/src/openamrobot_description/urdf/gazebo_control.xacro:5@skunal3318 (navigation lead)Rerun S7a and S7c: simulated base stops within the command timeout after publisher lossopenyesaudit pass 2
OA-46Final alignment on site ArUco markers not implementedshould-fix
verified
code review, not runDocking-openamr-platform-sw/README.md:3@fridayali (docking and robot description)Align on site markers in simulation to +/-1 cm and +/-1 degopennoaudit pass 1
OA-47Simulation on main cannot navigate: the body filter masks the forward sector of the yaw-pi LiDARshould-fix
verified
runtimeSimulationS1openamr-platform-sw/ros2/src/openamrobot_nav2/config/scan_body_filter.yaml:1@skunal3318 (navigation lead)Rerun S1 on main: 3 of 3 goals; a test fails when the mask covers the forward sectoropenyesaudit pass 2
OA-51Voice plan path needs server-side bounds and confirmation before any motionshould-fix
verified
area-level (detail withheld for security)Operator UI-withheld (security)@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)Out-of-range plan rejected server-side; no direct velocity publish from plansopennoaudit pass 2
OA-52Block actions rely on one-shot velocity messages and the base watchdogshould-fix
verified
code review, not runOperator UIS7openamrobot-ui/web/src/features/blocks/robotActions.js:168@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)Timed motion goes through bounded Nav2 behaviors; no one-shot velocityopennoaudit pass 2
OA-53Undock reverses 0.7 m with no rear sensing, also when not docked; no cancelshould-fix
verified
runtimeDockingS3openamr-platform-sw/ros2/src/openamrobot_docking/scripts/dock_trigger.py:942@fridayali (docking and robot description)Undock when not docked is refused; cancel stops within 0.5 s; no automatic undock after a failed dockopenyesaudit pass 2
OA-54Docking mixes wall-clock and sim-time deadlines; times out at low real-time factorshould-fix
verified
runtimeDockingS3openamr-platform-sw/ros2/src/openamrobot_docking/scripts/dock_trigger.py:1800@fridayali (docking and robot description)Rerun S3 at 0.1 real-time factor with the same parameters as at 1.0: no wall-clock timeoutopenyesaudit pass 2
OA-55Detected dock pose is re-stamped as fresh after the tag is lostshould-fix
inferred
code review, not runDocking-openamr-platform-sw/ros2/src/openamrobot_docking/src/detected_dock_pose_publisher.cpp:47@fridayali (docking and robot description)Stale detections older than a timeout are droppedopennoaudit pass 2
OA-56One Nav2 server crash takes the reactive motion layer (collision monitor and smoother) down (S7)should-fix
verified
runtimeBase and navigationS7openamr-platform-sw/ros2/src/openamrobot_nav2/launch/navigation_launch.py@skunal3318 (navigation lead)Rerun S7b: after killing controller_server the monitor stays active and zero velocity holdsopenyesaudit pass 2
OA-57Startup is not reliable: 1 of 16 simulation starts stalled in localizationshould-fix
verified
runtimeBase and navigationS1, S11openamr-platform-sw/ros2/src/openamrobot_bringup/launch/bringup.launch.py@skunal3318 (navigation lead)S11 extended to 10 starts: all reach active within 120 s sim timeopenyesaudit pass 2
OA-58Navigation status reports motion-source protection from a static profile, not the live graphshould-fix
verified
code review, not runBase and navigation-openamr-platform-sw/ros2/src/openamrobot_nav2/config/navigation_status_profile.yaml@skunal3318 (navigation lead)Navigation status flags rosbridge as an unprotected /cmd_vel publisher in S4opennoaudit pass 2
OA-59Simulated docking camera is on the legacy camera_link, not base_camera_link (Gemini 336L)should-fix
verified
runtimeSimulationS10openamr-platform-sw/ros2/src/openamrobot_description/urdf/robo_urdf.urdf.xacro:696@fridayali (docking and robot description)Rerun S10: /rgb_image frame base_camera_link; S3 passes with itopen
fix: IN REVIEW PR #53 (draft)
yesaudit pass 2
OA-60Route following reports success after a failed waypoint or cancelshould-fix
verified
code review, not runOperator UI-openamrobot-ui/ros2/src/openamr_ui_package/openamr_ui_package/waypoint_nav.py:122@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)Failed waypoint shows failure in the UIopennoaudit pass 2
OA-62UI angular limit 2.0 rad/s is four times the navigation limit and reaches the base unsmoothedshould-fix
verified
runtimeOperator UIS12openamrobot-ui/web/src/shared/constants/index.js:53@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)UI angular limit taken from the platform and enforced behind the arbiteropennoaudit pass 2
OA-63Controller may reverse with the rear unobserved; goal tolerance 0.35 m against a 5 cm stageshould-fix
verified
runtimeBase and navigationS12openamr-platform-sw/ros2/src/openamrobot_nav2/config/nav2_params.yaml:111@skunal3318 (navigation lead)Parameter test plus S1 final position error under 5 cm for approach goalsopennoaudit pass 2
OA-6448 of 48 plans on mock hardware, but the lift is not a planning joint and the park pose sits at a joint limitshould-fix
verified
runtimeUpper body and manipulationS8PR #14 (branch evidence)@Tushargoel230 (upper-body model)Rerun S8 with the lift in the planning group: 48 of 48 and every margin above 0.05 radopen
fix: IN REVIEW PR #14 (draft)
yesaudit pass 2
OA-68Docking reports the collision monitor as down while it is active (false monitor status)should-fix
verified
runtimeDockingS3openamr-platform-sw/ros2/src/openamrobot_docking/scripts/dock_trigger.py:833@fridayali (docking and robot description)Rerun S3: reported monitor state equals the lifecycle state in every phaseopen
fix: IN PROGRESS #35 branch
yesaudit pass 2
OA-69ToF and ultrasonic sensors publish in simulation but nothing consumes themshould-fix
verified
runtimeBase and navigationS10, S12openamr-platform-sw/ros2/src/openamrobot_nav2/config/nav2_params.yaml@skunal3318 (navigation lead)Collision monitor and local costmap list the ToF and ultrasonic sources, or the register records their roleopennoaudit pass 2
OA-13Lift joint has zero effort and velocity limitslater
verified
code review, not runUpper body and manipulation-openamr-upperbody-sw/ros2/src/openamrobot_upperbody_description/urdf/openamrobot_upperbody.xacro:66@Tushargoel230 (upper-body model)Closure test to be defined by the owneropennoaudit pass 1
OA-25Skip markers name no tracking issuelater
verified
code review, not runDocs and release-openamr-platform-sw (main)to be confirmedClosure test to be defined by the owneropennoaudit pass 1
OA-30Inconsistent GitHub handle and robot-model ownership recordslater
verified
code review, not runDocs and release--to be confirmedClosure test to be defined by the owneropennoaudit pass 1
OA-32E-01 component list reuses a removed BOM ID for the charge connectorlater
verified (source conflict)
code review, not runSafety chain--to be confirmedClosure test to be defined by the owneropennoaudit pass 1
OA-33Shoulder spacing 307 mm and mount y +/-0.031 m not checked against upstream arm geometrylater
inferred
code review, not runUpper body and manipulation--@Tushargoel230 (upper-body model)Closure test to be defined by the owneropennoaudit pass 1
OA-41apriltag_node and move_group crash on shutdownlater
verified
runtime (build, test or smoke run)Simulation-openamr-platform-sw (main)@skunal3318 (navigation lead)Closure test to be defined by the owneropennoaudit pass 1
OA-41-P2Shutdown crashes recur: apriltag_node on every platform stop, move_group in 2 of 3 stopslater
verified
runtimeSimulationS11openamr-platform-sw (main)@skunal3318 (navigation lead)Launch tests stop cleanly, or a tracking issue records the upstream crashopennoaudit pass 2
OA-42Unused hand-maintained SDF copy of the robot modellater
verified
code review, not runSimulation-openamr-platform-sw/ros2/src/openamrobot_description/urdf/robot.sdf@fridayali (docking and robot description)Closure test to be defined by the owneropennoaudit pass 1
OA-43Broken relative links and TODOs without issueslater
verified
code review, not runDocs and release-openamr-platform-sw/docs/troubleshooting/diagnostics.mdto be confirmedClosure test to be defined by the owneropennoaudit pass 1
OA-44CI builds the navigation producer against an older interfaces commitlater
verified
code review, not runInterfaces-openamr-platform-sw/.github/workflows/nav-status-tests.yml:22to be confirmedClosure test to be defined by the owneropennoaudit pass 1
OA-45No ros2_control base description: simulation and robot share no controller or timeoutlater
opinion
code review, not runSimulation-openamr-platform-sw/ros2/src/openamrobot_description/urdf/gazebo_control.xacro:5@skunal3318 (navigation lead)Simulated base stops within the command timeout after publisher lossopennoaudit pass 1
OA-61UI pose relay republishes a stale pose with its old stamp every secondlater
verified
code review, not runOperator UI-openamrobot-ui/ros2/src/openamr_ui_package/openamr_ui_package/nav_relays.py:60@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)Pose older than 2 s shown as staleopennoaudit pass 2
OA-65joint_state_clamp is on in every profile, including hardwarelater
opinion
code review, not runUpper body and manipulation-PR #14 (branch evidence)@Tushargoel230 (upper-body model)Closure test to be defined by the owneropennoaudit pass 2
OA-66UI writes maps and routes into the installed package share directorylater
verified
code review, not runOperator UI--@parthkeshari (UI lead); reviewers @panthera-momagdii (tech lead, UI reviewer) and UI reviewer (GitHub handle to be confirmed); simulation checks @nikgolobo (simulation checks)Closure test to be defined by the owneropennoaudit pass 2
OA-67Copied navigation launch file drifted from upstream; two simulation entry pointslater
verified
code review, not runBase and navigation-openamr-platform-sw/ros2/src/openamrobot_nav2/launch/navigation_launch.py@skunal3318 (navigation lead)Navigation launch includes upstream nav2_bringup; one simulation entry pointopennoaudit pass 2
NR-03Motion sources keep publishing while actuator power is off; nothing holds them at zero across a RESETblocker
inferred
code review, not runBase and navigation--@skunal3318 (navigation lead)After RESET, no motion from any source until an explicit operator release; verified in simulation and on the benchopen
fix: NOT STARTED design draft for the Teensy path (platform-fw issue #17)
yesthis review (new)
NR-01The final velocity command is an unstamped Twist on every pathshould-fix
verified
code review, not runBase and navigation-openamr-platform-sw/ros2/src/openamrobot_nav2/config/nav2_params.yaml@skunal3318 (navigation lead)See the recommendation in the architecture reviewopennothis review (new)
NR-02No SROS2 configuration found in the inspected repositoriesshould-fix
verified
code review, not runOperator UI--@parthkeshari (UI lead)See the recommendation in the architecture reviewopennothis review (new)
NR-05No risk assessment found in the inspected repositoriesshould-fix
opinion
opinion, not runSafety chain--to be confirmedSee the recommendation in the architecture reviewopennothis review (new)
NR-06No speed limit or contact policy for the arms near peopleshould-fix
opinion
opinion, not runUpper body and manipulation-PR #14 (branch)@Tushargoel230 (upper-body model)See the recommendation in the architecture reviewopennothis review (new)
NR-04Package names mix two prefixes and one name exists twicelater
verified
code review, not runInterfaces--to be confirmedSee the recommendation in the architecture reviewopennothis review (new)

Merged pull requests since 21 Sep 2026

96 PRs merged since 21 Sep across 14 repositories (definition: pull requests in the openAMRobot organisation with merge date 21 Sep to 19 Oct 2026; GitHub search org:openAMRobot is:pr is:merged merged:2026-09-21..2026-10-19, cross-checked against the per-repository PR lists (19 Oct 2026, second snapshot); recount, matches the progress audit). A merged PR is not a tested product change; many are documentation, register and governance updates.

By repository

On 24 Oct: 111 PRs from 15 authors opened since 1 Oct, 41 of them open (the 21 Sep to 19 Oct merged count above is unchanged).