mirror of
https://git.intern.spaceteamaachen.de/ALPAKA/SPATZ.git
synced 2025-06-10 01:55:59 +00:00
31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
import numpy as np
|
|
|
|
from typing import List, AnyStr
|
|
|
|
from numpy.typing import ArrayLike
|
|
from spatz.dataset import ArrayLike, Dataset
|
|
from spatz.logger import ArrayLike, Logger
|
|
from spatz.sensors import IMU, Accelerometer, Gyroscope, CoordSystem
|
|
from spatz.transforms import Transform, GaussianNoise, DriftingBias
|
|
|
|
|
|
class IAM_20380HT(Gyroscope):
|
|
def __init__(self, dataset: Dataset, logger: Logger, orientation=np.identity(3), transforms: List[Transform] = []):
|
|
super().__init__(dataset, logger, orientation, transforms)
|
|
|
|
self.__bias = DriftingBias(np.zeros(3), np.array([0.00218, 0.00105, 0.00203]), 400)
|
|
self.__constant_bias = np.random.normal(0, 2, 3)
|
|
self.__normal = GaussianNoise(0, np.array([0.0049272, 0.00557833, 0.00407826]))
|
|
|
|
|
|
def _get_name(self) -> AnyStr:
|
|
return 'IAM-20380HT'
|
|
|
|
def _sensor_specific_effects(self, x: ArrayLike) -> ArrayLike:
|
|
x = (x / np.pi) * 180
|
|
|
|
t = self._dataset.get_time()
|
|
x = self.__constant_bias + self.__normal(t, self.__bias(t, x))
|
|
|
|
return x
|
|
|