Hi @andyp1per ,
As discussed on your blog post, I was wondering if you could provide me a log generated by a Pixhawk 6X Pro.
I am working on improving the gyro/accel calibration method and accel/gyro bias calculations in the EKF to improve dead-reckoning position control (i.e., if a drone loses GPS during a flight). I am currently using a CUAV X7+ Pro, and I’m wondering if Holybro’s implementation of the ADIS16740 is better than CUAV’s.
One thing I’ve noticed about the gyros in X7+ Pro is that even when averaging the filtered gyro data over 20 seconds, the gyro readings seem to oscillate at a very low frequency (~0.01 Hz). The oscillations looks small, but calibrating the gyros with a bias off by 3 mdeg/s can lead to a position drift of 25 cm in 10 seconds. That’s not bad, but it could be a lot better if the bias values didn’t oscillate.
Obviously, it’s not ideal to use 20 seconds to average out a gyro bias, but if averaging over a smaller period of time, the oscillations are greater.
So I was wondering if you could provide a 2.5 hour long log from a stationary 6X Pro, with RAW and filtered accelerometer and gyro data. Unfortunately, that will generate a roughly 5GB log file, but I can provide a folder for you to drop the file into.
Here are also parameters that I would like the log to be generated with (when starting from the default ArduCopter 4.5.4 parameters):
AHRS_EKF_TYPE,3
INS_ACC_BODYFIX,1
AVOID_ENABLE,0
EK3_IMU_MASK,7
INS_ACCEL_FILTER,20
INS_ENABLE_MASK,127
INS_FAST_SAMPLE,5
INS_GYR_CAL,1
INS_RAW_LOG_OPT,9
LOG_BITMASK,524426
LOG_DISARMED,1
After setting these params, my typical procedure would look like this:
- Install flight controller (FC) on a rigid frame. I have mine suck to a 25x25cm half-inch plywood. The power module and 3S 1000 mAh battery are fixed to the plywood with velcro.
- No GPS, no external sensors, no radios are connected.
- You can use a drone frame, but ideally not something that can wobble (so not a drone on high carbon fiber tube legs).
- Connect the FC to Mission Planner by USB and perform the usual ArduPilot accel calibration and compass calibration (this can be done via radio if it is easier, but the radio should be removed for the 2.5 hour recording).
- Disconnect the FC from all power sources (USB, LiPo)
- Wait 30ish minutes to let the internal temperature reach room temperature
- Choose a location to leave the FC for the 2.5 hours
- Ideally as close as possible to firm ground (cement foundation in a basement, outdoor on the lawn).
- If outdoor, ideally away from the sun.
- Plug in the battery
- Leave the FC undisturbed for 2.5 hours.
- Unplug battery and upload log!
Your time is really appreciated! I’ll also be curious when you test temperature stability of the accel/gyro, and if the 6X Pro can heat up and reach its target temperature when placed in a cold environment. The CUAV X7+ Pro was only able to reach 20C when placed in a -5C environment, while a Cube Orange+ can easily reach 45C. Let me know if you find time to do this, and I can DM you a link to a OneDrive folder.
I could eventually post my findings here or on a blog post if I manage to produce anything interesting.
Thanks!