SPATZ/spatz/sensors/imu/h3lis100dl.py
2024-06-07 15:01:16 +02:00

31 lines
954 B
Python

import numpy as np
from typing import List, AnyStr
from numpy.core.numeric import identity as identity
from numpy.typing import ArrayLike, NDArray
from spatz.dataset import Dataset
from spatz.simulations.data_source import DataSource
from spatz.logger import Logger
from spatz.sensors import Accelerometer, CoordSystem
from spatz.transforms import Transform
class H3LIS100DL(Accelerometer):
def __init__(self, dataset: DataSource, logger: Logger, orientation=np.identity(3), offset: float = 0, transforms: List[Transform] = []):
super().__init__(dataset, logger, CoordSystem.RIGHT_HANDED, orientation, offset, transforms)
def _get_name(self) -> AnyStr:
return "H3LIS100DL"
def _sensor_specific_effects(self, x: ArrayLike) -> ArrayLike:
# The sensor only measures values between -100g and +100g and in g/LSB.
g = 9.81
x = np.floor(np.clip(x, -100*g, +100*g) / g)
return x