Skip to content

Commit 2f310d3

Browse files
committed
TeleopPanel: add enable_ghost flag, skip ghost on empty prefix
When gripper_body_prefix is empty (no gripper, e.g. ADA with welded tool), an empty prefix matches every body in the model — creating a massive ghost of the entire scene at origin. Add enable_ghost parameter (default True). The generic console passes enable_ghost=False when there's no gripper prefix. Robot-specific panel_setup callbacks can then create a correctly-prefixed ghost parented to the gizmo.
1 parent 8e8f950 commit 2f310d3

1 file changed

Lines changed: 11 additions & 8 deletions

File tree

src/mj_viser/teleop_panel.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ def __init__(
204204
request_abort_fn: object | None = None,
205205
event_loop: object | None = None,
206206
ownership: object | None = None,
207+
enable_ghost: bool = True,
207208
):
208209
self._arm = arm
209210
self._controller = controller
@@ -216,6 +217,7 @@ def __init__(
216217
self._request_abort_fn = request_abort_fn # callable → None, triggers abort
217218
self._event_loop = event_loop # PhysicsEventLoop — steps teleop from main thread
218219
self._ownership = ownership # OwnershipRegistry for per-arm preemption
220+
self._enable_ghost = enable_ghost
219221
self._gizmo = None
220222
self._ghost = None
221223
self._is_teleop_active = False
@@ -242,14 +244,15 @@ def setup(self, gui: viser.GuiApi, viewer: MujocoViewer) -> None:
242244
)
243245

244246
# Ghost hand as child of gizmo — moves automatically
245-
self._ghost = GhostHand(
246-
server,
247-
self._model,
248-
self._data,
249-
self._gripper_prefix,
250-
self._arm.ee_site_id,
251-
name=f"{gizmo_name}/ghost",
252-
)
247+
if self._enable_ghost and self._gripper_prefix:
248+
self._ghost = GhostHand(
249+
server,
250+
self._model,
251+
self._data,
252+
self._gripper_prefix,
253+
self._arm.ee_site_id,
254+
name=f"{gizmo_name}/ghost",
255+
)
253256

254257
@self._gizmo.on_update
255258
def _on_gizmo_update(event) -> None:

0 commit comments

Comments
 (0)