Skip to content

Swastika/docs/navigation relocalization#2764

Open
swstica wants to merge 17 commits into
mainfrom
swastika/docs/navigation-relocalization
Open

Swastika/docs/navigation relocalization#2764
swstica wants to merge 17 commits into
mainfrom
swastika/docs/navigation-relocalization

Conversation

@swstica

@swstica swstica commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Problem

The navigation pages were thin and partly inaccurate (stale defaults, LFS-pointer images that Mintlify couldn't render, links were broken for mintlify.

Solution

  • Reworked the capabilities/navigation docs into a clearer, workflow-driven set
  • Fixed how the pages and their assets render on both mintlify and github.

@greptile-apps

greptile-apps Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR overhauls the navigation capability docs (index.md, deep_dive.md, relocalization.md) with clearer workflow-driven structure, fixes LFS-pointer SVG assets by replacing them with proper inline SVGs, and corrects a test helper rename in the Arduino test suite.

  • Docs rework: index.md gains a workflow comparison table; relocalization.md is expanded from a brief how-to into a full guide with config reference, troubleshooting table, file-format table, and updated sample logs; deep_dive.md adds a new Frontier Exploration section and clarifies odometry drift limits.
  • SVG fixes: go2_reloc_blueprint.svg is added as a plain committed SVG; go2nav_dataflow.svg swaps the stroke color from white to rgb(100,116,139) so the diagram renders on Mintlify's light-mode background; both assets are now committed as normal text files rather than LFS pointers.
  • Test fix: _FakeTransport in the Arduino test suite is renamed from .topic to .channel to match the .channel attribute that _collect_topics() actually reads, making test_resolve_topics_accepts_typed_lcm_channels correctly exercise the production path.

Confidence Score: 5/5

Safe to merge — changes are documentation, SVG assets, and a test helper rename with no production logic impact.

All changed files are documentation or test infrastructure. The SVG assets are now committed as plain text (fixing the LFS rendering issue). The _FakeTransport rename aligns the test helper with the attribute that _collect_topics() already reads, correcting previously ineffective test assertions. No production code paths are modified.

No files require special attention.

Important Files Changed

Filename Overview
docs/capabilities/navigation/relocalization.md Major docs rework: expanded from a brief how-to into a complete guide with workflow steps, config reference, troubleshooting table, and updated sample logs; fitness_threshold default and MIN_LOCAL_POINTS values match source code.
dimos/experimental/arduino/test_arduino_module.py Renames _FakeTransport field from .topic to .channel to align with _collect_topics() which reads transport.channel; fixes previously-broken test assertions.
docs/capabilities/navigation/index.md Reworked into a workflow comparison table with clear links; description frontmatter added; old plain-text links replaced with structured table.
docs/capabilities/navigation/deep_dive.md Title updated, prose clarified, pikchr diagram color changed from white to slate-gray for light-mode rendering, new Frontier Exploration section added, alt-text improved on all images.
docs/capabilities/navigation/assets/go2_reloc_blueprint.svg New graphviz-generated SVG committed as a normal text file (not LFS), replacing the broken pointer approach; renders correctly in both Mintlify and GitHub.
docs/capabilities/navigation/assets/go2nav_dataflow.svg Stroke/fill colors changed from white to rgb(100,116,139) so elements are visible on Mintlify's white background; data-pikchr-date attribute added.
docs/platforms/quadruped/go2/index.md Adds unitree-go2-memory and unitree-go2-relocalization blueprints to the table; fixes Data Streams link from /docs/usage/data_streams to /docs/usage/data_streams/index.md (which exists); adds Relocalization link to Deep Dive section.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Drive Go2 through space] --> B["Record: dimos run unitree-go2-memory"]
    B --> C["Optional: dimos map summary / replay"]
    C --> D["Build premap: dimos map global recording_go2 --export"]
    D --> E["Test in replay: dimos --replay run unitree-go2-relocalization"]
    E --> F{Relocalization logs OK?}
    F -- No --> G[Check .rrd in Rerun / Re-record]
    G --> B
    F -- Yes --> H["Deploy on live robot: dimos --robot-ip IP run unitree-go2-relocalization"]
    H --> I[Wait for world to map TF]
    I --> J[Navigate via nav_to / agent skills]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[Drive Go2 through space] --> B["Record: dimos run unitree-go2-memory"]
    B --> C["Optional: dimos map summary / replay"]
    C --> D["Build premap: dimos map global recording_go2 --export"]
    D --> E["Test in replay: dimos --replay run unitree-go2-relocalization"]
    E --> F{Relocalization logs OK?}
    F -- No --> G[Check .rrd in Rerun / Re-record]
    G --> B
    F -- Yes --> H["Deploy on live robot: dimos --robot-ip IP run unitree-go2-relocalization"]
    H --> I[Wait for world to map TF]
    I --> J[Navigate via nav_to / agent skills]
Loading

Reviews (10): Last reviewed commit: "fix(arduino): update test fake transport..." | Re-trigger Greptile

Comment thread .gitattributes Outdated
# Mintlify deploy does not fetch Git LFS; keep published docs assets as normal blobs.
docs/assets/dimensional-logo-master-transparent.png -filter -diff -merge
docs/assets/favicon.png -filter -diff -merge
docs/capabilities/navigation/assets/** -filter -diff -merge

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 WebP Uses Text Auto-Detection

reloc_and_nav_to.webp is now a published docs asset, but .webp is not covered by any binary or non-LFS attribute here. If Git's text=auto misclassifies this large WebP during checkout or archive creation, line-ending conversion can corrupt the image and the relocalization page renders a broken asset.

Suggested change
docs/capabilities/navigation/assets/** -filter -diff -merge
docs/capabilities/navigation/assets/** -filter -diff -merge
*.webp -text binary

@codecov

codecov Bot commented Jul 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

@@           Coverage Diff           @@
##             main    #2764   +/-   ##
=======================================
  Coverage        ?   71.89%           
=======================================
  Files           ?      984           
  Lines           ?    88245           
  Branches        ?     8082           
=======================================
  Hits            ?    63448           
  Misses          ?    22635           
  Partials        ?     2162           
Flag Coverage Δ
OS-ubuntu-24.04-arm 64.62% <100.00%> (?)
OS-ubuntu-latest 67.08% <100.00%> (?)
Py-3.10 67.07% <100.00%> (?)
Py-3.11 67.07% <100.00%> (?)
Py-3.12 67.07% <100.00%> (?)
Py-3.13 67.07% <100.00%> (?)
Py-3.14 67.08% <100.00%> (?)
Py-3.14t 67.07% <100.00%> (?)
SelfHosted-Large 30.07% <25.00%> (?)
SelfHosted-Linux 37.53% <25.00%> (?)
SelfHosted-macOS 35.91% <25.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
dimos/experimental/arduino/test_arduino_module.py 99.20% <100.00%> (ø)
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@mintlify

mintlify Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
dimensional 🟢 Ready View Preview Jul 7, 2026, 12:14 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.


## How it works

```mermaid

@leshy leshy Jul 7, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we have an autogenerator for graphs for blueprints, this ensures our docs are easily up to date with blueprint changes, and we have consistent visuals when rendering blueprints

https://github.com/dimensionalOS/dimos/blob/main/docs/capabilities/navigation/deep_dive.md#blueprint-composition

code block above the diagram in my link should be folded via

<details>
<summary>diagram source</summary>

like others, since this code is not important for docs


```pikchr fold output=assets/go2nav_dataflow.svg
color = white
color = #1e293b

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isn't mintlify also dark mode? this makes it look much worse, idk if there is a better solution, mintlify can't render transparent svg?

Image Image

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it does render transparent svg, but mintlify theme is default to system/browser. so it was breaking for light theme. lmk if this works.
Screenshot 2026-07-08 at 8 19 44 PM

Comment thread .gitattributes Outdated
docs/capabilities/memory/assets/.gitattributes -filter -diff -merge text
docs/capabilities/mapping/assets/** filter=lfs diff=lfs merge=lfs -text
# Mintlify deploy does not fetch Git LFS; keep site branding as normal blobs.
# Mintlify deploy does not fetch Git LFS; keep published docs assets as normal blobs.

@leshy leshy Jul 7, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the team concluded that we should not include blobs in github repo as it eventually significantly slows down all github checkouts. we have CI checks against this

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

May need to store direct blobs somewhere becuase yes mintlify cant pull LFS. maybe seperate repo, or we just bite the bullet and put them in the main repo, i think theyre small anyway. Just want the docs site to look good and not reuqire a ton of maintance overhead

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@leshy @spomichter

If we were to include all the assets directly, it would quickly balloon the repo.
For example, in the current checkout we have 1510 text files, totaling 11MiB. But Just assets/5-all.png alone is 1.1 MiB, and some assets are larger.

I think one option would be to link directly to the GitHub hosted link, For example, docs/capabilities/navigation/assets/5-all.png would be https://media.githubusercontent.com/media/dimensionalOS/dimos/main/docs/capabilities/navigation/assets/5-all.png .

Another would be for us to host the assets somewhere ourselves.

If we do include the assets directly into Git, we'll have to carry those files forever!...

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

main branch can have assets in LFS, i can create a new docs branch with git blobs and deploy mintlify docs on that new branch.

will remove the git blobs from this PR.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@swstica I don't think that's a long term solution. That branch will have to be merged into main eventually, no? So it's just postponing things.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@paul-nechifor agreed. will either host them somewhere as you suggested or move some assets to git blob.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you getting this as well:

Image

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

Comment thread docs/capabilities/navigation/relocalization.md
Comment thread docs/capabilities/navigation/relocalization.md
Comment thread docs/capabilities/navigation/relocalization.md
Pre-commit end-of-file-fixer fails when the generated SVG has multiple
blank lines after </svg>.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Jul 9, 2026
@github-actions github-actions Bot added ready-to-merge Required CI checks have passed on this PR and removed ready-to-merge Required CI checks have passed on this PR labels Jul 9, 2026
…ion-relocalization

Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	docs/docs.json
@github-actions github-actions Bot removed the ready-to-merge Required CI checks have passed on this PR label Jul 10, 2026
The zenoh transport API refactor (#2753) renamed transport.topic to
transport.channel in NativeModule._collect_topics, but the ArduinoModule
test suite (#1879) landed independently with a _FakeTransport still
exposing .topic. Once both merged to main, _collect_topics read .channel,
found nothing, and three tests broke. Align the fake with the current
transport API.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Jul 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge Required CI checks have passed on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants