Skip to content

Visuals: base E-stop and RESET positions, chest layout (P-03 rev20.0 item 24) - #60

Merged
BotshareAI merged 2 commits into
mainfrom
claude/sleepy-heisenberg-3v2bho
Oct 28, 2026
Merged

BotshareAI merged 2 commits into
mainfrom
claude/sleepy-heisenberg-3v2bho

Conversation

@BotshareAI

@BotshareAI BotshareAI commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Pull request

Base E-stop and RESET in the docs visualizations, from the base mesh of openAMRobot/openamr-platform-sw#100. Scope:

  • the base mesh swap;
  • the "Safety chain (E-stop, RESET)" callout anchor moved to the E-stop position from that PR;
  • removal of the illustrative duplicates and of the tote rails on the robot page.

The chest layout labels from the title are not in this PR: their positions come later from the mechanical CAD (M-09). The Nav2 footprint is not changed.

Mesh source

  • Source: openamr-platform-sw PR #100, head 1939b82b47715b449d61685fedd4dea32b7fe4d2. That PR is still a draft, which is why this one is a draft too.
  • GLB: regenerated with that head's converter.
    • Command: python3 tools/cad/step_to_description_meshes.py --hw-repo <openamr-platform-hw at eaac115> --hub-step <B2 STEP from platform-hw PR #28 head 60bf6dc> --hub-commit 60bf6dc… --out <scratch> --build <scratch>.
    • The GLB is build/base_visual.glb, which is not committed there.
  • Result: sha256 4c126742d1048f875d20718d06d6b2f680958cfd11cf036f4a704b4dc8e391dd, 854,136 bytes. That is the value reported in #100.
  • Same as the PR head: the run's PROVENANCE.yaml and base_equipment.stl are byte-identical to the ones committed at 1939b82.
  • Embedding: in model/base_glb.js, as before (dotted base64).
  • Against the previous docs GLB (fb41c555…, #96):
    • the 44 existing nodes have identical extras;
    • 2 nodes are new, estop and reset_button, both with placeholder: true.

Pages changed

  • docs/assets/roadmap/robot.html: this page uses the shared model with the base GLB. It builds the robot with OAMR_MODEL.build(THREE, {fittings: true}), so it shows the GLB's estop and reset_button: the red E-stop at the lower front left (+y) and the blue RESET at the lower front right (-y). An earlier version of this description wrongly said the page only took the callout change. Changes:
    • Callout anchor: "Safety chain (E-stop, RESET)" moves from the front centre [0.39, 0.0, 0.25] to the E-stop hole axis [0.39, 0.13, 0.0445] m in base_link (#100: 390.00, +130.00, 44.50 mm, front-panel outer face). The anchor lies inside the estop node's bounding box.
    • Tote rails removed from buildTotes: the two aluDark rails per tote on the top cover (outer side rail and end rail at COVER + 0.006) are not in the BOM or the CAD. The totes, riser height and all pick, reach and placement logic are unchanged.
    • Limits sentence: now starts "Drawn as placeholders: the base E-stop and the RESET button at the release 001 button holes of the front panel (openamr-platform-sw #100, draft)." The rest of the sentence is kept.
    • Base source paragraph: names both placeholders with the PR link.
    • Render mode: new camera rear (raised rear three-quarter close-up), a viewpoint only, used for the stills below.
  • docs/assets/roadmap/model/model.js:
    • estop and reset_button go from geometry "none" to the GLB nodes (envelope, placeholder: true). The source text gives the hole axis, P-03 rev20.0 item 24 and #100.
    • In chassisFittings (robot page fittings), removed the illustrative base E-stop (yellow box high on the front panel at y -0.2 and its two cylinders) and the rear-deck RESET (both cylinders), plus the then-unused resetLit material.
    • Kept: the chest E-stop on the arm profile (arm kit E-stop, ARM-008, in columnFittings), the base-plate hole marks, the skirt and the decals.
  • docs/assets/roadmap/exploded.html:
    • Both parts are drawn and selectable.
    • A "Placeholder" badge appears in the component list and the legend.
    • The component card's Geometry line reads "Placeholder from datasheet dimensions (Schneider STEP not yet read); placeholder envelope at the documented position; shape and size not yet from the manufacturer model".
  • Other shared model files:
    • model/base_glb.js: the new GLB.
    • model/exploded.json: explode and opened-base offsets (with the front panel), and the stage 3 text.
    • model/finish.json: both buttons keep the GLB colours, so the safety colours keep their meaning.
  • scripts/check_roadmap.py: new rules. Each was checked against the previous files (5 errors):
    • a component and its GLB node must agree on placeholder;
    • chassisFittings must not use the E-stop or RESET materials (mats.red, mats.yellow, mats.resetLit), and resetLit must not be defined;
    • robot.html buildTotes must not add geometry outside the totes (no (this.g, calls, no aluDark).
  • scripts/render_store.js: usage line names the rear camera.
  • Not changed, after checking:
    • docs/assets/simulation/openamrobot2-dark-store-sim.html: its base is drawn from primitives and embeds no base mesh; only the chest E-stop appears.
    • docs/assets/hardware/openamrobot2-general-arrangement.html: a hand-drawn SVG with balloon 9 "Base E-stop and start button, front panel", no mesh.

Robot page stills

Made with node scripts/render_store.js 1280 720 --still 0 --cam front|rear --out <file> and saved in evidence/2026-10-28-base-estop-reset/ (palette-reduced PNG, under 1 MB).

Still Before (07452eb) After (dec6774)
Front E-stop twice (the GLB one at the lower front left and the illustrative yellow box with red head high on the front panel); RESET at the lower front right; dark rail bars on the cover beside both totes Exactly one E-stop (red, lower front left) and one RESET (blue, lower front right), both from the GLB; chest E-stop on the profile unchanged
Rear Illustrative RESET (blue) on the rear deck; rail bars on the cover No RESET on the rear deck; no bars on the cover

Build result

Base SHA 8c9116085d9f1a2f0c8bad20596f7a5330063251, head SHA dec67747d2f98c7b17a2a938c9d93bc3433e0d0e.

Command Result
python3 scripts/check_roadmap.py Passed: 6 pages
Negative check: the same checker on the previous model.js and robot.html 5 errors, as intended
bash scripts/check_docs.sh Passed, 0 warnings
mkdocs build --strict (requirements.txt) Exit 0, 0 warnings or errors
Offline link check of the built site 32,926 local links, 0 broken

Browser runs of exploded.html, the dark-store simulation and the general arrangement (Playwright, SwiftShader, built site, 1280 px) showed 0 console errors. On robot.html, an interactive screenshot times out under software WebGL, on main as well, so the page is verified with the render-mode stills above.

Not verified

  • Placeholder geometry: it is not the Schneider models. Head protrusion and body depth come from #100's placeholders; see the Nav2 footprint finding there. The footprint is unchanged here.
  • Media from earlier PRs: the robot page's store video and pictures (roadmap: no LED strips on the robot, re-rendered tour, store video and pictures in the new look #59) and the exploded-view tour videos predate these changes. They still show the old fittings and tote rails, or no base buttons. They are not re-rendered in this PR.
  • Live page and real GPU: checked after merge.

Intellectual property and provenance

  • Every commit is signed off (DCO) with the configured identity.
  • Contributor agreement and authorization: for the maintainer to confirm.
  • No third-party content added; the geometry comes from the openamr-platform-sw converter (generated boxes and cylinders).
  • No confidential, personal or credential content.

AI disclosure

Claude Code ran the openamr-platform-sw converter at the PR #100 head. It also wrote the docs changes above:

  • GLB embed, registry entries, placeholder badge and card text, callout anchor, exploded offsets and finish list;
  • removal of the duplicate fittings and the tote rails, the limits sentence and the rear render camera;
  • the checker rules, the before and after stills and this description.

It made no change to the Nav2 footprint or to any safety logic.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CbdEKoRknKntfTStGVniSo

BotshareAI and others added 2 commits October 28, 2026 00:10
model/base_glb.js now embeds the base GLB of openamr-platform-sw PR #100 at
head 1939b82b47715b449d61685fedd4dea32b7fe4d2 (regenerated with its
converter; sha256 4c126742d1048f875d20718d06d6b2f680958cfd11cf036f4a704b4dc8e391dd,
854,136 bytes, the value reported in that PR). Against the previous GLB
(#96) the 44 existing nodes are unchanged; two nodes are new: estop and
reset_button, both placeholder geometry from datasheet dimensions in the
front-panel holes of the release 001 buttons (E-stop +y, RESET -y).

- model.js: estop and reset_button take their geometry from those GLB
  nodes (envelope, placeholder) instead of "no geometry"; source text names
  the hole axis and PR #100
- exploded.html: a Placeholder badge in the component list, the legend and
  the component card; exploded.json gives both parts explode and opened-base
  offsets (with the front panel) and updates the stage 3 text
- robot.html: the "Safety chain (E-stop, RESET)" callout anchor moves from
  the front centre (0.39, 0, 0.25) to the E-stop hole axis (0.39, 0.13,
  0.0445 m in base_link); the base source paragraph names both placeholders
- finish.json: both buttons keep the GLB colours (listed as unchanged)
- check_roadmap.py: a model.js component and its GLB node must agree on
  placeholder

The Nav2 footprint is not changed. Chest labels are out of scope (M-09).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CbdEKoRknKntfTStGVniSo
Signed-off-by: Alex Reznichenko <info@botshare.ai>
robot.html builds the robot with OAMR_MODEL.build(THREE, {fittings: true}), so
it already shows the base E-stop and RESET from the GLB of openamr-platform-sw
PR #100. The robot page fittings drew a second, illustrative pair at wrong
positions; they go:

- model/model.js chassisFittings: remove the illustrative base E-stop (yellow
  box high on the front panel at y -0.2 and its two cylinders) and the
  rear-deck RESET (both cylinders); remove the now unused resetLit material.
  The chest E-stop on the arm profile (arm kit E-stop, ARM-008), the
  base-plate hole marks, skirt and decals stay.
- robot.html buildTotes: remove the two aluDark tote guide rails per tote on
  the top cover (not in the BOM or the CAD). Totes, riser height and all
  pick, reach and placement logic are unchanged.
- robot.html: the limits sentence says the base E-stop and RESET are drawn
  as placeholders at the release 001 button holes (openamr-platform-sw #100,
  draft); the rest of the sentence stays.
- robot.html render mode: camera "rear" (raised rear three-quarter close-up),
  viewpoint only, for the stills.
- check_roadmap.py: fails when chassisFittings uses an E-stop or RESET
  material (red, yellow, resetLit), when resetLit is defined, or when
  buildTotes adds geometry outside the totes or uses aluDark.

Stills before and after (render_store.js --still 0, cams front and rear) in
evidence/2026-10-28-base-estop-reset/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CbdEKoRknKntfTStGVniSo
Signed-off-by: Alex Reznichenko <info@botshare.ai>
@BotshareAI
BotshareAI marked this pull request as ready for review October 28, 2026 11:10
@BotshareAI
BotshareAI merged commit 7ac6543 into main Oct 28, 2026
6 checks passed
@BotshareAI
BotshareAI deleted the claude/sleepy-heisenberg-3v2bho branch October 28, 2026 11:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant