Skip to content

Update obstacle docs for open (uncapped) cylinder geometry - #5283

Open
Shannon Bradshaw (shannonbradshaw) wants to merge 3 commits into
mainfrom
claude/update-open-cylinder-geometry
Open

Update obstacle docs for open (uncapped) cylinder geometry#5283
Shannon Bradshaw (shannonbradshaw) wants to merge 3 commits into
mainfrom
claude/update-open-cylinder-geometry

Conversation

@shannonbradshaw

Copy link
Copy Markdown
Collaborator

RDK #6383 added a capped field to GeometryConfig. When set to false, a cylinder becomes an open tube with no end caps, leaving the hollow interior as free space so the motion planner can route through it. This models round containers (pots, pans, tubes) that a robot needs to reach into, replacing the previous workaround of approximating a round wall with multiple boxes.

Source changes

Docs changes

  • docs/motion-planning/obstacles/overview.md: Updated the geometry types table to include the optional capped field on cylinder, with a description of what it does
  • docs/motion-planning/obstacles/configure-workspace-obstacles.md: Added a "Round containers (open cylinder)" subsection under "Containers and work-cell boundaries" with a JSON example; clarified existing caveats apply specifically to the open-box pattern

How I found these

  • Xref lookup: config-xref.md (GeometryConfig), flows.md (motion planning)
  • Grep matches: 6 files reference "cylinder" in docs; 2 pages needed updating (overview and configure)

Generated by daily docs change agent


Generated by Claude Code

rdk#6383 added a `capped` field to GeometryConfig. When set to false,
a cylinder becomes an open tube with no end caps, letting the planner
route through the hollow interior. This is useful for modeling round
containers like pots, pans, and tubes that a robot needs to reach into.

- Update geometry types table in overview.md with the new `capped` field
- Add "Round containers (open cylinder)" section to configure page
- Clarify existing caveats apply specifically to open boxes
@netlify

netlify Bot commented Aug 25, 2026

Copy link
Copy Markdown

Deploy Preview for viam-docs ready!

Name Link
🔨 Latest commit 574c807
🔍 Latest deploy log https://app.netlify.com/projects/viam-docs/deploys/6a9847fda4e83300077c0b0e
😎 Deploy Preview https://deploy-preview-5283--viam-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 44 (🟢 up 2 from production)
Accessibility: 99 (no change from production)
Best Practices: 100 (no change from production)
SEO: 92 (no change from production)
PWA: 60 (no change from production)
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@viambot viambot added the safe to build This pull request is marked safe to build from a trusted zone label Aug 25, 2026
@jeremyrose-viam

Copy link
Copy Markdown
Contributor

This change is not in the current RDK release, so we should hold publication until at least the week of 8/31. There also seems to be some current work going on with cylinder geometry generally, so let's take a close look at this at that time and confirm with engineering if necessary.

@jeremyrose-viam

Copy link
Copy Markdown
Contributor

A few things came up while reviewing that I'd like your take on:

1. Structural placement: the new "Round containers (open cylinder)" subsection lives under "Containers and work-cell boundaries," but that section is specifically about erh:vmodutils:obstacle-open-box — a module that only builds rectangular five-box-face containers and has nothing to do with cylinders. Nesting the cylinder content there implies a relationship that doesn't exist. Should we keep the use-case framing (a reader thinking "I have a pot," not "I have a cylinder") but make explicit that "containers" has two different mechanisms: a purpose-built module for rectangular ones, and a plain geometry primitive (via erh:vmodutils:obstacle or rdk:builtin:fake) for round ones — each pointing at the specific component to add?

2. Missing the "which component" step: the current snippet is a bare {"geometry": {"type": "cylinder", ...}} fragment with no surrounding component walkthrough. Every other pattern in this doc (see "Configure a single primitive") shows the full steps — search for X, add to machine, name it, paste this into attributes/frame. Should we match that structure so a reader can act on it directly, rather than having to infer which of the three existing patterns it fits into?

Separately, and not blocking this PR: overview.md's geometry-types table lists Sphere, Point, and Mesh, but configure-workspace-obstacles.md has zero worked examples for any of them. Worth a follow-up once this one's settled.

Move "Round containers (open cylinder)" out of the obstacle-open-box
section into its own peer section with full component walkthroughs
(both erh:vmodutils:obstacle and rdk:builtin:fake patterns). Add open
cylinder to the pattern summary table. Restore original caveats wording.

Addresses jeremyrose-viam review feedback on structural placement and
missing component walkthrough.
@shannonbradshaw

Copy link
Copy Markdown
Collaborator Author

Agreed on the hold until the RDK release ships — no rush on merging.

Pushed a restructure addressing both points:

  1. Structural placement: Moved the open cylinder content out of the obstacle-open-box section into its own peer section ("Configure a round container (open cylinder)") at the same level as "Configure a single primitive" and "Containers and work-cell boundaries." Added it to the pattern summary table at the top so a reader scanning the page sees four distinct patterns. The obstacle-open-box section and its caveats are restored to their original scope (rectangular only).

  2. Full component walkthrough: Added step-by-step instructions for both erh:vmodutils:obstacle (geometry list in attributes) and rdk:builtin:fake (geometry in frame JSON), matching the structure of the existing "Configure a single primitive" and "Default obstacle pattern" sections.

Happy to adjust further when you review with engineering the week of 8/31.


Generated by Claude Code

@jeremyrose-viam

Copy link
Copy Markdown
Contributor

This RDK change is shipped in v1.6.0, but it appears there's still quite a bit of churn with cylinders currently. viamrobotics/rdk#6388 and viamrobotics/api#894 are still in draft, and in the meantime there seem to be issues with cylinder behavior.

Should we consider holding this doc update until cylinder behavior is consistent?

@shannonbradshaw

Copy link
Copy Markdown
Collaborator Author

Makes sense — holding until the cylinder work stabilizes. I'll keep this PR open and check back once rdk#6388 and api#894 land to see if the capped field or open cylinder behavior changed. If the API surface shifts, I'll update the PR to match before it merges.


Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting release safe to build This pull request is marked safe to build from a trusted zone

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants