Skip to content

Rename UrdfManager to UsdManager - #5111

Open
jeff-hykin wants to merge 100 commits into
jeff/feat/usd_manager_livoxfrom
jeff/feat/usd_manager_rename
Open

jeff-hykin wants to merge 100 commits into
jeff/feat/usd_manager_livoxfrom
jeff/feat/usd_manager_rename

Conversation

@jeff-hykin

@jeff-hykin jeff-hykin commented Nov 6, 2026 •

Copy link
Copy Markdown
Member

Renames UrdfManager to UsdManager, since the module now serves USD.

USD is the description format dimos is moving to, and this module is the thing that answers
for a robot's description, so it takes the name of where it is going rather than of the file
format it currently reads.

Mechanical, with the docstrings rewritten to be honest about the half-way state: the model it
loads is still authored as URDF and its tf and file serving are still URDF-shaped, while
get_usd / get_scene are the USD side, converting on the way out.

  dimos/robot/urdf_manager.py                -> usd_manager.py
  dimos/robot/urdf_manager_point_clearing.py -> usd_manager_point_clearing.py
  dimos/robot/test_urdf_manager.py           -> test_usd_manager.py
  UrdfManager / UrdfManagerConfig / UrdfManagerPointClearing[Config] -> Usd*
  all_blueprints keys: urdf-manager[-point-clearing] -> usd-manager[-point-clearing]

Nothing outside the repo referenced the registry keys, and the lowercased blueprint-config
key (urdfmanager) appeared nowhere, so the only user-visible breaks are the registry keys
themselves and the RPC topic, which move together with the deployment.

No alias is left behind: a rename with a compatibility alias is not a rename. Note this will
conflict with the open PRs that touch urdf_manager.py (#5032, #5020, #5002).

@github-actions github-actions Bot left a comment •

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.

go2 replay realtime (arm64)

Details
Benchmark suite Current: a71a821 Previous: 5bc57a0 Ratio
peak memory 1745.973 MB 1776.91 MB 0.98
peak threads 376 threads 376 threads 1
network (transport) 2733.761 MB 2730.972 MB 1.00
disk write 1.875 MB 1.59 MB 1.18
instructions 137.074 G 138.52 G 0.99

This comment was automatically generated by workflow using github-action-benchmark.

@codecov

codecov Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 63.38028% with 26 lines in your changes missing coverage. Please review.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
dimos/robot/test_usd_manager.py 44.68% 26 Missing ⚠️
@@                       Coverage Diff                       @@
##           jeff/feat/usd_manager_livox    #5111      +/-   ##
===============================================================
- Coverage                        82.47%   82.46%   -0.01%     
===============================================================
  Files                             1872     1872              
  Lines                           184719   184720       +1     
  Branches                         15505    15505              
===============================================================
- Hits                            152341   152338       -3     
- Misses                           28392    28396       +4     
  Partials                          3986     3986              
Components Coverage Δ
Tests 94.91% <53.57%> (ø)
Flag Coverage Δ
OS-macos-latest 77.21% <63.38%> (-0.01%) ⬇️
OS-ubuntu-24.04-arm 76.98% <61.97%> (+<0.01%) ⬆️
OS-ubuntu-latest 77.35% <63.38%> (-0.01%) ⬇️
Py-3.10 77.35% <63.38%> (+<0.01%) ⬆️
Py-3.11 77.32% <63.38%> (-0.01%) ⬇️
Py-3.12 77.34% <63.38%> (+0.01%) ⬆️
SelfHosted-Linux 40.42% <53.52%> (+<0.01%) ⬆️
SelfHosted-macOS 40.15% <53.52%> (+<0.01%) ⬆️

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

Files with missing lines Coverage Δ
dimos/robot/all_blueprints.py 100.00% <ø> (ø)
dimos/robot/deeprobotics/m20/blueprints/m20.py 100.00% <100.00%> (ø)
...s/robot/deeprobotics/m20/blueprints/m20_sim_nav.py 100.00% <100.00%> (ø)
...ot/deeprobotics/m20/blueprints/test_m20_sim_nav.py 100.00% <100.00%> (ø)
dimos/robot/galaxea/r1pro/test_joint_tf.py 100.00% <100.00%> (ø)
dimos/robot/manipulators/common/blueprints.py 91.66% <100.00%> (ø)
...ipulators/makermods_metal/blueprints/connection.py 100.00% <100.00%> (ø)
...obot/manipulators/openarm/blueprints/connection.py 100.00% <100.00%> (ø)
...obot/manipulators/openyam/blueprints/connection.py 100.00% <100.00%> (ø)
...imos/robot/manipulators/piper/blueprints/teleop.py 100.00% <100.00%> (ø)
... and 6 more

... and 5 files with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Resolved in favour of the incoming standard-USD content (displayName, mesh references, no
custom attributes) with this branch's UsdManager naming applied over it.
Resolved in favour of the incoming [asset_root, usd] answer and the removed get_scene
deadline, with this branch's UsdManager naming applied over it.
…d_manager_livox

Straightforward merge; the UsdManager naming is applied over the test lines the merge brought
in under their old spelling.
Resolved in favour of the incoming tests, with the UsdManager naming applied over them.
…ger_livox

Resolved in favour of the incoming versions, with the UsdManager naming applied over them.
assets/README.md conflicted only because this branch had renamed mentions the file no longer
makes; it goes back to main's version, which names no manager at all.
Resolved in favour of the incoming tests with the UsdManager naming applied over them.
Took the trimmed versions and re-applied the UsdManager naming over them.
@greptile-apps

greptile-apps Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 4/5

[Medium impact] The rename reaches module selection and robot blueprint imports across several robot workflows.

The PR appears safe to merge, with non-blocking fixes for stale test types and removed documentation.

Findings

  1. P2 Tests reference the removed name ▶
  2. P2 Blueprint operating instructions disappear ▶

Summary

Renames UrdfManager and its point-clearing subclass to UsdManager, updating imports, registry entries, blueprints, and tests.

  • The robot scene service and its callers now use the name UsdManager.

Reviews (1) · Last reviewed commit: "Merge branch 'jeff/feat/usd_manager_livo..." · Reviewed by Greptile

CircularMountError,
Mount,
UrdfManager,
UsdManager,

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 Tests reference the removed name

Two test annotations still use UrdfManager at lines 890 and 909, but this import now provides only UsdManager. Postponed annotations keep pytest from failing on import, but type-aware tools cannot resolve the old name. Update both annotations to UsdManager.

A TwistStamped on ``ee_twist_command`` moves the gripper tip at that
velocity (m/s, rad/s, world frame); a zero twist, or none for 0.3 s, stops it.
"""
pass

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 Blueprint operating instructions disappear

Replacing HybridTeleopCoordinator's description with pass removes the jog frame, units, and stop timeout. The same cleanup removes the hold protocol and the reason for the larger TF tolerances in manipulation_mapping. These details help teammates use and change the blueprints correctly. Restore the descriptions and comments with updated manager names.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

…_rename

# Conflicts:
#	dimos/robot/test_usd_manager.py
This PR has been flagged CONFLICTING for twelve hours and it is not. Measured against its
own base, jeff/feat/usd_manager_livox:

    base is an ancestor of head   yes
    ahead / behind                92 / 0
    git merge-tree conflicts      0

A fast-forward cannot conflict. The flag is GitHub's, and the cost of it is real: GitHub
will not build a test merge for a PR it believes is dirty, so this PR and the one based on
it have never had a pull_request CI run -- their only green came from a workflow_dispatch,
where the self-hosted suite is skipped.

Nothing here changes a byte of the tree. It exists to make GitHub recompute the merge state.
main grew hybrid_teleop_sim's collection session while this branch deleted that file's
docstrings; the code is main's and the docstrings stay deleted.
main's Piper teleop blueprint imports dimos.robot.urdf_manager, which this branch renames, so
the merge left a blueprint that cannot be imported at all -- and the webxr blueprint that
pulls it in, and the a1z test that pulls that in. The manager's own test still spelled the old
name in two annotations, which only survived because they are never evaluated.
Every conflict was the rename against a restored docstring: kept the UsdManager
names and the docstring main wrote, and pointed MULTI_DOF_JOINT_TYPES's import at
its new home in dimos.robot.joint_tf.
Pim, on #5102: "don't delete prexisting comments/docstrings". The rename touched
thirteen files that already existed on main, and this branch's stripping pass took
their comments with it -- 29 docstrings and 24 comments, none of them about
UrdfManager or UsdManager. The xarm teleop ones are the costly kind: which task
drives which joint, what an app's twist timeout is for, that drive_joint is open
at 0 rad.

Restored from main by qualified name, so only the ones whose code is still here
came back. One comment the tool could not place was checked by hand and is not
lost: the "return every sample" note moved with max_candidates into grasp.py.
The only conflict was test_usd.py, renamed here and deleted there; took the
deletion. The rename travels with the file onto #4911, which is where it lands.
jeff-hykin added a commit that referenced this pull request Nov 11, 2026
…ve up

Jeff asked for #5109 to be empty, with the lidar work in a later PR. This is the
PR that reads it: `dimos/sim2/livox.py` here imports `mid360_usd`, and without
these two files this branch does not import at all
(`ImportError: cannot import name 'mid360_usd'`).

The files arrive renamed, since this branch sits above #5111: the mount-contract
test now imports `dimos.robot.usd_manager` and is named for it.
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Nov 11, 2026

This branch was successfully deployed

No deployments
cachix — 1ff0f9d1 Deployed Nov 10, 2026 by jeff-hykin via cachix-build-macos #16883
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.

1 participant