How to simulate gyroscope?

hi, I have a Gyroscope BMI088, I just calculated the Angle random walk, Bias Instability and I don't know how to simulate a gyroscope! note that gyroscope random walk is in deg/s / sqrt(Hz) unit,
can you help me to simulate it in Python or any other language?

I don't understand the question. What does "simulate" mean to you?

1 Like

If you have the actual sensor, why do you want to simulate it?

1 Like

Look for "random walk on a sphere" for some examples.

Gyroscope noise could be modeled as a random process with a Gaussian (normal) distribution for the noise itself. The cumulative effect is not Gaussian (it accumulates over time as a random walk) so you need to integrate the Gaussian noise over time to accumulate the angle error.

(If that’s what you mean)

You're absolutely right. I want to simulate gyro results and then build a model. My goal is to achieve accurate state estimation, so I need to model my gyroscope for simulation purposes.

Could you provide me with an example code snippet? This will help me get started with the process. My overall plan is to model my IMU (Inertial Measurement Unit), then implement an Extended Kalman Filter (EKF) for state estimation, followed by precise tuning. Once I achieve satisfactory results in simulation, I'll transfer this code to my real hardware, ensuring that my drone delivers optimal performance.

The gyroscope produces three integers for each sample.

Your simulation should produce a series of three integers representing some measured values, with added random noise chosen from an appropriate Gaussian distribution.

I'm unsure how to perform unit conversion when provided with an ARW parameter in the unit of (deg/sec/sqrt(Hz)) and need to convert it to ARW in (deg/sec)

The sqrt(Hz) frequency component depends on the low pass filter bandwidth you choose for the gyro.

For the gyro you have chosen, there are selectable low pass filters with bandwidths of 32 to 530 Hz. The larger the bandwidth, the noisier the data, by a factor of sqrt(Hz).

Which are the three value? Can you explain me in detail?

Can you give me example so I can understand?

The rotation rates about each axis.

You should experiment with the real gyro, study the measurements and verify that the average values and rms noise agree with the data sheet specifications. The best learning is by doing.

Yeah, I have real gyro, i collect 10 hour data at 100hz, then I find ARW and BI, NOW I want to simulate and build gyroscope model that are really close to real gyro,

Can you provide code snippet for example please?

I recommend to study those raw data to see if they behave as you expect, based on the data sheet specifications. One or two minutes is usually enough for basic verification.

Yeah I also calculate noise density, all params already found, than how to use these parameters for simulation I don't know that's why I ask you for example code snippet any language python, c, c++,

1 Like

As you give me code snippet, so ARW in unit of deg/sec/sqrt(hz) are the standard deviation? Similar things do in BI?

Please check this code, this way we need to do?

You should check it, and see if it does what you want. It is very simple!

Now I know, I read full blog, I know now, thank you very much :heavy_heart_exclamation: