# Camera API Camera system API reference for GenesisLab. ```{toctree} :maxdepth: 2 api_overview camera_cfg ``` ## Overview GenesisLab provides two types of camera APIs: 1. **Regular Camera** - Created via `scene.add_camera()` - For static cameras or programmatic camera control - Uses `.render()` method 2. **Sensor Camera** - Created via `scene.add_sensor()` - For entity-attached cameras (tracking) - Uses `.read()` method ## Quick Reference ### Regular Camera ```python # Create camera camera = scene.add_camera( res=(640, 480), pos=(2.0, 0.0, 1.5), lookat=(0.0, 0.0, 0.5), fov=50, ) # Render rgb, depth, seg, normal = camera.render( rgb=True, depth=True, segmentation=False, normal=False ) ``` ### Sensor Camera (Tracking) ```python from genesislab.engine.scene import CameraCfg # Configure camera camera_cfg = CameraCfg( track_mode="chase", entity_name="robot", ) # In scene setup camera = scene.add_sensor( gs.sensors.RasterizerCameraOptions( width=camera_cfg.width, height=camera_cfg.height, fov=camera_cfg.fov, ), entity=robot, pos=camera_cfg.pos, euler=camera_cfg.euler, ) # Read data data = camera.read() rgb = data.rgb # [height, width, 3] depth = data.depth # [height, width] ``` ## Common Issues ### AttributeError: 'RasterizerCameraSensor' object has no attribute 'render' **Problem**: Trying to use `.render()` on a sensor camera. **Solution**: Use `.read()` instead: ```python # ❌ Wrong rgb, depth = camera.render(rgb=True, depth=True) # ✅ Correct data = camera.read() rgb = data.rgb depth = data.depth ``` ### Camera Not Following Entity **Problem**: Camera created with `add_camera()` instead of `add_sensor()`. **Solution**: Use `add_sensor()` for entity-attached cameras: ```python # ❌ Won't follow camera = scene.add_camera(...) # ✅ Will follow camera = scene.add_sensor( gs.sensors.RasterizerCameraOptions(...), entity=robot, pos=pos, euler=euler, ) ``` ## See Also - [API Overview](api_overview.md) - Detailed API differences and fixes - [CameraCfg](camera_cfg.md) - Camera configuration reference - [Camera User Guide](../../../user_guide/camera/index.md) - Usage guides and tutorials