I’ve been using the SensFusion code as a basis for the equivalent in AdaPilot, and I think at least part of my problem is the definition of the axes used (not helped by the fact that the MPU9250 chip is differently oriented on the Crazyflie 2.0 board w.r.t. the AdaRacer board).
I’m pretty sure, from reading how IMU handles the data from the chip, that SensFusion’s coordinates are:
X positive Forward
Y positive Port
Z positive Up
and it’d be great if this could be written in the code - for example, in the types IMU.Gyroscope_Data, Accelerometer_Data, Magnetometer_Data, and also perhaps in the other modules that use the data - Stabilizer, and SensFusion6(which doesn’t actually use the record types, but which has parameters *X, *Y, *Z).
Note, there appears to be much confusion about coordinate systems; equally if not more valid would be the body-centred equivalent of North-East-Down, i.e.
X positive Forward
Y positive Starboard
Z positive Down
I’ve been using the SensFusion code as a basis for the equivalent in AdaPilot, and I think at least part of my problem is the definition of the axes used (not helped by the fact that the MPU9250 chip is differently oriented on the Crazyflie 2.0 board w.r.t. the AdaRacer board).
I’m pretty sure, from reading how IMU handles the data from the chip, that SensFusion’s coordinates are:
X positive Forward
Y positive Port
Z positive Up
and it’d be great if this could be written in the code - for example, in the types
IMU.Gyroscope_Data,Accelerometer_Data,Magnetometer_Data, and also perhaps in the other modules that use the data -Stabilizer, andSensFusion6(which doesn’t actually use the record types, but which has parameters*X,*Y,*Z).Note, there appears to be much confusion about coordinate systems; equally if not more valid would be the body-centred equivalent of North-East-Down, i.e.
X positive Forward
Y positive Starboard
Z positive Down