[Bug Report] Camera poses not updated for TiledCamera
Just a tiny bug, the in the _update_buffers_impl() function of TiledCamera class, a call to self._update_poses() seems to be missing. In the Camera class, this is present. This leads to the data.pos_w attribute of TiledCamera class not being updated.
In tiled_camera.py:
def _update_buffers_impl(self, env_ids: Sequence[int]):
# Increment frame count
self._frame[env_ids] += 1
# Extract the flattened image buffer
for data_type, annotator in self._annotators.items():
...
In camera.py:
def _update_buffers_impl(self, env_ids: Sequence[int]):
# Increment frame count
self._frame[env_ids] += 1
# -- pose
self._update_poses(env_ids)
# -- read the data from annotator registry
# check if buffer is called for the first time. If so then, allocate the memory
if len(self._data.output) == 0:
...
I'm sorry if this is already the intended behavior. But after I added the call to _update_poses() in tiled_camera.py, the data.pos_w attribute gets correctly updated.
Thanks for posting this. We will review and update if necessary.
This seems to have been fixed. In https://github.com/isaac-sim/IsaacLab/blob/main/source/isaaclab/isaaclab/sensors/camera/tiled_camera.py, the code now looks like:
def _update_buffers_impl(self, env_ids: Sequence[int]):
# Increment frame count
self._frame[env_ids] += 1
# update latest camera pose
if self.cfg.update_latest_camera_pose:
self._update_poses(env_ids)