I am in a group working on Paparazzi. For my 48" Delta wing airframes, I have been using the thermopiles for a while which actually prevent me from getting my project going. So I turned to low cost IMU and Ardu is the very first choice. So far I have made the Ardu+Ublox configuration work with Paparazzi autopilot and it looks great on the ground, and I have done several flight tests.
But when I flew it,the IMU data got distorted, basically in Paparazzi Auto1 mode (which means the UAV is supposed to fly straight and keep the same altitude without any control input from the safety pilot), the plane will turn left itself, and when the safety pilot tries to turn it, the plane will descend and almost get into tip stall situation.
I am thinking it is because how I set up
the timer for the IMU and GPS. I am not using the newest ArduIMU 1.8.1 code because there are some stuff I don't need (like the air pressure sensor and compass). I am also trying to understand the new DCM code so right now I am still using the
ArduIMUV2_DCM_V10 as my base code and I adopted the GPS parsing part from the 1.8.1 version. However, what I found was very strange, the ID NAV-POSLLH (longitude, latitude,etc) and ID NAV-STATUS (Receiver navigation status) able to update at 4Hz but ID NAV-SOL (Navigation solution information) and ID NAV-VELNED (ground speed, course) can not be updated at 4Hz when I set the millis()-timerDecGPS)>=250 (I checked the update of iTOW for both class and they are different, sometimes the iTOW for NAV-VELNED just remains constant or updates randomly). I also check the version 1.8.1 and it does the same thing, so I am wondering whether anybody here experience similar problem and have any comments.
Because I used the version ArduIMUV2_DCM_V10, the filter and parsings are using different timers. I also noticed that when I separated the loop function for the DCM filter(50Hz), parsing IMU(50Hz) and parsing GPS (4Hz), the parsing IMU updating rate got affected and probably so does the filter function, which cause the flight performance very unstable. So I am wondering whether I should use the version 1.8.1's loop function since it looks more reasonable to me.
Thanks for any inputs on these problems.