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.
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 sectorOperator 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 0Docking
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 timeoutStop 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 benchObstacle 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 roleManipulation
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 radCoverage
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
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 on | Delivery | Findings | Owner |
|---|---|---|---|
| UI teleop, blocks and voice actions enter an arbitrated input ahead of the smoother; the browser never publishes /cmd_vel | IN 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 status | IN PROGRESS | OA-04-P2 OA-68 | @skunal3318 (navigation lead); @fridayali (docking and robot description) |
| UI no longer starts its own navigation or mapping stack | NOT STARTED | OA-03-P2 | @parthkeshari (UI lead) |
| Recording replay restricted to non-command topics | NOT STARTED | OA-48 | @parthkeshari (UI lead) |
| UI command path hardening | IN 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 test | NOT STARTED | OA-47 | @skunal3318 (navigation lead) |
| UI command path hardening: access control | NOT STARTED | OA-49 | @parthkeshari (UI lead) |
| Collision monitor and smoother under their own lifecycle manager | NOT STARTED | OA-56 | @skunal3318 (navigation lead) |
| Bounded startup with retries | NOT STARTED | OA-57 | @skunal3318 (navigation lead) |
| Docking deadlines on the node clock | NOT STARTED | OA-54 | @fridayali (docking and robot description) |
| Undock only from docked, cancellable, with rear coverage | NOT STARTED | OA-53 | @fridayali (docking and robot description) |
| Command timeout for the simulated base | NOT STARTED | OA-45-P2 | @skunal3318 (navigation lead) |
| Stop and slowdown polygons; inflation at or above the inscribed radius | NOT STARTED | OA-35-P2 | @skunal3318 (navigation lead) |
| Motion commands held at zero across E-stop and RESET until an explicit operator release (AR-05) | NOT STARTED | NR-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 margin | IN REVIEW | OA-64 | @Tushargoel230 (upper-body model) |
| Simulated docking camera on base_camera_link (Gemini 336L) and docking retuned | IN REVIEW | OA-59 | @fridayali (docking and robot description) |
| Release reproducible from a manifest with exact SHAs; drivers installable (release #12, manifest #17 and #18, drafts) | IN REVIEW | OA-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 STARTED | OA-14 | to 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.
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
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
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
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
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))
- 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
- 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
- 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
- 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
- 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)
- 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
- 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
- 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
- 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
- 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
- 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
- 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))
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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))
- 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
- -
- 30
Rerun audit scenarios S1 to S12 on main as the rc.1 simulation check. critical path
- 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
- 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))
- 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
- 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
- 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)
| Role | Handle | Covers |
|---|---|---|
platform-lead | @BotshareAI | platform, hardware, safety chain, decisions of record, final review |
software-lead | @panthera-momagdii | robot software, AI, interfaces, agent rules |
ci-owner | @wikki26 | CI/CD, reusable workflows, quality gates |
release-owner | @KARTHIKEYAN124 | release, installation, manifest |
docs-owner | @anandgawai123456-glitch | documentation site, public extracts |
electrical-owner | @Evans-Kwashie | base controller firmware, electrical and power distribution, safety chain implementation |
robot-description-owner | @fridayali | URDF, base robot model, sensor frames, chassis and panel CAD |
Code owners (CODEOWNERS on main)
| Repository | Code 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.
| PR | State on 24 Oct |
|---|---|
| platform-sw #90 | changes requested; sign-off missing |
| platform-sw #92 | approved once (24 Oct); needs sign-off and a second approval |
| platform-sw #93 | draft; sign-off missing |
| platform-sw #66 | sign-off missing; needs an /estop contract change request |
| platform-fw #18 | draft; sign-off missing |
| platform-hw #27 | sign-off missing |
| platform-hw #29 | sign-off missing |
| interfaces #28 | approved; blocked on sign-off (the only blocker) |
| manipulation #20 | 99/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.
| # | Item | Design value or rule (source) | Other value (source) | Fix |
|---|---|---|---|---|
| 1 | Register document label | P-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) |
| 2 | ToF pitch | 10 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 docs | platform-sw #93 and platform-hw near-field.md |
| 3 | TF-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 |
| 4 | Ultrasonic 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 |
| 5 | IMU frame | imu_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.195 | P-03 item 15, BOM sensor sheet, P-02, platform-hw imu.md, platform-fw I/O doc and docs index.md |
| 6 | LiDAR mount | 17.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 mm | P-03 item 13, BOM Mechanical and Connections sheets, platform-hw lidar.md, docs index.md |
| 7 | Base camera pose | base_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 mm | docs index.md (docs owner) |
| 8 | Contactors | 2 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 LEV100H | P-03 item 5 and the three PRs or issues |
| 9 | Near-field sensor set | 4 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 I2C | Retitle platform-fw #11 and update platform-hw #15 |
| 10 | Navigation contract version | CONTRACT_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 contract | Contract changes go through a contract change request (GOVERNANCE.md) | platform-fw #17 and platform-sw #66 require an /estop contract change request; none exists | Open the /estop contract change request (software lead, electrical owner) |
| 12 | rc.1 pin count | One pinned source set for v2.0.0-rc.1 (register RELEASE-MILESTONES) | release #12 pins 14 sources; manifest #17 pins 11 | Release owner to agree one list |
| 13 | Arm mount | Arm 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 column | ADR-010 and upperbody-sw #14 to follow the register |
| 14 | Motion chain | collision_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 #90 | platform-sw #90 and #35 |
| 15 | Hub motor | ZLLG80ASM250-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 pair | platform-hw datasheets README and #28 |
| 16 | Charger | WCM-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-300 | docs concepts.md (docs owner) |
| 17 | Raspberry Pi 5 label | Jetson Orin NX 16 GB is the 2.0 compute; the Raspberry Pi 5 is release 001 only | The Pi 5 is named without a release 001 or legacy label in platform-hw, platform-sw, docs and the release README | Label each mention release 001 or legacy |
| 18 | Old revisions cited as current | P-03 rev19.7 and BOM Issue 7.10 | rev19.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 plan | Each repository owner; release README title (release owner) |
| 19 | .github ROADMAP.md and org profile | Two 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) |
| 20 | Governance | GOVERNANCE.md: platform lead reviews safety paths; two approvals on safety changes; maintainers.yaml lists the roles | Code 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) |
| 21 | BOM owners | Team document: @Evans-Kwashie owns power and safety, @AnushkaAMuragod supports | BOM Issue 7.10 power and safety rows still list the supporting contributor as owner; mechanical rows list an inactive contributor | BOM owner columns (platform lead) |
| 22 | Docs site | The deploy job verifies the live custom domain | Step "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 roadmap | docs #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.
- Documents in force. P-03 rev19.7 (20 Oct) is the document in force by project-lead decision of 24 Oct: ToF pitch 10 deg, base_link 0.098 m above the floor, item 23 (one shared base for release 001 and 2.0, WCM-500-24 on both, embodied-AI repository layout, platform-sw pin dfd44a5). E-01 body rev1.4 (file title rev1.3), BOM Issue 7.10 (20 Oct, corrected 24 Oct: camera, IMU, LiDAR and ToF values aligned with P-03 rev19.7), P-02 rev19.2 (20 Oct).
Effect: Every design value on these pages now cites P-03 rev19.7; plan dates cite P-02 rev19.2; Gate A and the STM32 go/no-go are marked as P-02 dates. - Register. .github #55 (1c3f516, 22 Oct) records the rev19.7 decisions (SHARED-BASE, WCM-500-24 on both robots, ToF 10 deg); the document label still says rev19.6. .github main is 68833f2 (#61, 24 Oct). FUNDING added (#56).
Effect: Action plan step 4 is MERGED AND TESTED; the shared base is no longer pending a register entry. Label mismatch is drift 1. - platform-sw (main 8a7a5b1, unchanged since 19 Oct). New PRs: #90 twist_mux and stop gate (stop lock priority 255, UI TwistStamped relay on /ui/cmd_vel), changes requested 23 Oct, sign-off missing; #91 recovery behaviour tree, changes requested (retry counter stays NOT_READY, one failing test); #92 approved once on 24 Oct, needs sign-off and a second approval; #93 draft, ToF frames to 10 deg. Audit pass 2 issues #74 to #88 are open with no comments; #35 is due 30 Oct; #74 (simulation body filter) is due 6 Nov with no PR.
Effect: Steps 10 and 25 move to IN REVIEW; the reactive motion layer block moves to IN REVIEW. Implementation on main is unchanged: no twist_mux, and the UI and docking still publish /cmd_vel. - platform-fw (main f96014d, unchanged since 12 Oct). CubeMX project #22 is ready for review with change requests as comments (Ethernet DMA in DTCM, HAL edit, unused UART TX pins); CI PRs #23, #27, #28 and #29 are drafts. Issues #20 (lift interlock) and #21 (micro-ROS transport) are due 13 Nov; #17 (safety state machine) is not started. pid.h is missing, so Gate A cannot be rebuilt from the repository; boards/stm32 is empty.
Effect: The 2.0 base controller block moves from NOT STARTED to IN REVIEW (platform-fw #22). - platform-hw (main eaac115, 24 Oct). Hardware repository checks merged (#34). PRs #27 and #29 lack sign-off; #27 and the near-field docs still carry LEV100H and 20 deg; agent rules draft #35.
Effect: Drift 2, 8 and 15. - openamrobot-ui (main 0ca798b, 22 Oct). Only the Stop (software) rename landed (#38). The stop lock and /ui/cmd_vel are not on main. Hardening issues #31 to #37 are open.
Effect: UI hardening moves to IN PROGRESS (security hardening in progress). - interfaces (main d048fb8, 22 Oct). Shared agent rules adopted (#26). #28 (SiteConfigStatus, CONTRACT_VERSION 2) is approved and blocked only on sign-off. C9 schema: 26/26 metadata checks pass; acceptance issue #18 open.
Effect: Contract version on main stays 1 (drift 10). - Upper body and manipulation. upperbody-sw #14 is a 405-file draft with changes requested (NaN joint samples accepted; quality check to restore); issues #17 (lift as planned joint) and #18 (joint clamp default) are due 13 Nov. manipulation #20 is ready, 99/99 tests, one controller-config defect left, sign-off missing; #24 (base and arm exclusion) is due 13 Nov with no PR.
Effect: Statuses unchanged (IN REVIEW); dates added from issue bodies. - Embodied AI (main 56bbd36, 22 Oct). Scaffold on main: C10 dataset QA validator with tests, registry, recorder and policy-runner skeletons. No capture session and no trained policy.
Effect: Learning baseline stays NOT STARTED. - Release and manifest. release #8 and #9 merged 24 Oct (main c39eda7); release #12 (rc.1 from pinned SHAs) is a draft and pins 14 sources; manifest #17 pins 11; manifest #13 is approved twice and not merged; #11 is stale.
Effect: Pin-count mismatch is drift 12. - Docs. Deploy step "Verify the live custom domain" fails with exit 127 since at least 11 Oct (no checkout in the deploy job); draft docs #49 fixes it. Drafts #46 and #47 cite older revisions.
Effect: Drift 22.
Action plan status changes since 19 Oct
| Step | 19 Oct | 24 Oct | Source |
|---|---|---|---|
| 4 | NOT STARTED | MERGED AND TESTED | .github #55 (1c3f516, 22 Oct) records SHARED-BASE |
| 10 | IN PROGRESS | IN REVIEW | platform-sw #90 opened (UI TwistStamped /ui/cmd_vel relay) |
| 14 | NOT STARTED | IN PROGRESS | ui issues #31 to #37 opened (security hardening in progress) |
| 25 | NOT STARTED | IN REVIEW | platform-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.
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.
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.
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.
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.
Source: this review's assessment, based on the linked evidence · 24 Oct 2026
- R1: Command bypasses of the reactive motion layer likelihood high, impact high. Evidence: S3, S4, S5; OA-02-P2, OA-45-P2, OA-48. details
- R2: Docking not working through the chain likelihood high, impact medium. Evidence: S3: 0 of 5 docked. details
- R3: Main not navigating in simulation likelihood high, impact high. Evidence: S1: 0 of 3 goals on main (OA-47). details
- R4: Contactor procurement (BUY-32) likelihood high, impact high. Evidence: BUY-32 blocked; out of stock; about 16 weeks lead time for other codes. details
- R5: Base controller decision for rc.1 likelihood medium, impact high. Evidence: No approved decision; go/no-go 6 Nov. details
- R6: Intermittent bridge crash in PR #14 likelihood medium, impact medium. Evidence: 2 of 9 A7 runs failed on 18 Oct; cause not investigated. details
- R7: Little physical test time before integration likelihood high, impact high. Evidence: Nothing built for 2.0; window 23 Nov to 18 Dec. details
- R8: Shared base not yet built likelihood high, impact high. Evidence: Design draft only; BUY-32 blocks K1/K2. details
Per area
Delivery status, runtime evidence (with the tested branch or commit) and physical acceptance are separate columns. Physical acceptance is none recorded everywhere.
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.
| Deliverable | Delivery | Runtime evidence (tested setup) | Physical | Findings · closes when |
|---|---|---|---|---|
| dock_trigger sequencer | MERGED UNTESTED | runtime: fails in simulation main + fixture; prototype | physical: none recorded | OA-04-P2 OA-53 OA-54 OA-68 Rerun S3: 5 of 5 docked |
| Docking retuned for Gemini 336L | IN REVIEW | runtime: not run PR #53 draft | physical: none recorded | OA-59 S10 and S3 pass on base_camera_link |
| DockingStatus (issue #33) | NOT STARTED | runtime: not run - | physical: none recorded | Status at 2 Hz plus on change; docked and charging separate |
| Site ArUco alignment (Use Case 1) | NOT STARTED | runtime: not run - | physical: none recorded | OA-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
- openamr-platform-sw #53 Gemini 336L base camera simulation (draft)
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 itSafety 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.
| Deliverable | Delivery | Runtime evidence (tested setup) | Physical | Findings · closes when |
|---|---|---|---|---|
| E-01 rev1.4 safety chain design | DOCUMENTED ONLY | runtime: not run - | physical: none recorded | OA-23 E-01 chain on main of platform-hw with two human approvals |
| K1/K2 GX11CAC procurement (BUY-32) | BLOCKED | runtime: not run - | physical: none recorded | Datasheet checks pass and a firm quote exists |
| Supervised safety-chain bench test | NOT STARTED | runtime: not run - | physical: none recorded | OA-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
- openamr-platform-hw #27 E-01 safety chain and power distribution baseline (draft)
- openamr-platform-fw #18 Hardware chain is the primary stop (E-01) (draft)
- openamr-platform-sw #66 Safety docs point to the E-01 chain (draft)
- openamrobot-docs #46 E-01 safety and power page (draft)
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 attachedOperator 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.
| Deliverable | Delivery | Runtime evidence (tested setup) | Physical | Findings · closes when |
|---|---|---|---|---|
| Safe UI command path | IN PROGRESS | runtime: fails in simulation UI c5558ad5 + platform fixture | physical: none recorded | OA-02-P2 OA-03-P2 OA-48 OA-45-P2 S4, S5, S7a reruns pass |
| Stop (software) with lock | NOT STARTED | runtime: works in simulation with fixture S6 (Nav2 path only) | physical: none recorded | OA-16-P2 S6 plus: no motion from any source until release |
| UI access control and command path hardening | NOT STARTED | runtime: not run - | physical: none recorded | OA-49 OA-50 Access-control tests pass |
| Web tests | NOT STARTED | runtime: not run 0 tests | physical: none recorded | OA-24 More than 0 web tests run in CI |
| Reporting Mode | DOCUMENTED ONLY | runtime: not run - | physical: none recorded | Full-screen reporting session recorded |
Merged work
- openamrobot-ui #25 UI loads the robot description from platform-sw (merged 2026-10-12)
Open work
- openamrobot-ui #21 Fixture-only run-state adapter (Proposed) (draft)
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-STOPUpper 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.
| Deliverable | Delivery | Runtime evidence (tested setup) | Physical | Findings · closes when |
|---|---|---|---|---|
| Combined base, lift and arm model with MoveIt (PR #14) | IN REVIEW | runtime: works on branch or prototype PR #14 head e5cf613, code fe2e821, platform-sw dfd44a5 (see PR #14 evidence) | physical: none recorded | OA-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 REVIEW | runtime: works on mock hardware followups/a6-a7-49d2368 a490503 | physical: none recorded | OA-64 Rerun S8 with the lift in the planning group: 48 of 48 and every margin above 0.05 rad |
| Lift as a planned joint | NOT STARTED | runtime: not run - | physical: none recorded | OA-64 OA-13 S8 with the lift in the group |
| Base-arm and lift interlocks | NOT STARTED | runtime: not run - | physical: none recorded | OA-37 Integration test both directions |
| A5/I2 device package (PR #20) | IN REVIEW | runtime: not run draft; hosted tests skipped | physical: none recorded | Schema and conformance tests run on the PR head |
Merged work
- openamr-upperbody-sw #11 Option B upper-body model (merged 2026-10-12)
- openamr-upperbody-sw #12 Column axis at x +0.060 (merged 2026-10-12)
- openamrobot-manipulation #9 OpenArm 2.0 fake-hardware baseline (development only) (merged 2026-09-30)
- openamr-upperbody-hw #10 Option B upper-body mounting documentation (merged 2026-10-12)
Open work
- openamr-upperbody-sw #14 Combined option B model and MoveIt configuration (draft)
- openamrobot-manipulation #20 A5/I2 device package schemas and validator (draft)
- openamrobot-manipulation #18 SO-101 capability discovery sketch (draft)
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 setFirmware 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).
| Deliverable | Delivery | Runtime evidence (tested setup) | Physical | Findings · closes when |
|---|---|---|---|---|
| Teensy Gate A overlay (200 ms watchdog) | MERGED UNTESTED | runtime: not run - | physical: none recorded | Gate A host-migration suite passes on 30 Oct |
| STM32H723ZG port and I8 Gate B | NOT STARTED | runtime: not run - | physical: none recorded | OA-14 I8 Gate B evidence on the bench |
| 2.0 controller I/O documentation (#19) | IN REVIEW | runtime: not run - | physical: none recorded | OA-19 Merged with the 16 Oct IMU pose |
Merged work
- openamr-platform-fw #14 Gate A labels and the decided 2.0 base controller I/O (documentation) (merged 2026-10-12)
- openamr-upperbody-fw #11 Lift interface on CAN3 (documentation) (merged 2026-10-12)
Open work
- openamr-platform-fw #19 2.0 controller I/O aligned with P-03 item 22 (documentation) (open)
- openamr-platform-hw #30 Datasheet references for the 2.0 pin map (open)
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.
| Deliverable | Delivery | Runtime evidence (tested setup) | Physical | Findings · closes when |
|---|---|---|---|---|
| Simulated 2.0 robot model | MERGED UNTESTED | runtime: fails in simulation main 8a7a5b1 | physical: none recorded | OA-47 OA-59 OA-69 OA-45-P2 S1, S7, S10 reruns pass on main |
Merged work
- openamr-platform-sw #70 Gazebo near-field sensors and IMU in simulation (merged 2026-10-16)
Open work
- openamr-platform-sw #53 Gemini 336L RGB-D simulation (draft)
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
- partially implemented: UC1-52
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 roleInterfaces owner to be confirmed
Navigation health contract merged and tested. I1 (manipulation), I8 (base status) and DockingStatus contracts are not in the repository.
| Deliverable | Delivery | Runtime evidence (tested setup) | Physical | Findings · closes when |
|---|---|---|---|---|
| Navigation health contract | MERGED AND TESTED | runtime: works in simulation on main interfaces 87ab8a9 CI (interface tests) | physical: none recorded | - |
| I1 manipulation and I8 base-status contracts | DOCUMENTED ONLY | runtime: not run - | physical: none recorded | OA-15 Proposed contracts merged with consumers listed |
Merged work
- openamrobot-interfaces #9 ROS 2 Jazzy interface build gate (merged 2026-09-23)
- openamrobot-interfaces #11 Navigation message exchange test with a reverted-interface failure (merged 2026-09-25)
- openamrobot-interfaces #15 Exchange test on Fast DDS and Cyclone DDS (merged 2026-09-28)
Open work
- openamrobot-interfaces #28 SiteConfigStatus (open)
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
- missing: UC1-43
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 0Embodied 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)
| Deliverable | Delivery | Runtime evidence (tested setup) | Physical | Findings · closes when |
|---|---|---|---|---|
| C9 whole-body capture schema | MERGED AND TESTED | runtime: not run schema tests in interfaces CI | physical: none recorded | Contract accepted by the owner; a capture session recorded |
| C10 dataset quality gate | IN REVIEW | runtime: not run draft PR #25 | physical: none recorded | Each check has a corrupted-fixture test |
| Imitation-learning baseline | NOT STARTED | runtime: 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
- openamrobot-interfaces #25 C10 dataset quality gate (draft)
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.
| Deliverable | Delivery | Runtime evidence (tested setup) | Physical | Findings · closes when |
|---|---|---|---|---|
| Reproducible rc.1 release | IN REVIEW | runtime: not run release #12, manifest #17 and #18 (all draft, 19 Oct); release #9 (navigation install evidence) | physical: none recorded | OA-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 TESTED | runtime: not run .github 9109d3e CI | physical: none recorded | OA-01 OA-07 - |
Merged work
- openamrobot-docs #37 Option B upper body and 2.0 sensor layout (merged 2026-10-13)
- openamrobot-docs #40 Reference use cases page (2.0 is Use Case 1; dark-store picking is 3.0) (merged 2026-10-13)
- openamrobot-docs #39 Dark-store simulation source (merged 2026-10-11)
- openamrobot-manifest #7 Manifest keys fixed and manifest validation added (merged 2026-09-27)
Open work
- openamrobot-release #12 rc.1 built from pinned commit SHAs with verified checksums (OA-05) (draft)
- openamrobot-manifest #17 SHA-pinned rc.1 release manifest (OA-39) (draft)
- openamrobot-manifest #18 Pinned Jazzy driver sources and installation checks (OA-06) (draft)
- openamrobot-release #9 Pinned navigation install and release manifest evidence (open)
- openamrobot-manifest #13 Pin ROS 2 Jazzy image by digest (open)
- openamrobot-manifest #11 RPLIDAR S3 driver in the manifest (open)
- .github #41 Baseline ROS 2 CI image (open)
- openamrobot-docs #47 Hardware reference to P-03 rev19.4 (draft)
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 ownerTraceability: 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
| ID | Requirement | Area | Status | Implementation | Evidence | Acceptance test | Owner | Needed 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.
- 2026-10-30Gate 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)
- 2026-11-06Batch 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
- 2026-11-13Batch 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)
- 2026-11-20Batch 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)
- 2026-11-23 to 2026-12-18Physical 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
- 2026-12-18v2.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.
| ID | Finding | Severity, confidence | Evidence kind | Area | Scenario | Public code location | Owner | Closure test | State | rc.1 | Source |
|---|---|---|---|---|---|---|---|---|---|---|---|
| OA-01 | Decisions register recorded the withdrawn LEV100H contactors instead of the GX11CAC | blocker verified (source conflict) | code review, not run | Safety chain | - | .github/decisions.yaml | to be confirmed | check_decisions.py flags LEV100H as current; register validates | closed 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. | yes | audit pass 1 |
| OA-02 | Operator UI publishes teleop and block commands on the final velocity topic, past the smoother and collision monitor | blocker verified | code review, not run | Operator 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 monitor | open | yes | audit pass 1 |
| OA-02-P2 | UI teleop drove the simulated robot into a wall at 0.2 m/s (S4) | blocker verified | runtime | Operator UI | S4 | 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 and S7a: rosbridge is not a /cmd_vel publisher; robot stops before the wall; stops within 0.5 s after the UI connection drops | open | yes | audit pass 2 |
| OA-03 | Operator UI Maps page starts its own navigation stack outside the platform command chain | blocker verified | code review, not run | Operator 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 unchanged | open | yes | audit pass 1 |
| OA-03-P2 | UI Maps page started a second navigation controller (S5) | blocker verified | runtime | Operator UI | S5 | - | @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 unchanged | open | yes | audit pass 2 |
| OA-04 | Docking publishes the final velocity command and switches the collision monitor off during the dock | blocker verified | code review, not run | Docking | - | 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 transitions | open | yes | audit pass 1 |
| OA-04-P2 | Docking switched the collision monitor off; the navigation stack reset mid-dock (S3) | blocker verified | runtime | Docking | S3 | openamr-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 transitions | open fix: IN PROGRESS #35 branch | yes | audit pass 2 |
| OA-05 | Release builder cannot reproduce v2.0.0-rc.1 (no pinned SHAs, hand-supplied archives) | blocker verified | code review, not run | Docs and release | - | openamrobot-release/release-config.json:1 | to be confirmed | Two builds from the same rc.1 manifest give identical checksums | open fix: IN REVIEW release #12 (draft) | yes | audit pass 1 |
| OA-06 | LiDAR and micro-ROS agent drivers cannot be installed from the manifest plus rosdep | blocker verified | runtime (build, test or smoke run) | Docs and release | - | openamr-platform-sw/ros2/src/openamrobot_drivers/package.xml | to be confirmed | Clean-machine rosdep check exits 0; root colcon build passes | open fix: IN REVIEW manifest #18 (draft) | yes | audit pass 1 |
| OA-48 | Recording replay can drive the robot; replay output needs restricting (S5) | blocker verified | area-level (detail withheld for security) | Operator UI | S5 | 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) | Replay of a recording that contains command topics: robot travel 0 | open | yes | audit pass 2 |
| OA-49 | UI command path hardening: access control | blocker verified | area-level (detail withheld for security) | Operator UI | S4, S5 | 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 passes | open | yes | audit pass 2 |
| OA-50 | UI command path hardening | blocker verified | area-level (detail withheld for security) | Operator UI | S5 (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 passes | open | yes | audit pass 2 |
| OA-07 | Decisions register was four P-03 revisions behind (rev19.2, BOM 7.8) | should-fix verified (source conflict) | code review, not run | Docs and release | - | .github/decisions.yaml | to be confirmed | Register in_force is P-03 rev19.6 and BOM Issue 7.10 | closed 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. | yes | audit pass 1 |
| OA-08 | Workspace does not build at its root: openamr_ui_msgs exists in two repositories | should-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 0 | open | yes | audit pass 1 |
| OA-09 | Three lint tests fail locally on main; CI does not lint those packages | should-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 owner | open | no | audit pass 1 |
| OA-10 | ToF frames at x +/-0.399 m in the URDF; register and P-03 give +/-0.390 m | should-fix verified | code review, not run | Base and navigation | - | openamr-platform-sw/ros2/src/openamrobot_description/urdf/sensors.xacro:125 | to be confirmed | Frame check in CI against the register passes | open | no | audit pass 1 |
| OA-11 | Ultrasonic frames at x 0.3906 / -0.3886 m against the P-03 nominal +/-0.390 m (open item) | should-fix verified | code review, not run | Base and navigation | - | openamr-platform-sw/ros2/src/openamrobot_description/urdf/sensors.xacro:116 | to be confirmed | Owner decision recorded; frame check passes | open | no | audit pass 1 |
| OA-12 | Upper body on main is a kinematic skeleton: no arms, no ros2_control, not attached to the base | should-fix verified | code review, not run | Upper 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 head | open | yes | audit pass 1 |
| OA-14 | No 2.0 base-controller firmware on main (STM32 port, safety-chain diagnostic I/O, BMS, traction are placeholders) | should-fix verified | code review, not run | Firmware 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) | open | yes | audit pass 1 |
| OA-15 | I1 manipulation and I8 base-status contracts are not in the interfaces repository | should-fix verified | code review, not run | Interfaces | - | openamrobot-interfaces (main) | to be confirmed | I1 and I8 Proposed contracts build with consumers listed | open | yes | audit pass 1 |
| OA-16 | UI software stop is labelled E-STOP and does not latch | should-fix verified | code review, not run | Operator 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 source | open | yes | audit pass 1 |
| OA-16-P2 | UI stop works for navigation goals but does not latch; any direct source resumes (S6) | should-fix verified | runtime | Operator UI | S6 | 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) | Rerun S6: after stop, UI teleop and docking produce no motion until release; button not labelled E-STOP | open | yes | audit pass 2 |
| OA-17 | Only real-robot bringup is the Gate A path with hand-set static transforms | should-fix verified | code review, not run | Base 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 profile | open | yes | audit pass 1 |
| OA-18 | Hardware repository states superseded base camera and IMU positions | should-fix verified | code review, not run | Docs and release | - | openamr-platform-hw/product-architecture.md:31 | to be confirmed | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-19 | Firmware I/O page states the superseded IMU position | should-fix verified | code review, not run | Firmware 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 owner | open | no | audit pass 1 |
| OA-20 | Public docs and the dark-store simulation source carry pre-16 Oct LiDAR and camera values | should-fix verified | code review, not run | Docs and release | - | openamrobot-docs/docs/reference/openamrobot-2/index.md:39 | to be confirmed | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-21 | Public assets show the superseded fixed-mast arrangement and LEV100 contactors without a label | should-fix verified | code review, not run | Docs and release | - | openamrobot-docs/docs/assets/hardware/openamrobot2-general-arrangement.html:53 | to be confirmed | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-22 | Repositories cite superseded P-03 and BOM revisions | should-fix verified | code review, not run | Docs and release | - | - | to be confirmed | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-23 | E-01 safety chain is not documented on main of any repository (drafts open) | should-fix verified | code review, not run | Safety chain | - | openamr-platform-hw (main) | to be confirmed | Register check passes on each repository carrying the E-01 rev1.4 chain; two human approvals | open | yes | audit pass 1 |
| OA-24 | UI web front end has zero tests; CI passes the empty suite | should-fix verified | code review, not run | Operator 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 removed | open | no | audit pass 1 |
| OA-26 | Runtime dependencies used but not declared in package.xml (heuristic) | should-fix inferred | code review, not run | Docs and release | - | openamr-platform-sw/ros2/src/openamrobot_bringup/package.xml | to be confirmed | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-27 | Hardware repository code owner differs from the Team document | should-fix verified | code review, not run | Docs and release | - | openamr-platform-hw/.github/CODEOWNERS:1 | to be confirmed | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-28 | Communication repository code owner is a contributor who has left | should-fix verified | code review, not run | Docs and release | - | openamrobot-comm (main) | to be confirmed | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-29 | Owner conflicts inside the plan set (contactor rows, F2S) | should-fix verified (source conflict) | code review, not run | Docs and release | - | - | to be confirmed | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-31 | Older plan text keeps superseded IMU, LiDAR spacer and camera height values | should-fix verified (source conflict) | code review, not run | Docs and release | - | - | to be confirmed | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-34 | IMU topic ownership differs from the register (/imu vs /imu/data_raw and /imu/data) | should-fix verified | code review, not run | Base 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 passes | open | no | audit pass 1 |
| OA-35 | Local costmap inflation radius below the inscribed radius | should-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 m | open | no | audit pass 1 |
| OA-35-P2 | Sudden obstacles passed at 0.117 to 0.128 m; collision monitor never engaged (S2) | should-fix verified | runtime | Base and navigation | S2 | openamr-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 test | open | yes | audit pass 2 |
| OA-36 | Docking is a custom sequencer while Nav2 opennav_docking is installed and unused | should-fix verified | code review, not run | Docking | - | 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 tests | open | no | audit pass 1 |
| OA-37 | No base-arm interlock, hold-and-move mode or lift interlock implemented | should-fix verified | code review, not run | Upper body and manipulation | - | openamr-platform-sw (main) | to be confirmed | Integration test both directions: arm goal rejected while base moves; base goal rejected while arm moves | open | yes | audit pass 1 |
| OA-38 | No physical, bench or HIL safety evidence record or record location | should-fix verified | code review, not run | Safety chain | - | - | to be confirmed | Evidence record location and procedure exist; supervised bench record attached | open | no | audit pass 1 |
| OA-39 | Manifest tracks main for every repository; no release manifest with immutable refs | should-fix verified | code review, not run | Docs and release | - | openamrobot-manifest/openamrobot.repos:5 | to be confirmed | Release manifest with exact SHAs exists and feeds the builder | open fix: IN REVIEW manifest #17 (draft) | yes | audit pass 1 |
| OA-40 | Arm planning fails at the pinned upstream (no acceleration limits); gripper controller mismatch | should-fix verified | code review, not run | Upper body and manipulation | - | openamrobot-manipulation/integration/README.md | to be confirmed | Planning test passes without strict xfail at an approved acceleration limit set | open | yes | audit pass 1 |
| OA-45-P2 | After the UI connection dropped, the simulated robot kept driving 2.25 m (S7) | should-fix verified | runtime | Simulation | S7 | openamr-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 loss | open | yes | audit pass 2 |
| OA-46 | Final alignment on site ArUco markers not implemented | should-fix verified | code review, not run | Docking | - | openamr-platform-sw/README.md:3 | @fridayali (docking and robot description) | Align on site markers in simulation to +/-1 cm and +/-1 deg | open | no | audit pass 1 |
| OA-47 | Simulation on main cannot navigate: the body filter masks the forward sector of the yaw-pi LiDAR | should-fix verified | runtime | Simulation | S1 | openamr-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 sector | open | yes | audit pass 2 |
| OA-51 | Voice plan path needs server-side bounds and confirmation before any motion | should-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 plans | open | no | audit pass 2 |
| OA-52 | Block actions rely on one-shot velocity messages and the base watchdog | should-fix verified | code review, not run | Operator UI | S7 | openamrobot-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 velocity | open | no | audit pass 2 |
| OA-53 | Undock reverses 0.7 m with no rear sensing, also when not docked; no cancel | should-fix verified | runtime | Docking | S3 | openamr-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 dock | open | yes | audit pass 2 |
| OA-54 | Docking mixes wall-clock and sim-time deadlines; times out at low real-time factor | should-fix verified | runtime | Docking | S3 | openamr-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 timeout | open | yes | audit pass 2 |
| OA-55 | Detected dock pose is re-stamped as fresh after the tag is lost | should-fix inferred | code review, not run | Docking | - | 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 dropped | open | no | audit pass 2 |
| OA-56 | One Nav2 server crash takes the reactive motion layer (collision monitor and smoother) down (S7) | should-fix verified | runtime | Base and navigation | S7 | openamr-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 holds | open | yes | audit pass 2 |
| OA-57 | Startup is not reliable: 1 of 16 simulation starts stalled in localization | should-fix verified | runtime | Base and navigation | S1, S11 | openamr-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 time | open | yes | audit pass 2 |
| OA-58 | Navigation status reports motion-source protection from a static profile, not the live graph | should-fix verified | code review, not run | Base 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 S4 | open | no | audit pass 2 |
| OA-59 | Simulated docking camera is on the legacy camera_link, not base_camera_link (Gemini 336L) | should-fix verified | runtime | Simulation | S10 | openamr-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 it | open fix: IN REVIEW PR #53 (draft) | yes | audit pass 2 |
| OA-60 | Route following reports success after a failed waypoint or cancel | should-fix verified | code review, not run | Operator 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 UI | open | no | audit pass 2 |
| OA-62 | UI angular limit 2.0 rad/s is four times the navigation limit and reaches the base unsmoothed | should-fix verified | runtime | Operator UI | S12 | openamrobot-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 arbiter | open | no | audit pass 2 |
| OA-63 | Controller may reverse with the rear unobserved; goal tolerance 0.35 m against a 5 cm stage | should-fix verified | runtime | Base and navigation | S12 | openamr-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 goals | open | no | audit pass 2 |
| OA-64 | 48 of 48 plans on mock hardware, but the lift is not a planning joint and the park pose sits at a joint limit | should-fix verified | runtime | Upper body and manipulation | S8 | PR #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 rad | open fix: IN REVIEW PR #14 (draft) | yes | audit pass 2 |
| OA-68 | Docking reports the collision monitor as down while it is active (false monitor status) | should-fix verified | runtime | Docking | S3 | openamr-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 phase | open fix: IN PROGRESS #35 branch | yes | audit pass 2 |
| OA-69 | ToF and ultrasonic sensors publish in simulation but nothing consumes them | should-fix verified | runtime | Base and navigation | S10, S12 | openamr-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 role | open | no | audit pass 2 |
| OA-13 | Lift joint has zero effort and velocity limits | later verified | code review, not run | Upper 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 owner | open | no | audit pass 1 |
| OA-25 | Skip markers name no tracking issue | later verified | code review, not run | Docs and release | - | openamr-platform-sw (main) | to be confirmed | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-30 | Inconsistent GitHub handle and robot-model ownership records | later verified | code review, not run | Docs and release | - | - | to be confirmed | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-32 | E-01 component list reuses a removed BOM ID for the charge connector | later verified (source conflict) | code review, not run | Safety chain | - | - | to be confirmed | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-33 | Shoulder spacing 307 mm and mount y +/-0.031 m not checked against upstream arm geometry | later inferred | code review, not run | Upper body and manipulation | - | - | @Tushargoel230 (upper-body model) | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-41 | apriltag_node and move_group crash on shutdown | later verified | runtime (build, test or smoke run) | Simulation | - | openamr-platform-sw (main) | @skunal3318 (navigation lead) | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-41-P2 | Shutdown crashes recur: apriltag_node on every platform stop, move_group in 2 of 3 stops | later verified | runtime | Simulation | S11 | openamr-platform-sw (main) | @skunal3318 (navigation lead) | Launch tests stop cleanly, or a tracking issue records the upstream crash | open | no | audit pass 2 |
| OA-42 | Unused hand-maintained SDF copy of the robot model | later verified | code review, not run | Simulation | - | openamr-platform-sw/ros2/src/openamrobot_description/urdf/robot.sdf | @fridayali (docking and robot description) | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-43 | Broken relative links and TODOs without issues | later verified | code review, not run | Docs and release | - | openamr-platform-sw/docs/troubleshooting/diagnostics.md | to be confirmed | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-44 | CI builds the navigation producer against an older interfaces commit | later verified | code review, not run | Interfaces | - | openamr-platform-sw/.github/workflows/nav-status-tests.yml:22 | to be confirmed | Closure test to be defined by the owner | open | no | audit pass 1 |
| OA-45 | No ros2_control base description: simulation and robot share no controller or timeout | later opinion | code review, not run | Simulation | - | openamr-platform-sw/ros2/src/openamrobot_description/urdf/gazebo_control.xacro:5 | @skunal3318 (navigation lead) | Simulated base stops within the command timeout after publisher loss | open | no | audit pass 1 |
| OA-61 | UI pose relay republishes a stale pose with its old stamp every second | later verified | code review, not run | Operator 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 stale | open | no | audit pass 2 |
| OA-65 | joint_state_clamp is on in every profile, including hardware | later opinion | code review, not run | Upper body and manipulation | - | PR #14 (branch evidence) | @Tushargoel230 (upper-body model) | Closure test to be defined by the owner | open | no | audit pass 2 |
| OA-66 | UI writes maps and routes into the installed package share directory | later verified | code review, not run | Operator 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 owner | open | no | audit pass 2 |
| OA-67 | Copied navigation launch file drifted from upstream; two simulation entry points | later verified | code review, not run | Base 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 point | open | no | audit pass 2 |
| NR-03 | Motion sources keep publishing while actuator power is off; nothing holds them at zero across a RESET | blocker inferred | code review, not run | Base and navigation | - | - | @skunal3318 (navigation lead) | After RESET, no motion from any source until an explicit operator release; verified in simulation and on the bench | open fix: NOT STARTED design draft for the Teensy path (platform-fw issue #17) | yes | this review (new) |
| NR-01 | The final velocity command is an unstamped Twist on every path | should-fix verified | code review, not run | Base and navigation | - | openamr-platform-sw/ros2/src/openamrobot_nav2/config/nav2_params.yaml | @skunal3318 (navigation lead) | See the recommendation in the architecture review | open | no | this review (new) |
| NR-02 | No SROS2 configuration found in the inspected repositories | should-fix verified | code review, not run | Operator UI | - | - | @parthkeshari (UI lead) | See the recommendation in the architecture review | open | no | this review (new) |
| NR-05 | No risk assessment found in the inspected repositories | should-fix opinion | opinion, not run | Safety chain | - | - | to be confirmed | See the recommendation in the architecture review | open | no | this review (new) |
| NR-06 | No speed limit or contact policy for the arms near people | should-fix opinion | opinion, not run | Upper body and manipulation | - | PR #14 (branch) | @Tushargoel230 (upper-body model) | See the recommendation in the architecture review | open | no | this review (new) |
| NR-04 | Package names mix two prefixes and one name exists twice | later verified | code review, not run | Interfaces | - | - | to be confirmed | See the recommendation in the architecture review | open | no | this 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).