mirror of
https://git.intern.spaceteamaachen.de/ALPAKA/SPATZ.git
synced 2025-12-16 17:28:04 +00:00
Major rework using rocketpy
This commit is contained in:
46
spatz/sensors/imu/bmi088.py
Normal file
46
spatz/sensors/imu/bmi088.py
Normal file
@@ -0,0 +1,46 @@
|
||||
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, offset: float = 0, transforms: List[Transform] = []):
|
||||
super().__init__(dataset, logger, offset, transforms)
|
||||
|
||||
def _get_name(self) -> AnyStr:
|
||||
return 'BMI088'
|
||||
|
||||
def _get_data(self) -> ArrayLike:
|
||||
rots = self._dataset.fetch_values(['roll_l', 'pitch_l', 'yaw_l'])
|
||||
|
||||
return rots
|
||||
|
||||
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)
|
||||
Reference in New Issue
Block a user