Adds perspective video recording via Newton GL viewer for Kitless backends; Fix for Kitfull backends camera position#5011
Conversation
f2ba1f7 to
7e22609
Compare
Greptile SummaryThis PR introduces a pluggable Key concerns:
Confidence Score: 1/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant Env as Environment (__init__)
participant VRCfg as VideoRecorderCfg
participant VR as VideoRecorder
participant Backend as Kit / Newton GL Backend
Env->>VRCfg: cfg.video_recorder.render_mode = render_mode
Env->>VR: VideoRecorder(cfg, scene)
VR->>VR: _resolve_video_backend(scene)
alt Kit backend (PhysX / Isaac RTX)
VR->>Backend: IsaacsimKitPerspectiveVideo(cfg)
else Newton GL backend
VR->>Backend: NewtonGlPerspectiveVideo(cfg)
end
loop Each render() call
Env->>VR: render_rgb_array()
VR->>Backend: render_rgb_array()
alt Kit
Backend->>Backend: set_camera_view (lazy, first call only)
Backend->>Backend: annotator.get_data()
else Newton GL
Backend->>Backend: _ensure_viewer() (lazy)
Backend->>Backend: viewer.begin_frame / log_state / end_frame
Backend->>Backend: viewer.get_frame().numpy()
end
Backend-->>VR: np.ndarray (H×W×3)
VR-->>Env: np.ndarray (H×W×3)
end
|
…portError; precommit
The test file added in #5011 was broken at collection time: it used importlib to load a nonexistent sibling file, referenced obsolete config field names, and used patch() targets that cannot resolve when the video_recording subpackages are not installed. - Replace importlib file loader with normal package import - Rename config fields to match VideoRecorderCfg (env_render_mode, camera_position, camera_target, window_width, window_height) - Use patch.dict(sys.modules) instead of patch() for optional deps
The test file added in #5011 was broken at collection time: it used importlib to load a nonexistent sibling file, referenced obsolete config field names, and used patch() targets that cannot resolve when the video_recording subpackages are not installed. - Replace importlib file loader with normal package import - Rename config fields to match VideoRecorderCfg (env_render_mode, camera_position, camera_target, window_width, window_height) - Use patch.dict(sys.modules) instead of patch() for optional dep ## Type of change - Bug fix (non-breaking change which fixes an issue) ## 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 - [x] 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 there
…-sim#5207) The test file added in isaac-sim#5011 was broken at collection time: it used importlib to load a nonexistent sibling file, referenced obsolete config field names, and used patch() targets that cannot resolve when the video_recording subpackages are not installed. - Replace importlib file loader with normal package import - Rename config fields to match VideoRecorderCfg (env_render_mode, camera_position, camera_target, window_width, window_height) - Use patch.dict(sys.modules) instead of patch() for optional dep ## Type of change - Bug fix (non-breaking change which fixes an issue) ## 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 - [x] 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 there
Description
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.
Fixes # (issue)
Type of change
Screenshots
Please attach before and after screenshots of the change if applicable.
Checklist
pre-commitchecks with./isaaclab.sh --formatconfig/extension.tomlfileCONTRIBUTORS.mdor my name already exists there