Gyroscope Class#
- class rocketpy.sensors.Gyroscope[source]#
Class for the gyroscope sensor
- Variables:
acceleration_sensitivity (
float
,list
) – Sensitivity of the sensor to linear acceleration in rad/s/g.prints (
_GyroscopePrints
) – Object that contains the print functions for the sensor.sampling_rate (
float
) – Sample rate of the sensor in Hz.orientation (
tuple
,list
) – Orientation of the sensor in the rocket.measurement_range (
float
,tuple
) – The measurement range of the sensor in the rad/s.resolution (
float
) – The resolution of the sensor in rad/s/LSB.noise_density (
float
,list
) – The noise density of the sensor in rad/s/√Hz.noise_variance (
float
,list
) – The variance of the noise of the sensor in (rad/s)^2.random_walk_density (
float
,list
) – The random walk density of the sensor in rad/s/√Hz.random_walk_variance (
float
,list
) – The random walk variance of the sensor in (rad/s)^2.constant_bias (
float
,list
) – The constant bias of the sensor in rad/s.operating_temperature (
float
) – The operating temperature of the sensor in Kelvin.temperature_bias (
float
,list
) – The temperature bias of the sensor in rad/s/K.temperature_scale_factor (
float
,list
) – The temperature scale factor of the sensor in %/K.cross_axis_sensitivity (
float
) – The cross axis sensitivity of the sensor in percentage.name (
str
) – The name of the sensor.rotation_matrix (
Matrix
) – The rotation matrix of the sensor from the sensor frame to the rocket frame of reference.normal_vector (
Vector
) – The normal vector of the sensor in the rocket frame of reference._random_walk_drift (
Vector
) – The random walk drift of the sensor in rad/s.measurement (
float
) – The measurement of the sensor after quantization, noise and temperature drift.measured_data (
list
) – The stored measured data of the sensor after quantization, noise and temperature drift.
- __init__(sampling_rate, orientation=(0, 0, 0), measurement_range=inf, resolution=0, noise_density=0, noise_variance=1, random_walk_density=0, random_walk_variance=1, constant_bias=0, operating_temperature=25, temperature_bias=0, temperature_scale_factor=0, cross_axis_sensitivity=0, acceleration_sensitivity=0, name='Gyroscope')[source]#
Initialize the gyroscope sensor
- Parameters:
sampling_rate (
float
) – Sample rate of the sensor in Hz.orientation (
tuple
,list
, optional) –Orientation of the sensor in the rocket. The orientation can be given as: - A list of length 3, where the elements are the Euler angles for
the rotation yaw (ψ), pitch (θ) and roll (φ) in radians. The standard rotation sequence is z-y-x (3-2-1) is used, meaning the sensor is first rotated by ψ around the x axis, then by θ around the new y axis and finally by φ around the new z axis.
A list of lists (matrix) of shape 3x3, representing the rotation matrix from the sensor frame to the rocket frame. The sensor frame of reference is defined as to have z axis along the sensor’s normal vector pointing upwards, x and y axes perpendicular to the z axis and each other.
The rocket frame of reference is defined as to have z axis along the rocket’s axis of symmetry pointing upwards, x and y axes perpendicular to the z axis and each other. Default is (0, 0, 0), meaning the sensor is aligned with the rocket’s axis of symmetry.
measurement_range (
float
,tuple
, optional) – The measurement range of the sensor in the rad/s. If a float, the same range is applied both for positive and negative values. If a tuple, the first value is the positive range and the second value is the negative range. Default is np.inf.resolution (
float
, optional) – The resolution of the sensor in rad/s/LSB. Default is 0, meaning no quantization is applied.noise_density (
float
,list
, optional) – The noise density of the sensor for a Gaussian white noise in rad/s/√Hz. Sometimes called “white noise drift”, “angular random walk” for gyroscopes, “velocity random walk” for the accelerometers or “(rate) noise density”. Default is 0, meaning no noise is applied. If a float or int is given, the same noise density is applied to all axes. The values of each axis can be set individually by passing a list of length 3.noise_variance (
float
,list
, optional) – The noise variance of the sensor for a Gaussian white noise in (rad/s)^2. Default is 1, meaning the noise is normally distributed with a standard deviation of 1 rad/s. If a float or int is given, the same variance is applied to all axes. The values of each axis can be set individually by passing a list of length 3.random_walk_density (
float
,list
, optional) – The random walk density of the sensor for a Gaussian random walk in rad/s/√Hz. Sometimes called “bias (in)stability” or “bias drift””. Default is 0, meaning no random walk is applied. If a float or int is given, the same random walk is applied to all axes. The values of each axis can be set individually by passing a list of length 3.random_walk_variance (
float
,list
, optional) – The random walk variance of the sensor for a Gaussian random walk in (rad/s)^2. Default is 1, meaning the random walk is normally distributed with a standard deviation of 1 rad/s. If a float or int is given, the same variance is applied to all axes. The values of each axis can be set individually by passing a list of length 3.constant_bias (
float
,list
, optional) – The constant bias of the sensor in rad/s. Default is 0, meaning no constant bias is applied. If a float or int is given, the same bias is applied to all axes. The values of each axis can be set individually by passing a list of length 3.operating_temperature (
float
, optional) – The operating temperature of the sensor in Kelvin. At 298.15 K (25 °C), the sensor is assumed to operate ideally, no temperature related noise is applied. Default is 298.15.temperature_sensitivity (
float
,list
, optional) – The temperature bias of the sensor in rad/s/K. Default is 0, meaning no temperature bias is applied. If a float or int is given, the same temperature bias is applied to all axes. The values of each axis can be set individually by passing a list of length 3.temperature_scale_factor (
float
,list
, optional) – The temperature scale factor of the sensor in %/K. Default is 0, meaning no temperature scale factor is applied. If a float or int is given, the same temperature scale factor is applied to all axes. The values of each axis can be set individually by passing a list of length 3.cross_axis_sensitivity (
float
, optional) – Skewness of the sensor’s axes in percentage. Default is 0, meaning no cross-axis sensitivity is applied. of each axis can be set individually by passing a list of length 3.acceleration_sensitivity (
float
,list
, optional) – Sensitivity of the sensor to linear acceleration in rad/s/g. Default is 0, meaning no sensitivity to linear acceleration is applied. If a float or int is given, the same sensitivity is applied to all axes. The values of each axis can be set individually by passing a list of length 3.
- Return type:
None
See also
TODO
- measure(time, **kwargs)[source]#
Measure the angular velocity of the rocket
- Parameters:
time (
float
) – Current time in seconds.kwargs (
dict
) –Keyword arguments dictionary containing the following keys: - u : np.array
State vector of the rocket.
- u_dotnp.array
Derivative of the state vector of the rocket.
- relative_positionnp.array
Position of the sensor relative to the rocket center of mass.
- environmentEnvironment
Environment object containing the atmospheric conditions.
- apply_acceleration_sensitivity(omega, u_dot, relative_position, rotation_matrix)[source]#
Apply acceleration sensitivity to the sensor measurement
- Parameters:
omega (
Vector
) – The angular velocity to apply acceleration sensitivity tou_dot (
list
) – The time derivative of the state vectorrelative_position (
Vector
) – The vector from the rocket’s center of mass to the sensorrotation_matrix (
Matrix
) – The rotation matrix from the rocket frame to the sensor frame
- Returns:
The angular velocity with the acceleration sensitivity applied
- Return type:
Vector
- export_measured_data(filename, file_format='csv')[source]#
Export the measured values to a file
- Parameters:
filename (
str
) – Name of the file to export the values tofile_format (
str
) – file_Format of the file to export the values to. Options are “csv” and “json”. Default is “csv”.
- Return type:
None