ADCS.satellite_factory.sensors.create_cubesat_gyro module

ADCS.satellite_factory.sensors.create_cubesat_gyro.create_ICM20948_IMU(axes=array([[1, 0, 0], [0, 1, 0], [0, 0, 1]]), bias=None, noise=None, estimate_bias=False)[source]

Create an ICM-20948 gyro triad.

Default error model provenance:

The default bias/noise values in this helper are package-level representative simulation values for BeaverCube-style examples. They are not currently tied to a published ICM-20948 paper, data sheet table, or BeaverCube flight-calibration result. Pass explicit bias and noise objects when a traceable mission or vendor model is required.

Parameters:
  • axes (ndarray)

  • bias (Bias | None)

  • noise (Noise | None)

  • estimate_bias (bool)

Return type:

List[Gyro]

ADCS.satellite_factory.sensors.create_cubesat_gyro.create_adis16405_gyros(axes=array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]), bias=None, noise=None, estimate_bias=False)[source]

Create the Analog Devices ADIS16405 gyro channels used on RAX-1 and RAX-2.

RAX used one ADIS16405 IMU on the attitude determination board.

Default error model provenance:

bias defaults to a Gaussian turn-on bias with 3 deg/s one-sigma component error, std_bias uses the reported rate-random-walk 3.14e-5 rad/s^(3/2) value, and the bias is bounded to wander within the reported 0.007 deg/s in-run stability around that sampled turn-on bias. noise defaults to 0.9 deg/s output-noise RMS. These values are ADIS16405 component characterization values reported for the RAX attitude-determination system; they are not a single fixed RAX flight-estimated bias vector.

The RAX estimator simulation also reported angle-random-walk 4.89e-4 rad/s^(1/2). That value is not represented directly by this scalar white-noise Gyro model.

Source:

J. C. Springmann, Satellite Attitude Determination with Low-Cost Sensors, Ph.D. dissertation, University of Michigan, 2013. https://deepblue.lib.umich.edu/bitstream/handle/2027.42/102312/jspringm_1.pdf?sequence=1

Parameters:
  • axes (ndarray)

  • bias (List[Bias] | None)

  • noise (List[Noise] | None)

  • estimate_bias (bool)

Return type:

List[Gyro]

ADCS.satellite_factory.sensors.create_cubesat_gyro.create_analog_devices_pib_gyros(axes=array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]), bias=None, noise=None, estimate_bias=False)[source]

Create the LightSail 2 primary PIB gyro triad.

The default biases are the Dec 2020-Feb 2021 flight cross-calibration values [0.47837, 0.14098, 0.043055] deg/s and the default white-noise standard deviation is 0.27 deg/s per axis.

Parameters:
  • axes (ndarray)

  • bias (List[Bias] | None)

  • noise (List[Noise] | None)

  • estimate_bias (bool)

Return type:

List[Gyro]

ADCS.satellite_factory.sensors.create_cubesat_gyro.create_bmx055_gyros(axes=array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]), bias=None, noise=None, estimate_bias=False)[source]

Create one Bosch Sensortec BMX055 gyroscope triad used on MOVE-II.

The BMX055 gyroscope is represented as three one-dimensional Gyro channels.

Default error model provenance:

bias defaults to the MOVE-II HIL simulation vector [1.75e-3, 3.49e-3, -1.75e-3] rad/s for one BMX055 triad. noise defaults to additive Gaussian white noise with sigma = 8.727e-4 rad/s. The source also models scale factor, misalignment, nonorthogonality, quantization, time sampling, low-pass filtering, and gyro-bias random walk; those terms are not represented directly by this scalar gyro factory.

Source:

Hardware-in-the-Loop Verification of the Distributed, Magnetorquer-Based ADCS of the CubeSat MOVE-II

Parameters:
  • axes (ndarray)

  • bias (List[Bias] | None)

  • noise (List[Noise] | None)

  • estimate_bias (bool)

Return type:

List[Gyro]

ADCS.satellite_factory.sensors.create_cubesat_gyro.create_gnb_rate_sensors(axes=array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]), bias=None, noise=None, estimate_bias=False)[source]

Create the nominal BRITE/GNB orthogonal rate-sensor triad.

The BRITE ADCS design gives gyro noise density 0.05 deg/s/sqrt(Hz) and long-term bias variation 0.2 deg/s. The factory represents the bias variation as a bounded per-axis bias uncertainty, with 0.0004 deg/s/sqrt(s) used as a conservative assumed bias random walk.

Parameters:
  • axes (ndarray)

  • bias (List[Bias] | None)

  • noise (List[Noise] | None)

  • estimate_bias (bool)

Return type:

List[Gyro]

ADCS.satellite_factory.sensors.create_cubesat_gyro.create_intrepid_mainboard_gyros(axes=array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]), bias=None, noise=None, estimate_bias=False)[source]

Create the LightSail 2 secondary mainboard gyro triad.

These gyros were uncalibrated and used in modes that did not require accurate attitude knowledge. The default noise uses 1 deg/s per axis as a conservative approximate white-noise floor so estimator measurement covariances remain non-singular. This noise floor is a modeling assumption, not a source-backed LightSail 2 calibration value.

Parameters:
  • axes (ndarray)

  • bias (List[Bias] | None)

  • noise (List[Noise] | None)

  • estimate_bias (bool)

Return type:

List[Gyro]

ADCS.satellite_factory.sensors.create_cubesat_gyro.create_itg3200_gyros(axes=array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]), bias=None, noise=None, estimate_bias=False)[source]

Create one ESTCube-1 InvenSense ITG-3200 gyro triad.

The ITG-3200 gyroscope is represented as three one-dimensional Gyro channels.

Default error model provenance:

bias defaults to a uniform initial bias over +/-0.5 deg/s per measurement channel. noise defaults to Gaussian 1.8 deg/s standard deviation. These are the ESTCube-1 preflight simulator values. The ground characterization also reported 0.9 deg/s statistical noise, and flight calibration reported approximately 0.5 deg/s expanded uncertainty; those are documented here but are not the default.

Source:

J. Slavinskis et al., “ESTCube-1 attitude determination system flight results,” Journal of Aerospace Engineering, 2016. https://ascelibrary.org/doi/10.1061/%28ASCE%29AS.1943-5525.0000504

Parameters:
  • axes (ndarray)

  • bias (List[Bias] | None)

  • noise (List[Noise] | None)

  • estimate_bias (bool)

Return type:

List[Gyro]