What‘s the detail of parameters in IMU factory files?


I found some parameters in Thermal_IMU_bias.fact.csv and Thermal_IMU_ortho.fact.csv.
But,I can not understand the parameters name in it,like Poly_GyroX_sfe ,Poly_GyroX_ny and so on.
Does anyone know the meaning of them?



I would guess from what I found looking for IMU error sources, that Poly_GyroX_sfe means the Scale Factor Error on the Gyroscope for the X axis. And Poly_GyroX_ny would be… … NoisY? Or if it’s in the second file, it might be the non orthogonality relative to the Y axis.
I don’t have the thing with me right now unfortunately so I can’t check if this makes sense but it might :grin:

Thanks a lot!!
If possible,may I ask you another problem?
Do you know anything about where to get the noise density of the IMU in SLAMdunk ,or change the IMU output rate?
Any idea means a lot for me!~

Isn’t the noise somewhere in the params from the files you mentioned above? Again, I don’t have access to a slamdunk right now but maybe you could copy them here…

As for the output rate, I haven’t seen any parameter like it anywhere. But you can still throttle the IMU topic… :innocent:

Sorry ,I forgot it.
Here it is.

Temp_Min_Max 300.0 338.0
Poly_GyroX_bias 3 0.012208142813 0.0 0.0
Poly_GyroY_bias 3 -0.004909187064 0.0 0.0
Poly_GyroZ_bias 3 0.004946068042 0.0 0.0
Poly_AccX_bias 3 -0.089717962548 0.0 0.0
Poly_AccY_bias 3 -0.175323465945 0.0 0.0
Poly_AccZ_bias 3 0.206834236515 0.0 0.0


Poly_GyroX_sfe 1 0.998062193394
Poly_GyroY_sfe 1 1.016517877579
Poly_GyroZ_sfe 1 1.002747774124
Poly_GyroX_ny 1 0
Poly_GyroX_nz 1 0
Poly_GyroY_nx 1 0
Poly_GyroY_nz 1 0
Poly_GyroZ_nx 1 0
Poly_GyroZ_ny 1 0
Poly_AccX_sfe 1 1.002271175385
Poly_AccY_sfe 1 1.002347946167
Poly_AccZ_sfe 1 0.997170209885
Poly_AccX_ny 1 0
Poly_AccX_nz 1 0
Poly_AccY_nx 1 0
Poly_AccY_nz 1 0
Poly_AccZ_nx 1 0
Poly_AccZ_ny 1 0

I can’t find something about noise density.
As for output rate,I use ROS to record the topic.But it‘s too fast,I got some discrete message.
I only found the .diag file about IMU out rate,but I don’t konw how to complie it after I change it.
It shows as follows


. /etc/diagnostic.rc


# 8 kHz

diag_test() {
icmtest -f 1 -n 10 -t 1000 > /dev/null
[ “$?” != “0” ] && ret=1
timeout ${timeout_val} icmtest -f 1 > /tmp/diag_icmtest
count=$(wc -l < /tmp/diag_icmtest)
percent=$(echo “${reference} ${count}” | awk ‘{printf “%.2f\n”, (($1-$2)*100)/$1}’)
diag_title="IMU Result: ${count} lines (${reference}) diff=${percent} %"
return ${ret}


Thanks for replying me!

Well, maybe the noise was considered insignificant compared to the other sources of error and they don’t account for it…

The .diag file looks like it’s to diagnose the imu, not for actual operations, the real operating frequency is probably somewhere in the depths of the kalamos library we cannot access.

In the ros_tools package there is a throttle node that subscribe to a topic and republish it but limiting to the frequency you want.

1 Like