Skip to content

DRAFT: Camera intrinsics variation#913

Draft
alexmillane wants to merge 6 commits into
alex/feature/variation_build_time_effectsfrom
alex/feature/camera_intrinsics_variation
Draft

DRAFT: Camera intrinsics variation#913
alexmillane wants to merge 6 commits into
alex/feature/variation_build_time_effectsfrom
alex/feature/camera_intrinsics_variation

Conversation

@alexmillane

Copy link
Copy Markdown
Collaborator

Summary

Adds a run-time variation for camera intrinsics.

Detailed description

  • Camera variation is implemented as a run-time variation.
  • Doing so requires that the variation switches off camera tiling at build-time.

- Perturb a pinhole camera's focal lengths (fx, fy) and principal point
  (cx, cy) by sampled fractional amounts via the USD aperture/offset params.
- Register on the droid and franka wrist cameras alongside the extrinsics
  variation.

Signed-off-by: alex <amillane@nvidia.com>
…ature/camera_intrinsics_variation

# Conflicts:
#	isaaclab_arena/embodiments/droid/droid.py
#	isaaclab_arena/embodiments/embodiment_base.py
#	isaaclab_arena/embodiments/franka/franka.py
#	isaaclab_arena/embodiments/g1/g1.py
#	isaaclab_arena/embodiments/gr1t2/gr1t2.py
#	isaaclab_arena/utils/cameras.py
#	isaaclab_arena_environments/gr1_put_and_close_door_environment.py
#	isaaclab_arena_environments/gr1_table_multi_object_no_collision_environment.py
@alexmillane alexmillane changed the title Alex/feature/camera intrinsics variation DRAFT: Camera intrinsics variation Jul 15, 2026

@alexmillane alexmillane left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Self review 1

Comment on lines +399 to +404
"""DROID three-camera rig using standard (untiled) cameras, mounted with pre-set poses.

This is the source of truth for the DROID camera poses and intrinsics. Inherits
:class:`~isaaclab_arena.utils.cameras.ArenaCameraCfg`, whose ``get_cfg`` returns the untiled
rig or a tiled copy per ``use_tiled_camera``.
"""

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Revert to the docstring in the underlying branch.

Comment on lines +386 to +394
# EventTerm(
# func=franka_stack_events.randomize_joint_by_gaussian_offset,
# mode="reset",
# params={
# "mean": 0.0,
# "std": 0.02,
# "asset_cfg": SceneEntityCfg("robot"),
# },
# )

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Restore this.

Comment on lines +243 to +248
"""Franka wrist-camera rig using a standard (untiled) camera.

Source of truth for the wrist-camera intrinsics and default pose. Tiling is selected via
the inherited :class:`~isaaclab_arena.utils.cameras.ArenaCameraCfg`; the offset is set from
the embodiment's ``camera_offset``.
"""

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

restore docstring to underlying branch.

Comment on lines +490 to +495
"""G1 head-camera rig using a standard (untiled) camera.

Source of truth for the head-camera intrinsics and default pose. Tiling is selected via the
inherited :class:`~isaaclab_arena.utils.cameras.ArenaCameraCfg`; the offset is set from the
embodiment's ``camera_offset``.
"""

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

restore to underlying branch.

Comment on lines +349 to +354
"""GR1T2 head POV camera rig using a standard (untiled) camera.

Source of truth for the POV-camera intrinsics and default pose. Tiling is selected via the
inherited :class:`~isaaclab_arena.utils.cameras.ArenaCameraCfg`; the offset is set from the
embodiment's ``camera_offset``.
"""

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

restore to underlying branch.

Comment on lines +25 to +30
"""Mixin for embodiment camera-rig configclasses that exposes an untiled/tiled selector.

CameraCfg configclasses subclass this and declare camera fields (as per usual). The get_cfg
then returns the rig un-tiled, or a tiled copy dependent on the value of ``use_tiled_camera``.
A rig configclass subclasses this and declares its cameras as ``CameraCfg`` fields (the
untiled source of truth). :meth:`get_cfg` then returns the rig untiled, or a tiled copy of
it, per :attr:`use_tiled_camera`. Embodiments assign such a rig to ``camera_config``; the
env builder resolves it via :meth:`get_cfg`.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

restore to underlying branch.


# Backing flag; tiled by default. Kept as a ClassVar so it is not treated as a camera field; instances shadow it.
_use_tiled_camera: ClassVar[bool] = True
"""Backing flag; tiled by default. Kept as a ClassVar so it is not treated as a camera field; instances shadow it."""

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

restore to underlying branch.

Comment on lines +59 to +62
"""Return a copy of this rig with every untiled CameraCfg field converted to tiled.

This instance is left untouched; non-camera fields and already-tiled cameras are copied as-is.
"""

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

restore to underlying branch.

Comment on lines +71 to +75
"""Return a TiledCameraCfg mirroring the settings of an untiled CameraCfg.

All init fields are copied except ``class_type``, so the returned cfg keeps the tiled
camera's own ``class_type``.
"""

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

restore to underlying branch.

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.

1 participant