Render images of the scene and wrap them with Image wrapper classes from the Berkeley AUTOLab's perception module. Parameters ---------- render_modes : list of perception.RenderMode A list of the desired image types to return, from the perception
(self, render_modes, front_and_back=False)
| 212 | return self._renderer.render(render_color, front_and_back=front_and_back) |
| 213 | |
| 214 | def wrapped_render(self, render_modes, front_and_back=False): |
| 215 | """Render images of the scene and wrap them with Image wrapper classes |
| 216 | from the Berkeley AUTOLab's perception module. |
| 217 | |
| 218 | Parameters |
| 219 | ---------- |
| 220 | render_modes : list of perception.RenderMode |
| 221 | A list of the desired image types to return, from the perception |
| 222 | module's RenderMode enum. |
| 223 | |
| 224 | front_and_back : bool |
| 225 | If True, all surface normals are treated as if they're facing the camera. |
| 226 | |
| 227 | Returns |
| 228 | ------- |
| 229 | list of perception.Image |
| 230 | A list containing a corresponding Image sub-class for each type listed |
| 231 | in render_modes. |
| 232 | """ |
| 233 | |
| 234 | # Render raw images |
| 235 | render_color = False |
| 236 | for mode in render_modes: |
| 237 | if mode != RenderMode.DEPTH and mode != RenderMode.SCALED_DEPTH: |
| 238 | render_color = True |
| 239 | break |
| 240 | |
| 241 | color_im, depth_im = None, None |
| 242 | if render_color: |
| 243 | color_im, depth_im = self.render(render_color, front_and_back=front_and_back) |
| 244 | else: |
| 245 | depth_im = self.render(render_color) |
| 246 | |
| 247 | # For each specified render mode, add an Image object of the appropriate type |
| 248 | images = [] |
| 249 | for render_mode in render_modes: |
| 250 | # Then, convert them to an image wrapper class |
| 251 | if render_mode == RenderMode.SEGMASK: |
| 252 | images.append(BinaryImage((depth_im > 0.0).astype(np.uint8), frame=self.camera.intrinsics.frame, threshold=0)) |
| 253 | |
| 254 | elif render_mode == RenderMode.COLOR: |
| 255 | images.append(ColorImage(color_im, frame=self.camera.intrinsics.frame)) |
| 256 | |
| 257 | elif render_mode == RenderMode.GRAYSCALE: |
| 258 | images.append(ColorImage(color_im, frame=self.camera.intrinsics.frame).to_grayscale()) |
| 259 | |
| 260 | elif render_mode == RenderMode.DEPTH: |
| 261 | images.append(DepthImage(depth_im, frame=self.camera.intrinsics.frame)) |
| 262 | |
| 263 | elif render_mode == RenderMode.SCALED_DEPTH: |
| 264 | images.append(DepthImage(depth_im, frame=self.camera.intrinsics.frame).to_color()) |
| 265 | |
| 266 | elif render_mode == RenderMode.RGBD: |
| 267 | c = ColorImage(color_im, frame=self.camera.intrinsics.frame) |
| 268 | d = DepthImage(depth_im, frame=self.camera.intrinsics.frame) |
| 269 | images.append(RgbdImage.from_color_and_depth(c, d)) |
| 270 | |
| 271 | elif render_mode == RenderMode.GD: |
no test coverage detected