Major rework using rocketpy

This commit is contained in:
dario
2024-06-07 15:01:16 +02:00
parent 1b06db4152
commit 382cb9aad4
25 changed files with 13173 additions and 102 deletions

View File

@@ -3,8 +3,9 @@ import numpy as np
from typing import AnyStr, List
from numpy.typing import ArrayLike
from spatz.sensors import Accelerometer, Gyroscope, IMU
from spatz.sensors import Accelerometer, Gyroscope, IMU, CoordSystem
from spatz.transforms import Transform, GaussianNoise
from spatz.simulations.data_source import DataSource
from spatz.dataset import Dataset
from spatz.logger import Logger
@@ -14,8 +15,8 @@ class WSEN_ISDS(IMU):
class WSEN_ISDS_ACC(Accelerometer):
def __init__(self, dataset: Dataset, logger: Logger, offset: float, transforms: List[Transform] = []):
super().__init__(dataset, logger, offset, transforms)
def __init__(self, dataset: DataSource, logger: Logger, orientation=np.identity(3), offset=0, transforms: List[Transform] = []):
super().__init__(dataset, logger, CoordSystem.LEFT_HANDED, orientation, offset, transforms)
self.__variance = 0.05
self.__noise = GaussianNoise(np.zeros(3), np.identity(3) * self.__variance)
@@ -35,11 +36,15 @@ class WSEN_ISDS_ACC(Accelerometer):
self._logger.write('acc_y_noise', noise[1], self._get_name())
self._logger.write('acc_z_noise', noise[2], self._get_name())
# The WSEN-ISDS accelerometer only measures acceleration between -16g and 16g.
g = 9.81
y = np.clip(y, -16*g, +16*g)
return y
class WSEN_ISDS_GYRO(Gyroscope):
def __init__(self, dataset: Dataset, logger: Logger, offset: float, transforms: List[Transform] = []):
def __init__(self, dataset: Dataset, logger: Logger, offset=0, transforms: List[Transform] = []):
super().__init__(dataset, logger, offset, transforms)
def _get_name(self) -> AnyStr:
@@ -51,4 +56,8 @@ class WSEN_ISDS_GYRO(Gyroscope):
# TODO: Noise model.
self._log('ox', x[0])
self._log('oy', x[1])
self._log('oz', x[2])
return x