def _set_rgb_props(rgb_cam: VisionSensor, rgb: bool, depth: bool, conf: CameraConfig): if not (rgb or depth): rgb_cam.remove() else: rgb_cam.set_resolution(conf.image_size) rgb_cam.set_render_mode(conf.render_mode)
def _set_mask_props(mask_cam: VisionSensor, mask: bool, conf: CameraConfig): if not mask: mask_cam.remove() else: mask_cam.set_explicit_handling(1) mask_cam.set_resolution(conf.image_size)
class RattlerCamera(object): def __init__(self): self._head_camera = VisionSensor('rattler_eye') self._head_camera_mask = None self._head_camera_state = 1 def get_camera_state(self) -> int: return self._head_camera_state def set_camera_state(self, state: int) -> None: self._head_camera_state = state def set_camera_properties(self, conf: CameraConfig) -> None: if not (conf.rgb or conf.depth): self._head_camera.remove() else: self._head_camera.set_resolution(conf.image_size) self._head_camera.set_render_mode(conf.render_mode) if conf.mask: self._head_camera_mask = self._head_camera.copy() self._head_camera_mask.set_render_mode( RenderMode.OPENGL_COLOR_CODED) def capture_rgb(self) -> np.ndarray: return self._head_camera.capture_rgb() def capture_depth(self) -> np.ndarray: return self._head_camera.capture_depth() def mask(self) -> VisionSensor: return self._head_camera_mask