Source code for vista.entities.sensors.BaseSensor

from typing import Dict, Optional, Any

from ..Entity import Entity
from ...utils import misc


[docs]class BaseSensor(Entity): """ Base class of all sensors. Args: attach_to (Entity): A car to be attached to. config (dict): Configuration of the sensor. """ DEFAULT_CONFIG = {} def __init__(self, attach_to: Entity, config: Optional[Dict] = None) -> None: super(BaseSensor, self).__init__() self._parent = attach_to config = misc.merge_dict(config, self.DEFAULT_CONFIG) self._config = config self._name = config['name']
[docs] def capture(self, timestamp: float, **kwargs) -> Any: """ Run sensor synthesis based on current timestamp and transformation between the novel viewpoint to be simulated and the nominal viewpoint from the pre-collected dataset. Args: timestamp (float): Timestamp that allows to retrieve a pointer to the dataset for data-driven simulation (synthesizing point cloud from real LiDAR sweep). """ raise NotImplementedError
[docs] def update_scene_object(self, name: str, scene_object: Any, pose: Any) -> None: """ Update object in the scene for rendering. This is only used when we put virtual objects in the scene. Args: name (str): Name of the scene object. scene_object (Any): The scene object. pose (Any): The pose of the scene object. """ raise NotImplementedError
@property def name(self) -> str: """ The name of the sensor. """ return self._name