We have just completed a flight test program of our MK-II SurVoyeur UAV System after having fitted the new Autopilot/IMU. This autopilot replaces the 32bit AVR based autopilot in our preceding UAV's, with a view to giving a big boost in performance, shorten IMU cycle times ( from 200Hz), and eliminating all the component obsolescence issues of the AVR based modules.
The autopilot is again a single module, but now contained all the video switching for up to 4 video sources, switchable from the ground station, all the DC-DC convertors for up to eight Medium size Digital servos, all the power supplies for Datalink and video transmitter modules, as well as all power conditioning for the EO-IR stabilized gimbal fitted to the MK-II system.
There are now 6 serial channels ( RS422/RS232/TTL configurable) , 11 PWM outputs, Analogue inputs for Laser Rangefinder. Ultrasonic Rangefinder, ESC/Motor Amp measurement, and for a two cylinder Gas engine CHT measurement ( using thermocouples). External Air temp is also measured to do Static Pressure compensation for Baro Alt.
The module is also fitted the Measurement Specialities 24bit Static and Dynamic pressure sensors. In addition, a further 6 (!) digital static pressure sensors are fitted.
These are :
MS5611 ( two fitted in different locations)
The reason for this was really to test the performance of each of these sensors, and as they cost very little, we decided to include them all on the final modules. Since most actually all work quite well, we are implementing a redundancy selection scheme to select working sensors from failed ones, just because they are there...
The sensor we are most unhappy with is the 24bit Measurement Specialities device the MS4525HDR. It is so complex to manage, each sensor serial number is supplied with a special set of coefficients that are used in a complex set of computations to do the pressure/temperature computation. These coefficients have to be stored on-board the autopilot which means each software load has a specific module particular to that board. A config management mess...since the coefficients are not stored within the sensor by the manufacturer, but on a piece of paper supplied with the sensor. Nuts!
And then the sensor performance over the range 0 to 60deg C is not great - it varies by more than 5millibar ( 40meters!). So, on top of its complexity, we still have to do a 2nd order polynomial temp correction to get better than 0.5millbar variation over that temp range. It does not end there - it is also very susceptible to vibration - in the plot below, you can see the wild oscillation ( blue line) as soon as the wheels start to roll, and how the pressure reading goes smooth again as the wheels lift off the ground : From vertical lines 2 up to 4. The graph is in pressure, so the graph shows reducing pressure as the plane climbs from vertical line 4. The oscillation is a peak to peak value of 0.9millibar - nearly 8 meters! Certainly cannot use this sensor to know if you have lifted off the ground! We use the LRF...
Measurement Specialties just snubs us - we are to small for them to be concerned about our 'bad' report...
The IMU is fitted with two MPU6500, each running a full IMU at 400Hz, but with different filter coefficients within the Kalman filter - this helps tremendously in the elimination of IMU bias or drift during high vibration, such as during taxi on rough ground. An HMC5883 Magnetometer is also fitted as a separate module, able to be located in a clean environment on the A/C.
ALL sensors are fully temperature compensated from 0deg C to 65deg C
The host processor is the STM32F427, running at 140MHz.
Failsafe is managed by a separate AVR processor on the module.
We also used large connectors so that cables are more easily crimped, more reliable, and fit securely.
( see my previous blogs for info on the previous autopilots)
The test aircraft was fitted with is full payload - an EO-IR stabilised gimbal ( Sony EX11 block cam, and FLIR QUARK IR CAM), and a 16Mpixel fixed down looking stills camera, snap and focus controlled by the autopilot.
The Laserman ( Lightware) SF10 laser rangefinder is also fitted as the main landing aid sensor, as visible in the above photographs.
Here are some photos of the autopilot module:
Top view of full board:
These are the two module in the middle, containing the inertial sensors and all the pressure sensors. They are separate , small PCB's, so that they can be easily exchange for ones fitted with newer devices, etc.
The flight test were very successful, the new autopilot performs very well, and the IMU worked as designed...
The launch and landing plots below show the Height above ground from Baro Pressure sensor and the laser Rangefinder height to ground.
This is the auto-launch plot:
The image is not very clear, but resolution on the blog post does not really allow any better...
The green is the Rangefinder, which works to 60meters, but we limit it at 40meters, since we are not interested in range above that.
The red is pressure height AGL.
The vertical delimiters are 2.4seconds apart. Wheels up are at the 4th vertical.
The 'step' in the red line at middway between 9 and 10 is where we command a change in datalink TX power from 1milliwatt to 100milliwatts which results in a short link loss period.
A nice smooth climb of the A/C. The left scale is 4meters per horizontal line.
What is very evident is the lag in pressure altitude measurement during the climb - the lag is almost a half second. The air pressure measurement is not filtered or smoothed at all, so it is purely the digital sensor internal oversampling delay.
And the Auto-landings , below, are a thing of beauty!
Red again is pressure based height AGL, green is LRF.
And again, the step middway between the 1st and 2nd verticals is the switch from 100milliwate back to 1milliwatt on the datalink , because we land about 10meters away from the ground station, and 100milliwatts saturates the RX at that range - the Xbee 868MHz modem are VERY sensitive - we get nearly 30km range at 300milliwatts with 1/2 wave dipoles.
The landing is a circle, starting at 100meters height, and spiraling down, till about 20meters AGL ( vertical line 6 approx) and then unrolling, straightening out onto track to touch down at a GPS point ahead. It is seen that the LRF and Pressure height track reasonably well, but the pressure sensor lag is still evident.
At vertical 11, we are at approx 6 meters height, and we begin final landing control, at 4 meters we kill throttle, and start the flare maneuver, which completes at 0.4meters above ground, and a smooth gentle touchdown at just after vertical 16, at about 0.5m/s sink rate. After 14 such landings the min sink rate achieved was 0.3m/s at touchdown, and the max was 0.7m/s. Windspeeds during the 14 flights varied from 4m/s up to 13m/s.
We never managed this reliably at all with pressure only landings, and with the previously fitted ultrasound sensors we often had 'hard' landings, due to the fact that the switch from pressure height to actual ultrasound height would only occur at 5meters AGL or so - the typical range of ultrasound sensors over rough ground. With laser we switch to the LRF height at 30 meters already, and are able to compensate for any pressure sensor drift in good time.
The system is now totally hands off....Push the button and go..