Skip to content

Make Robolab Table Backgrounds Kinematic - #1179

Merged
xyao-nv merged 5 commits into
mainfrom
xyao/fix/table_kinematic
Sep 3, 2026
Merged

Make Robolab Table Backgrounds Kinematic#1179
xyao-nv merged 5 commits into
mainfrom
xyao/fix/table_kinematic

Conversation

@xyao-nv

@xyao-nv xyao-nv commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

Make Robolab Table Backgrounds Kinematic

Detailed description

  • Suggested by discussion here
  • Made the maple and oak Robolab table backgrounds kinematic so they remain stationary during interaction.
  • Documented how rigid_props=None preserves authored USD rigid-body behavior and when to use kinematic bodies.
  • Clarified that movable backgrounds, such as humanoid-pushed tables, must remain dynamic.

@xyao-nv
xyao-nv marked this pull request as ready for review September 3, 2026 19:53

@zhx06 zhx06 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM!

@greptile-apps

greptile-apps Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR makes the maple and oak Robolab table backgrounds kinematic so contact forces and gravity do not move them.

  • Adds kinematic_enabled=True spawn overrides to both Robolab table background definitions.
  • Documents how authored USD rigid-body properties interact with rigid_props and distinguishes fixed fixtures from intentionally movable backgrounds.

Confidence Score: 5/5

The PR appears safe to merge with no actionable correctness or security issues identified.

The two targeted table backgrounds receive the intended kinematic configuration, while the documentation clearly preserves dynamic behavior for backgrounds that are expected to move.

Important Files Changed

Filename Overview
isaaclab_arena/assets/background_library.py Adds the established kinematic rigid-body spawn configuration to two fixed Robolab table backgrounds; no concrete defect was established.
docs/pages/concepts/scene/concept_assets_design.rst Documents authored rigid-body preservation and appropriate use of kinematic backgrounds consistently with the code change.

Reviews (1): Last reviewed commit: "Remove inference changes from table fix" | Re-trigger Greptile

Comment thread docs/pages/concepts/scene/concept_assets_design.rst
Comment thread isaaclab_arena/assets/background_library.py
@arena-review-bot

Copy link
Copy Markdown
Contributor

🤖 Isaac Lab-Arena Review Bot

Summary

Two spawn_cfg_addon overrides make the maple and oak Robolab table backgrounds kinematic, plus a docs section explaining how rigid_props interacts with authored USD physics. I pulled both assets to check the fix actually lands: fixtures/table_maple.usd and fixtures/table_oak.usd each author PhysicsRigidBodyAPI on /Root with no instanceable subtree, so modify_rigid_body_properties does reach the body — the change works as intended.

Worth flagging separately to whoever owns the asset: scenes/maple_table.usda ships non-zero physics:velocity and physics:angularVelocity on /World/table, i.e. it was saved mid-simulation. Kinematic makes that moot, but the source USD is still a bit off.

Findings

🟡 Warning: docs/pages/concepts/scene/concept_assets_design.rst:107 — the documented recipe silently no-ops when a background's rigid body sits inside an instanceable subtree: apply_nested skips instance proxies, and Arena de-instances only after spawn_from_usd has applied rigid_props. Since the section right above describes exactly that case, the recipe deserves a caveat (or the rigid-props pass should move after _deinstance_nested_physics).

🔵 Improvement: isaaclab_arena/assets/background_library.py:210 — third copy of the same kinematic dict (OfficeTableBackground has it too). A module-level KINEMATIC_RIGID_PROPS constant would match how object_library.py handles RIGID_BODY_PROPS_HIGH_PRECISION.

Test Coverage

No test accompanies the fix. A cheap and useful one would go in isaaclab_arena/tests/test_background_physics_reset.py, which already builds synthetic backgrounds with rigid bodies: add a background with the kinematic spawn_cfg_addon, step a bit, and assert the body has not moved. That covers the mechanism rather than the specific asset — including the instance-proxy ordering above, which is the part most likely to break silently.

Also note maple_table_robolab is the default background across the examples, the docs, and the agentic env-gen specs, so this changes physics on the default path for everyone. That looks like the point of the PR, and no in-repo task expects the table to be pushable — just calling out the blast radius. table_oak_robolab has no in-repo consumer.

Verdict

Minor fixes needed

@xyao-nv
xyao-nv merged commit 0b63649 into main Sep 3, 2026
11 checks passed
xyao-nv added a commit that referenced this pull request Sep 3, 2026
## Summary
Make Robolab Table Backgrounds Kinematic #1179 

## Detailed description
- Suggested by discussion
[here](https://nvidia.slack.com/archives/C0BR78Z3KAR/p1788418369980489?thread_ts=1788389583.037159&cid=C0BR78Z3KAR)
- Made the maple and oak Robolab table backgrounds kinematic so they
remain stationary during interaction.
- Documented how rigid_props=None preserves authored USD rigid-body
behavior and when to use kinematic bodies.
- Clarified that movable backgrounds, such as humanoid-pushed tables,
must remain dynamic.

Signed-off-by: Xinjie Yao <xyao@nvidia.com>
Co-authored-by: Qian Lin <qianl@nvidia.com>
xyao-nv added a commit that referenced this pull request Sep 4, 2026
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.

4 participants