Added more sensors for STAHR

This commit is contained in:
dario
2024-10-04 11:11:19 +02:00
parent 4f100f0bd4
commit 5479773e32
9 changed files with 194 additions and 38 deletions

View File

@@ -50,6 +50,7 @@ class Accelerometer(Sensor):
self._orientation = orientation
def _get_data(self) -> ArrayLike | float:
"""
acc = self._dataset.get_acceleration('global')
self._logger.write('global_ax', acc[0], self._get_name())
@@ -70,6 +71,9 @@ class Accelerometer(Sensor):
# Add the effects of the imu's offset.
omega = self._dataset.get_angular_velocity()
acc += (np.cross(omega, self._offset) + np.cross(omega, np.cross(omega, self._offset)))
"""
acc = self._dataset.get_acceleration('local')
return acc

View File

@@ -30,7 +30,7 @@ class BMI088Gyro(Gyroscope):
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)
super().__init__(dataset, logger, orientation, offset, transforms)
self.__noise = GaussianNoise(0, 0.05)

View File

@@ -0,0 +1,21 @@
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 IAM_20380HT(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 'IAM-20380HT'
def _sensor_specific_effects(self, x: ArrayLike) -> ArrayLike:
return x

View File

@@ -0,0 +1,26 @@
import numpy as np
from typing import List, AnyStr
from numpy.typing import ArrayLike
from spatz.dataset import Dataset
from spatz.logger import Logger
from spatz.sensors import Accelerometer
from spatz.transforms import Transform, GaussianNoise
class SCA3300(Accelerometer):
def __init__(self, dataset: Dataset, logger: Logger, orientation=np.identity(3), offset=0, transforms: List[Transform] = []):
super().__init__(dataset, logger, orientation, offset, transforms)
self.__noise = GaussianNoise(0, 0.001)
def _get_name(self) -> AnyStr:
return 'SCA3300'
def _sensor_specific_effects(self, x: ArrayLike) -> ArrayLike:
x /= 9.81
x[0], x[1] = x[1], x[0]
return self.__noise(0, x)