Skip to content

Updated TiledCamera references to Camera in downstream configs#5377

Open
bdilinila wants to merge 9 commits intoisaac-sim:developfrom
bdilinila:dev/bdilinila/OMPE-83462_update_downstream_Camera
Open

Updated TiledCamera references to Camera in downstream configs#5377
bdilinila wants to merge 9 commits intoisaac-sim:developfrom
bdilinila:dev/bdilinila/OMPE-83462_update_downstream_Camera

Conversation

@bdilinila
Copy link
Copy Markdown
Collaborator

@bdilinila bdilinila commented Apr 23, 2026

This pull request is a continuation of #5162. This changes references from TiledCamera to Camera in downstream configs.

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.
List any dependencies that are required for this change.

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have updated the changelog and the corresponding version in the extension's config/extension.toml file
  • I have added my name to the CONTRIBUTORS.md or my name already exists there

@github-actions github-actions Bot added documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team labels Apr 23, 2026
Copy link
Copy Markdown

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Choose a reason for hiding this comment

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

🤖 Isaac Lab Review Bot

Summary

This PR is a continuation of #5162, performing a straightforward renaming of TiledCameraCamera and TiledCameraCfgCameraCfg across downstream configuration files, scripts, and documentation. The changes are purely mechanical namespace updates with no logic changes. The renaming appears consistent and complete across all 30 files touched.

Architecture Impact

Self-contained. This is a downstream cleanup following the unification of TiledCamera and Camera classes in the parent PR #5162. The changes only update references in:

  • Task environment configurations (cartpole, shadow_hand, dexsuite, stack, pick_place)
  • Demo and benchmark scripts
  • Environment base classes (comment updates only)
  • Contrib sensor implementations (visuotactile sensor)
  • Test files

No API contracts are changed — the Camera and CameraCfg classes already exist and support all the functionality previously provided by TiledCamera/TiledCameraCfg.

Implementation Verdict

Ship it — this is a clean mechanical refactor with consistent application across the codebase.

Test Coverage

The PR updates test files appropriately:

  • test_visuotactile_sensor.py — updated TiledCameraCfgCameraCfg imports and usages
  • test_shadow_hand_vision_presets.py — updated docstring references

No new tests are needed as this is a renaming exercise. The existing tests will validate the renamed references work correctly.

CI Status

No CI checks available yet — recommend waiting for CI to pass before merging.

Findings

🔵 Improvement: source/isaaclab_tasks/isaaclab_tasks/direct/cartpole/cartpole_camera_presets_env_cfg.py:30-51 — Inconsistent naming convention
The inner class CartpoleCameraCfg is defined but then used to create preset instances. While functional, consider whether this class should have a leading underscore to indicate it's internal (like _ShadowHandBaseCameraCfg in shadow_hand_vision_env_cfg.py), for consistency across the codebase.

🔵 Improvement: scripts/demos/sensors/cameras.py:244,258 — Subtitle strings could be more descriptive
The subtitles were changed from "TiledCamera" to "Camera", which is correct but loses information about which camera implementation is being compared. Since both are now Camera, the subtitles could indicate the instance name (e.g., "camera" vs "tiled_camera") to maintain distinction in the visualization output:

subtitles=["camera", "tiled_camera"],  # matches scene entity names

🔵 Improvement: source/isaaclab_tasks/isaaclab_tasks/direct/cartpole_showcase/cartpole_camera/cartpole_camera_env_cfg.py:12 — Function name could be updated
The function get_tiled_camera_cfg still contains "tiled" in its name despite now returning a CameraCfg. For consistency, consider renaming to get_camera_cfg:

def get_camera_cfg(data_type: str, width: int = 100, height: int = 100) -> CameraCfg:

🔵 Improvement: source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/dexsuite/config/kuka_allegro/camera_cfg.py:55,95 — Class name could be clearer
The preset classes are named BaseCameraCfg and WristCameraCfg, but these names might be confused with the actual CameraCfg class. The original names BaseTiledCameraCfg and WristTiledCameraCfg distinguished them as preset containers. Consider names like BaseCameraPresetCfg and WristCameraPresetCfg to maintain clarity.

🔵 Improvement: source/isaaclab_contrib/docs/README.md:288 — Example code comment could be more precise
The comment on line 288 says "Camera configuration (must match render_cfg dimensions)" but doesn't explain what render_cfg is. A brief note about GELSIGHT_R15_CFG providing the render configuration would improve documentation clarity.

@bdilinila bdilinila marked this pull request as ready for review April 23, 2026 18:28
@bdilinila bdilinila requested review from huidongc and nvsekkin April 23, 2026 18:28
@bdilinila bdilinila changed the title Replaced TiledCamera to Camera references in downstream configs Updated TiledCamera references to Camera in downstream configs Apr 23, 2026
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 23, 2026

Greptile Summary

This PR continues the migration from PR #5162, replacing all remaining TiledCamera/TiledCameraCfg references with Camera/CameraCfg across 30 downstream config files, environment classes, demos, benchmarks, and contrib sensors. The changes are largely mechanical find-and-replace with several public class renames (e.g. ShadowHandVisionTiledCameraCfgShadowHandVisionCameraCfg, BaseTiledCameraCfgBaseCameraPresetCfg).

Confidence Score: 5/5

Safe to merge; all remaining findings are P2 style suggestions about stale 'tiled' naming that do not affect runtime behavior.

All changes are correct mechanical renames. No logic changes, no missing migrations that would cause runtime errors. Two leftover 'tiled' names in function identifiers and a variable attribute are style-only issues.

scripts/benchmarks/benchmark_cameras.py (function names still use 'tiled'), source/isaaclab_tasks/isaaclab_tasks/direct/cartpole/cartpole_camera_env.py (self._tiled_camera variable)

Important Files Changed

Filename Overview
scripts/benchmarks/benchmark_cameras.py TiledCamera/TiledCameraCfg imports and usages replaced with Camera/CameraCfg; function names create_tiled_cameras and create_tiled_camera_cfg still carry stale "tiled" prefix
source/isaaclab/isaaclab/envs/mdp/observations.py TiledCamera removed from TYPE_CHECKING import and type hint for sensor variable; semantically correct since Camera and TiledCamera share the same interface
source/isaaclab_tasks/isaaclab_tasks/direct/cartpole/cartpole_camera_env.py TiledCamera → Camera for import and instantiation; self._tiled_camera variable name still carries stale "tiled" prefix
source/isaaclab_tasks/isaaclab_tasks/direct/cartpole/cartpole_camera_presets_env_cfg.py MultiDataTypeCartpoleTiledCameraCfg → MultiDataTypeCartpoleCameraCfg; inner CartpoleTiledCameraCfg renamed to _CartpoleCameraCfg (private by convention); all preset usages updated
source/isaaclab_tasks/isaaclab_tasks/direct/shadow_hand/shadow_hand_vision_env_cfg.py ShadowHandVisionTiledCameraCfg → ShadowHandVisionCameraCfg; _ShadowHandBaseTiledCameraCfg → _ShadowHandBaseCameraCfg; all preset fields updated; test file also updated
source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/dexsuite/config/kuka_allegro/camera_cfg.py BaseTiledCameraCfg → BaseCameraPresetCfg; WristTiledCameraCfg → WristCameraPresetCfg; all TiledCameraCfg usages replaced; docstrings updated

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[TiledCamera / TiledCameraCfg] -->|Deprecated| B[Camera / CameraCfg]
    
    subgraph PR5162["PR #5162 (previous)"]
        C[Core sensor class merged]
    end

    subgraph PR5377["This PR — downstream config migration"]
        D[Env configs\ncartpole, shadow_hand,\ndexsuite, stack, nutpour]
        E[Demo scripts\ncameras.py, tacsl_sensor.py]
        F[Benchmark scripts\nbenchmark_cameras.py]
        G[Contrib sensors\nVisuoTactileSensor]
        H[Env base classes\ndirect_rl_env, marl_env,\nmanager_based_env comments]
    end

    PR5162 --> PR5377
    B --> D
    B --> E
    B --> F
    B --> G
    B --> H
Loading

Comments Outside Diff (1)

  1. source/isaaclab_tasks/isaaclab_tasks/direct/cartpole/cartpole_camera_env.py, line 379 (link)

    P2 Stale "tiled" in variable name

    self._tiled_camera is assigned a Camera instance here, but the attribute name still carries the old "tiled" prefix. The same stale name appears in shadow_hand_vision_env.py line 676 (self._tiled_camera = Camera(...)), and the config field tiled_camera is retained across many env cfg files without being renamed. Consider renaming to self._camera / camera for consistency with the rest of this migration.

Reviews (2): Last reviewed commit: "review bot fixes: naming and string chan..." | Re-trigger Greptile

Comment thread scripts/benchmarks/benchmark_cameras.py

@configclass
class MultiDataTypeCartpoleTiledCameraCfg(PresetCfg):
class MultiDataTypeCartpoleCameraCfg(PresetCfg):
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.

Public symbol rename without a deprecation alias, any downstream import of MultiDataTypeCartpoleTiledCameraCfg will break silently on next pull.

maybe we should call this out as a breaking change

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.

Perhaps we should only rename references to TiledCamera and not the actual environment configs? Let's discuss on Monday.



@configclass
class ShadowHandVisionTiledCameraCfg(PresetCfg):
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.

Copy link
Copy Markdown
Collaborator

@nvsekkin nvsekkin left a comment

Choose a reason for hiding this comment

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

same comment for the following changes:

MultiDataTypeCartpoleTiledCameraCfg → MultiDataTypeCartpoleCameraCfg
ShadowHandVisionTiledCameraCfg → ShadowHandVisionCameraCfg
BaseTiledCameraCfg → BaseCameraPresetCfg
WristTiledCameraCfg → WristCameraPresetCfg

we may want to add them as deprecated in case anyone is using them

@configclass
class BaseTiledCameraCfg(PresetCfg):
"""Tiled camera configurations"""
class BaseCameraPresetCfg(PresetCfg):
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.

@configclass
class WristTiledCameraCfg(PresetCfg):
"""Tiled camera configurations"""
class WristCameraPresetCfg(PresetCfg):
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.


@configclass
class MultiDataTypeCartpoleTiledCameraCfg(PresetCfg):
class MultiDataTypeCartpoleCameraCfg(PresetCfg):
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.

Perhaps we should only rename references to TiledCamera and not the actual environment configs? Let's discuss on Monday.

from isaaclab_tasks.direct.cartpole.cartpole_camera_env_cfg import CartpoleRGBCameraEnvCfg as CartpoleCameraEnvCfg


def get_tiled_camera_cfg(data_type: str, width: int = 100, height: int = 100) -> TiledCameraCfg:
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.

@nvsekkin - this was a suggestion from the reviewer bot; although, I am not sure whether this is a good move unless we add deprecation alias like your other message

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.

Disregard - I am reverting changes to methods and classes to avoid any breaking changes

@bdilinila bdilinila force-pushed the dev/bdilinila/OMPE-83462_update_downstream_Camera branch from 87c8428 to b44b9a0 Compare April 24, 2026 20:54
@bdilinila bdilinila force-pushed the dev/bdilinila/OMPE-83462_update_downstream_Camera branch from 0cb296f to da154d4 Compare April 24, 2026 22:28
@bdilinila bdilinila requested a review from pbarejko April 24, 2026 22:31
Comment thread scripts/demos/sensors/cameras.py Outdated
Comment thread scripts/demos/sensors/cameras.py Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants