mirror of
https://git.intern.spaceteamaachen.de/ALPAKA/SPATZ.git
synced 2025-06-10 01:55:59 +00:00
41 lines
1.5 KiB
Python
41 lines
1.5 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
|
|
|
|
|
|
class BMI088(IMU):
|
|
def __init__(self, dataset: Dataset, logger: Logger, orientation = np.identity(3), offset=0, transforms: List[Transform] = []):
|
|
acc = BMI088Acc(dataset, logger, orientation, offset, transforms)
|
|
gyro = BMI088Gyro(dataset, logger, offset, transforms)
|
|
|
|
super().__init__(dataset, logger, acc, gyro, transforms)
|
|
|
|
|
|
class BMI088Gyro(Gyroscope):
|
|
def __init__(self, dataset: Dataset, logger: Logger, orientation=np.identity(3), transforms: List[Transform] = []):
|
|
super().__init__(dataset, logger, orientation, transforms)
|
|
|
|
def _get_name(self) -> AnyStr:
|
|
return 'BMI088'
|
|
|
|
def _sensor_specific_effects(self, x: ArrayLike) -> ArrayLike:
|
|
return x
|
|
|
|
|
|
class BMI088Acc(Accelerometer):
|
|
def __init__(self, dataset: Dataset, logger: Logger, orientation = np.identity(3), offset: float = 0, transforms: List[Transform] = []):
|
|
super().__init__(dataset, logger, CoordSystem.RIGHT_HANDED, orientation, offset, transforms)
|
|
|
|
self.__noise = GaussianNoise(0, 0.05)
|
|
|
|
def _get_name(self) -> AnyStr:
|
|
return 'BMI088'
|
|
|
|
def _sensor_specific_effects(self, x: ArrayLike) -> ArrayLike:
|
|
return self.__noise(0, x) |