Commit b1aba48
authored
Move TiledCamera implementation into Camera and deprecate TiledCamera. (#5162)
# Description
Unify `Camera` and `TiledCamera` by moving TiledCamera's renderer-based
implementation into `Camera` and making `TiledCamera` a deprecated
subclass alias.
### What changed
**`base_renderer.py` (interface change):**
- `write_output(render_data, output_name, output_data)` replaced by
`read_output(render_data, camera_data)`. The renderer now receives the
full `CameraData` instance and owns the per-output iteration loop.
**`camera.py`:**
- `_initialize_impl` now uses `Renderer(cfg.renderer_cfg)` +
`renderer.prepare_stage()` + `renderer.create_render_data()` instead of
replicator imports and per-camera render product loops
- `_create_buffers` uses eager pre-allocation + `renderer.set_outputs()`
instead of lazy allocation
- Removed: `_rep_registry`, `_render_product_paths`,
`_create_annotator_data()`, `_process_annotator_output()`,
`render_product_paths` property, `omni.replicator.core` import,
`SyntheticData` import
**`camera_data.py`: `info` type change:**
- `CameraData.info` changed from `list[dict[str, Any]]` to `dict[str,
Any]`, matching the Replicator annotator output structure. The old
`list[dict]` was an artifact of the original `Camera`'s
per-camera-annotator architecture. With tiled rendering, all cameras
share a single annotator pipeline, so the per-camera list dimension
carried no information. Access is now
`camera.data.info["semantic_segmentation"]` directly.
**`tiled_camera.py`:**
- Replaced entire class with a thin `class TiledCamera(Camera)` subclass
that emits a `DeprecationWarning` on instantiation
**`tiled_camera_cfg.py`:**
- Added `DeprecationWarning` in `__post_init__`
**Test suite:**
- Ported 6 unique tests from `test_tiled_camera.py` → `test_camera.py`
(multi-regex init, all annotators, segmentation non-colorize, normals
unit length, data types ordering, frame offset)
- Slimmed `test_tiled_camera.py` to 4 focused deprecation/compatibility
tests
- Updated `info` assertions across all test files to use flat `dict`
access pattern (`info["key"]` instead of `info[0]["key"]`)
### Breaking changes
- `render_product_paths` property removed (confirmed zero external usage
across entire repo — only referenced internally in `camera.py`,
`isaac_rtx_renderer.py`, and `ovrtx_renderer.py`)
- `CameraData.info` changed from `list[dict[str, Any]]` to `dict[str,
Any]`. `Camera` users (old): replace
`camera.data.info[cam_idx][data_type]` with
`camera.data.info[data_type]`. `TiledCamera` users (old): access pattern
`camera.data.info[data_type]` is unchanged.
- `BaseRenderer.write_output` replaced by
`BaseRenderer.read_output(render_data, camera_data)`. Custom renderer
implementations must update their signature.
## Type of change
- Breaking change (existing functionality will not work without user
modification)
## Screenshots
## Checklist
- [x] I have read and understood the [contribution
guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)
- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [x] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] I have updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [x] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there1 parent abbf838 commit b1aba48
21 files changed
Lines changed: 636 additions & 2307 deletions
File tree
- docs/source/how-to
- scripts/tutorials/04_sensors
- source
- isaaclab_newton/isaaclab_newton/renderers
- isaaclab_ov/isaaclab_ov/renderers
- isaaclab_physx/isaaclab_physx/renderers
- isaaclab
- config
- docs
- isaaclab
- renderers
- sensors
- camera
- ray_caster
- test
- renderers
- sensors
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| 76 | + | |
76 | 77 | | |
77 | 78 | | |
78 | 79 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
24 | 28 | | |
25 | 29 | | |
26 | 30 | | |
| |||
32 | 36 | | |
33 | 37 | | |
34 | 38 | | |
35 | | - | |
| 39 | + | |
36 | 40 | | |
37 | 41 | | |
38 | 42 | | |
39 | 43 | | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | 44 | | |
48 | 45 | | |
49 | 46 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
132 | 132 | | |
133 | 133 | | |
134 | 134 | | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | 135 | | |
139 | 136 | | |
140 | | - | |
| 137 | + | |
| 138 | + | |
141 | 139 | | |
142 | 140 | | |
143 | 141 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
232 | 232 | | |
233 | 233 | | |
234 | 234 | | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | 235 | | |
239 | 236 | | |
240 | | - | |
| 237 | + | |
| 238 | + | |
241 | 239 | | |
242 | 240 | | |
243 | 241 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
4 | 43 | | |
5 | 44 | | |
6 | 45 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
17 | 18 | | |
18 | 19 | | |
19 | 20 | | |
| |||
93 | 94 | | |
94 | 95 | | |
95 | 96 | | |
96 | | - | |
97 | | - | |
| 97 | + | |
| 98 | + | |
98 | 99 | | |
99 | 100 | | |
100 | 101 | | |
101 | | - | |
102 | | - | |
| 102 | + | |
| 103 | + | |
103 | 104 | | |
104 | 105 | | |
105 | 106 | | |
| |||
0 commit comments