Skip to content

Commit 0b63649

Browse files
xyao-nvqianl-nv
andauthored
Make Robolab Table Backgrounds Kinematic (#1179)
## Summary Make Robolab Table Backgrounds Kinematic ## 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>
1 parent 1128ec4 commit 0b63649

2 files changed

Lines changed: 32 additions & 0 deletions

File tree

docs/pages/concepts/scene/concept_assets_design.rst

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,32 @@ ownership away from the background.
8787
Instanceable subtrees that contribute dynamic physics are materialized at spawn
8888
time because physics views cannot control dynamic instance proxies.
8989

90+
Rigid-body behavior
91+
^^^^^^^^^^^^^^^^^^^
92+
93+
A background's ``BASE`` type does not remove physics authored in its USD. The
94+
``rigid_props`` value in ``spawn_cfg_addon`` is forwarded to Isaac Lab's USD spawner.
95+
When ``rigid_props=None`` (the default), the spawner does not add or modify rigid-body
96+
properties. A prim that already has ``UsdPhysics.RigidBodyAPI`` therefore keeps its
97+
authored behavior; for example, an authored dynamic body can move when gravity or
98+
contact forces act on it.
99+
100+
For a background fixture that must not move, such as a table used only as a fixed
101+
work surface, make its rigid bodies kinematic:
102+
103+
.. code-block:: python
104+
105+
spawn_cfg_addon = {
106+
"rigid_props": sim_utils.RigidBodyPropertiesCfg(kinematic_enabled=True),
107+
}
108+
109+
A kinematic body still collides with dynamic objects, but gravity, forces, and contacts
110+
do not displace it. Its pose changes only when it is explicitly commanded. Do not use
111+
this setting when the background should respond physically. For example, a table that
112+
a humanoid is expected to push must remain dynamic: retain ``rigid_props=None`` when
113+
the USD already authors it as dynamic, or explicitly set ``kinematic_enabled=False``
114+
to override an authored kinematic setting.
115+
90116
Object references
91117
-----------------
92118

isaaclab_arena/assets/background_library.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,9 @@ class MapleTableRobolab(LibraryBackground):
205205
tags = ["background", "robolab"]
206206
usd_path = f"{ARENA_NUCLEUS_DIR}/Arena/assets/object_library/srl_robolab_assets/scenes/maple_table.usda"
207207
object_min_z = -0.05
208+
spawn_cfg_addon = {
209+
"rigid_props": sim_utils.RigidBodyPropertiesCfg(kinematic_enabled=True),
210+
}
208211

209212

210213
@register_asset
@@ -213,6 +216,9 @@ class TableOakRobolab(LibraryBackground):
213216
tags = ["background", "robolab"]
214217
usd_path = f"{ARENA_NUCLEUS_DIR}/Arena/assets/object_library/srl_robolab_assets/fixtures/table_oak.usd"
215218
object_min_z = -0.05
219+
spawn_cfg_addon = {
220+
"rigid_props": sim_utils.RigidBodyPropertiesCfg(kinematic_enabled=True),
221+
}
216222

217223

218224
# -----------------------------------------------------------------------------

0 commit comments

Comments
 (0)