forked from ArduPilot/ardupilot
-
Notifications
You must be signed in to change notification settings - Fork 1
/
release-notes.txt
1860 lines (1495 loc) · 77.4 KB
/
release-notes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Release 3.7.0, 9th September 2016
---------------------------------
The ArduPilot development team is proud to announce the release of
version 3.7.0 of APM:Plane. This is a major update so please read the
notes carefully.
The biggest changes in this release are:
- more reliable recovery from inverted flight
- automatic IC engine support
- Q_ASSIST_ANGLE for stall recovery on quadplanes
- Pixhawk2 IMU heater support
- PH2SLIM support
- AP_Module support
- Parrot Disco support
- major VRBrain support merge
- much faster boot time on Pixhawk
I'll give a bit of detail on each of these changes before giving the
more detailed list of changes.
More reliable recovery from inverted flight
Marc Merlin discovered that on some types of gliders that ArduPilot
would not reliably recover from inverted flight. The problem turned
out to be the use of the elevator at high bank angles preventing the
ailerons from fully recovering attitude. The fix in this release
prevent excessive elevator use when the aircraft is beyond
LIM_ROLL_CD. This should help a lot for people using ArduPilot as a
recovery system for manual FPV flight.
Automatic IC engine support
ArduPilot has supported internal combustion engines for a long time,
but until now the pilot has had to control the ignition and starter
manually using transmitter pass throughs. A new "ICE" module in
ArduPilot now allows for fully automatic internal combustion engine
support.
Coupled with an RPM sensor you can setup your aircraft to
automatically control the ignition and starter motor, allowing for one
touch start of the motor on the ground and automatic restart of the
motor in flight if needed.
The IC engine support is also integrated into the quadplane code,
allowing for automatic engine start at a specified altitude above the
ground. This is useful for tractor engine quadplanes where the
propeller could strike the ground on takeoff. The engine can also be
automatically stopped in the final stage of a quadplane landing.
Q_ASSIST_ANGLE for stall recovery
Another new quadplane feature is automatic recovery from fixed wing
stall. Previously the VTOL motors would only provide assistance in
fixed wing modes when the aircraft airspeed dropped below
Q_ASSIST_SPEED. Some stalls can occur with higher airspeed however,
and this can result in the aircraft losing attitude control without
triggering a Q_ASSIST_SPEED recovery. A new parameter Q_ASSIST_ANGLE
allows for automatic assistance when attitude control is lost,
triggering when the attitude goes outside the defined roll and pitch
limits and is more than Q_ASSIST_ANGLE degrees from the desired
attitude. Many thanks to Iskess for the suggestion and good discussion
around this feature.
Pixhawk2 heated IMU support
This release adds support for the IMU heater in the upcoming Pixhawk2,
allowing for more stable IMU temperatures. The Pixhawk2 is
automatically detected and the heater enabled at boot, with the target
IMU temperature controllable via BRD_IMU_TARGTEMP.
Using an IMU heater should improve IMU stability in environments with
significant temperature changes.
PH2SLIM Support
This release adds support for the PH2SLIM variant of the Pixhawk2,
which is a Pixhawk2 cube without the isolated sensor top board. This
makes for a very compact autopilot for small aircraft. To enable
PH2SLIM support set the BRD_TYPE parameter to 6 using a GCS connected
on USB.
AP_Module Support
This is the first release of ArduPilot with loadable module support
for Linux based boards. The AP_Module system allows for externally
compiled modules to access sensor data from ArduPilot controlled
sensors. The initial AP_Module support is aimed at vendors integrating
high-rate digital image stabilisation using IMU data, but it is
expected this will be expanded to other use cases in future releases.
Parrot Disco Support
This release adds support for the Parrot C.H.U.C.K autopilot in the
new Disco airframe. The Disco is a very lightweight flying wing with
a nicely integrated Linux based autopilot. The Disco flies very nicely
with ArduPilot, bringing the full set of mission capabilities of
ArduPilot to this airframe.
Major VRBrain Support Update
This release includes a major merge of support for the VRBrain family
of autopilots. Many thanks to the great work by Luke Mike in putting
together this merge!
Much Faster Boot Time
Boot times on Pixhawk are now much faster due to a restructuring of
the driver startup code, with slow starting drivers not started unless
they are enabled with the appropriate parameters. The restructuring
also allows for support of a wide variety of board types, including
the PH2SLIM above.
This release includes many other updates right across the flight
stack, including several new features. Some of the changes include:
- improved quadplane auto-landing
- limit roll and pitch by Q_ANGLE_MAX in Q modes
- improved ADSB avoidance and MAVLink streaming
- smoother throttle control on fixed-wing to VTOL transition
- removed "demo servos" movement on boot
- fixed a problem with spurious throttle output during boot (thanks
to Marco for finding this)
- support MAVLink SET_ATTITUDE_TARGET message
- log all rally points on startup
- fixed use of stick mixing for rudder with STICK_MIXING=0
- fixed incorrect tuning warnings when vtol not active
- support MAVLink based external GPS device
- support LED_CONTROL MAVLink message
- prevent baro update while disarmed for large height change
- support PLAY_TUNE MAVLink message
- added AP_Button support for remote button input reporting
- support Ping2020 ADSB transceiver
- fixed disarm by rudder in quadplanes
- support 16 channel SERVO_OUTPUT_RAW in MAVLink2
- added automatic internal combustion engine support
- support DO_ENGINE_CONTROL MAVLink message
- added ground throttle suppression for quadplanes
- added MAVLink reporting of logging subsystem health
- prevent motor startup on reboot in quadplanes
- added quadplane support for Advanced Failsafe
- added support for a 2nd throttle channel
- fixed bug in crash detection during auto-land flare
- lowered is_flying groundspeed threshold to 1.5m/s
- added support for new FrSky telemetry protocol varient
- added support for fence auto-enable on takeoff in quadplanes
- added Q_ASSIST_ANGLE for using quadplane to catch stalls in fixed wing flight
- added BRD_SAFETY_MASK to allow for channel movement for selected channels with safety on
- numerous improvements to multicopter stability control for quadplanes
- support X-Plane10 as SITL backend
- lots of HAL_Linux improvements to bus and thread handling
- fixed problem with elevator use at high roll angles that could
prevent attitude recovery from inverted flight
- improved yaw handling in EKF2 near ground
- added IMU heater support on Pixhawk2
- allow for faster accel bias learning in EKF2
- fixed in-flight yaw reset bug in EKF2
- added AP_Module support for loadable modules
- support Disco airframe from Parrot
- use full throttle in initial takeoff in TECS
- added NTF_LED_OVERRIDE support
- added terrain based simulation in SITL
- merged support for wide range of VRBrain boards
- added support for PH2SLIM and PHMINI boards with BRD_TYPE
- greatly reduced boot time on Pixhawk and similar boards
- fixed magic check for signing key in MAVLink2
- fixed averaging of gyros for EKF2 gyro bias estimate
Release 3.6.0, 6th June 2016
----------------------------
The ArduPilot development team is proud to announce the release of
version 3.6.0 of APM:Plane. This is a major update so please read the
notes carefully.
The biggest changes in this release are:
- major update to PX4Firmware code
- major update to QuadPlane code
- addition of MAVLink2 support
The updated PX4Firmware tree greatly improves support for the new
Pixracer boards as well as improving scheduling performance and UAVCAN
support.
The QuadPlane changes are very extensive in this release. A lot of new
features have been added, including:
- improved automatic weathervaning
- greatly improved support for mixed fixed wing and VTOL missions
- automatic RTL with VTOL land
- VTOL GUIDED mode support
- greatly improved transition code
- new tuning system for VTOL motors
- extensive upgrade to logging system for much better flight analysis
The new QuadPlane features are documented at:
http://ardupilot.org/plane/docs/quadplane-support.html
There is also a prototype implementation supporting tiltrotors and
tiltwings, but so far it has only been flown in simulations and it
should be considered very experimental.
Detailed changes include:
- added motortest for all quad motors in sequence
- merge upstream PX4Firmware changes
- new AC_AttitudeControl library from copter for quadplane
- modified default gains for quadplanes
- new velocity controller for initial quadplane landing
- smooth out final descent for VTOL landing
- changed default loop rate for quadplanes to 300Hz
- support up to 16 output channels (two via SBUS output only)
- fixed bug with landing flare for high values of LAND_FLARE_SEC
- improved crash detection logic
- added in-flight transmitter tuning
- fix handling of SET_HOME_POSITION
- added Q_VFWD_GAIN for forward motor in VTOL modes
- added Q_WVANE_GAIN for active weathervaning
- log the number of lost log messages
- Move position update to 50hz loop rather then the 10hz
- Suppress throttle when parachute release initiated, not after release.
- support Y6 frame class in quadplane
- log L1 xtrack error integrator and remove extra yaw logging
- limit roll before calculating load factor
- simplify landing flare logic
- smooth-out the end of takeoff pitch by reducing takeoff pitch min via TKOFF_PLIM_SEC
- added support for DO_VTOL_TRANSITION as a mission item
- fixed is_flying() for VTOL flight
- added Q_ENABLE=2 for starting AUTO in VTOL
- reload airspeed after VTOL landing
- lower default VTOL ANGLE_MAX to 30 degrees
- Change mode to RTL on end of mission rather then staying in auto
- implemented QRTL for quadplane RTL
- added Q_RTL_MODE parameter for QRTL after RTL approach
- reduced the rate of EKF and attitude logging to 25Hz
- added CHUTE_DELAY_MS parameter
- allow remapping of any input channel to any output channel
- numerous waf build improvements
- support fast timer capture for camera trigger feedback
- numerous improvements for Pixracer support
- added more general tiltrotor support to SITL
- only save learned compass offsets when disarmed
- support MISSION_ITEM_INT for more accurate waypoint positions
- change parachute deployment altitude to above ground not home
- added AP_Tuning system for QuadPlane tuning
- added initial support for tiltrotors and tiltwings
- added LOG_REPLAY and LOG_DISARMED parameters
- added Q_GUIDED_MODE parameter
- major update to QuadPlane documentation
- added MAVLink2 support
- fixed origin vs home altitude discrepancy
- improved Lidar based landing glide slope
- fixed throttle failsafe with THR_PASS_STAB=1
- prevent EKF blocking during baro and airspeed cal
- allow for ground testing of parachutes with CHUTE_MINALT=0
- fixed elevator stick mixing for above 50% input
- added QuadPlane ESC calibration
Release 3.6.0beta1, 30th April 2016
-----------------------------------
The ArduPilot development team is proud to announce the release of
version 3.6.0beta1 of APM:Plane. This is the first beta version of a
major release.
The biggest changes in this release is the major update of the
PX4Firmware tree which greatly improves support for the Pixracer
board, and a lot of QuadPlane improvements and new features.
Detailed changes include:
- added motortest for all quad motors in sequence
- merge upstream PX4Firmware changes
- new AC_AttitudeControl library from copter for quadplane
- modified default gains for quadplanes
- new velocity controller for initial quadplane landing
- smooth out final descent for VTOL landing
- changed default loop rate for quadplanes to 300Hz
- support up to 16 output channels (two via SBUS output only)
- fixed bug with landing flare for high values of LAND_FLARE_SEC
- improved crash detection logic
- added in-flight transmitter tuning
- fix handling of SET_HOME_POSITION
- added Q_VFWD_GAIN for forward motor in VTOL modes
- added Q_WVANE_GAIN for active weathervaning
- log the number of lost log messages
- Move position update to 50hz loop rather then the 10hz
- Suppress throttle when parachute release initiated, not after release.
- support Y6 frame class in quadplane
- log L1 xtrack error integrator and remove extra yaw logging
- limit roll before calculating load factor
- simplify landing flare logic
- smooth-out the end of takeoff pitch by reducing takeoff pitch min via TKOFF_PLIM_SEC
- added support for DO_VTOL_TRANSITION as a mission item
- fixed is_flying() for VTOL flight
- added Q_ENABLE=2 for starting AUTO in VTOL
- reload airspeed after VTOL landing
- lower default VTOL ANGLE_MAX to 30 degrees
- Change mode to RTL on end of mission rather then staying in auto
- implemented QRTL for quadplane RTL
- added Q_RTL_MODE parameter for QRTL after RTL approach
- reduced the rate of EKF and attitude logging to 25Hz
- added CHUTE_DELAY_MS parameter
- allow remapping of any input channel to any output channel
- numerous waf build improvements
- support fast timer capture for camera trigger feedback
- numerous improvements for Pixracer support
- added more general tiltrotor support to SITL
Release 3.5.3, 30th April 2016
------------------------------
The ArduPilot development team is proud to announce the release of
version 3.5.3 of APM:Plane. This is a minor release with only small
bugfix changes.
The main motivation for the release is a problem with flying without a
compass enabled. If you fly 3.5.2 with MAG_ENABLE=0 or no compass
attached then there is a risk that the EKF2 attitude estimator may
become unstable before takeoff. This can cause the aircraft to crash.
The other changes in this release are:
- fixed loiter radius for counter-clockwise loiter
- fixed the loiter radius when doing a RTL at the end of a mission
- provide reasons to the GCS when a uBlox GPS fails to properly configure
- support a wider variety of NMEA GPS receivers
- use EKF1 by default if no compass is enabled
Happy flying!
Release 3.5.2, 26th March 2016
------------------------------
The ArduPilot development team is proud to announce the release of
version 3.5.2 of APM:Plane. This is a minor release with small
changes.
The main reason for this release over 3.5.1 is a fix for a bug where
the px4io co-processor on a Pixhawk can run out of memory while
booting. This causes the board to be unresponsive on boot. It only
happens if you have a more complex servo setup and is caused by too
much memory used by the IO failsafe mixer.
The second motivation for this release is to fix an issue where during
a geofence altitude failsafe that happens at low speed an aircraft may
dive much further than it should to gain speed. This only happened if
the thrust line of the aircraft combined with low pitch integrator
gain led to the aircraft not compensating sufficiently with elevator
at full throttle in a TECS underspeed state. To fix this two changes
have been made:
- a minimum level of integrator in the pitch controller has been
added. This level has a sufficiently small time constant to avoid
the problem with the TECS controller in an underspeed state.
- the underspeed state in TECS has been modified so that underspeed
can end before the full target altitude has been reached, as long
as the airspeed has risen sufficiently past the minimum airspeed
for a sufficient period of time (by 15% above minimum airspeed for
3 seconds).
The default P gains for both roll and pitch have also been raised from
0.4 to 0.6. This is to help for users that fly with the default
parameters. A value of 0.6 is safe for all aircraft that I have
analysed logs for.
The default gains and filter frequencies of the QuadPlane code have
also been adjusted to better reflect the types of aircraft users have
been building.
Other changes include:
- improved QuadPlane logging for better analysis and tuning (adding
RATE and QTUN messages)
- fixed a bug introduced in 3.5.1 in rangefinder landing
- added TECS logging of speed_weight and flags
- improvements to the lsm303d driver for Linux
- improvements to the waf build system
Release 3.5.1, 21st March 2016
------------------------------
The ArduPilot development team is proud to announce the release of
version 3.5.1 of APM:Plane. This is a minor release with primarily
small changes.
The changes in this release are:
- update uavcan to new protocol
- always exit loiter in AUTO towards next waypoint
- support more multicopter types in quadplane
- added support for reverse thrust landings
- added LAND_THR_SLEW parameter
- added LAND_THEN_NEUTRL parameter
- fixed reporting of armed state with safety switch
- added optional arming check for minimum voltage
- support motor test for quadplanes
- added QLAND flight mode (quadplane land mode)
- added TECS_LAND_SRC (land sink rate change)
- use throttle slew in quadplane transition
- added PID tuning for quadplane
- improved text message queueing to ground stations
- added LAND_THR_SLEW parameter
- re-organisation of HAL_Linux bus API
- improved NMEA parsing in GPS driver
- changed TECS_LAND_SPDWGT default to -1
- improved autoconfig of uBlox GPS driver
- support a wider range of Lightware serial Lidars
- improved non-GPS performance of EKF2
- allow for indoor flight of quadplanes
- improved compass fusion in EKF2
- improved support for Pixracer board
- improved NavIO2 support
- added BATT_WATT_MAX parameter
The reverse thrust landing is particularly exciting as that adds a
whole new range of possibilities for landing in restricted areas. Many
thanks to Tom for the great work on getting this done.
The uavcan change to the new protocol has been a long time coming, and
I'd like to thank Holger for both his great work on this and his
patience given how long it has taken to be in a release. This adds
support for automatic canbus node assignment which makes setup much
easier, and also supports the latest versions of the Zubax canbus GPS.
My apologies if your favourite feature didn't make it into this
release! There are a lot more changes pending but we needed to call a
halt for the release eventually. This release has had a lot of flight
testing and I'm confident it will be a great release.
Happy flying!
Release 3.5.0, 30th January 2016
--------------------------------
The ArduPilot development team is proud to announce the release of
version 3.5.0 of APM:Plane. This is a major release with a lot of
changes so please read the notes carefully!
The biggest changes in this release are:
- switch to new EKF2 kalman filter for attitude and position estimation
- added support for parachutes
- added support for QuadPlanes
- support for 4 new flight boards, the QualComm Flight, the BHAT,
the PXFmini and the Pixracer
- support for arming on moving platforms
- support for better camera trigger logging
New Kalman Filter
The 3.4 release series was the first where APM:Plane used a Kalman
Filter by default for attitude and position estimation. It works very
well, but Paul Riseborough has been working hard recently on a new
EKF variant which fixes many issues seen with the old estimator. The
key improvements are:
- support for separate filters on each IMU for multi-IMU boards
(such as the Pixhawk), giving a high degree of redundency
- much better handling of gyro drift estimation, especially on
startup
- much faster recovery from attitude estimation errors
After extensive testing of the new EKF code we decided to make it the
default for this release. You can still use the old EKF if you want to
by setting AHRS_EKF_TYPE to 1, although it is recommended that the new
EKF be used for all aircraft.
Parachute Support
This is the first release with support for parachute landings on
plane. The configuration and use of a parachute is the same as the
existing copter parachute support. See
http://copter.ardupilot.org/wiki/parachute/
Note that parachute support is considered experimental in planes.
QuadPlane Support
This release includes support for hybrid plane/multi-rotors called
QuadPlanes. More details are available in this blog post:
http://diydrones.com/profiles/blogs/quadplane-support-in-apm-plane-3-5-0
Support for 4 new Flight Boards
The porting of ArduPilot to more flight boards continues, with support
for 3 new flight boards in this release. They are:
- the BHAT board
- the PXFmini
- the QualComm Flight
- the Pixracer
More information about the list of supported boards is available here:
http://dev.ardupilot.org/wiki/supported-autopilot-controller-boards/
Startup on a moving platform
One of the benefits of the new EKF2 estimator is that it allows for
rapid estimation of gyro offset without doing a gyro calibration on
startup. This makes it possible to startup and arm on a moving
platform by setting the INS_GYR_CAL parameter to zero (to disable gyro
calibration on boot). This should be a big help when flying off boats.
Improved Camera Trigger Logging
This release adds new CAM_FEEDBACK_PIN and CAM_FEEDBACK_POL
parameters. These add support for separate CAM and TRIG log messages,
where TRIG is logged when the camera is triggered and the CAM message
is logged when an external pin indicates the camera has actually
fired. This pin is typically based on the flash hotshoe of a camera
and provides a way to log the exact time of camera triggering more
accurately. Many thanks to Dario Andres and Jaime Machuca for their
work on this feature.
That is just a taste of all of the improvements in this release. In
total the release includes over 1500 patches. Some of the other more
significant changes include:
- RPM logging
- new waf build system
- new async accel calibrator
- SITL support for quadplanes
- improved land approach logic
- better rangefinder power control
- ADSB adapter support
- dataflash over mavlink support
- settable main loop rate
- hideable parameters
- improved crash detection logic
- added optional smooth speed weighting for landing
- improved logging for dual-GPS setups
- improvements to multiple RTK GPS drivers
- numerous HAL_Linux improvements
- improved logging of CAM messages
- added support for IMU heaters in HAL_Linux
- support for RCInput over UDP in HAL_Linux
- improved EKF startup checks for GPS accuracy
- added raw IMU logging for all platforms
- added BRD_CAN_ENABLE parameter
- support FlightGear visualisation in SITL
- configurable RGB LED brightness
- added RTL_RADIUS parameter
- improvements to the OVERRIDE_CHAN handling, fixing a race condition
- added OVERRIDE_SAFETY parameter
Many thanks to everyone who contributed to this release! The
development team is growing at a fast pace, with 57 people
contributing changes over this release cycle.
I'd like to make special mention of Tom Pittenger and Michael du
Breuil who have been doing extensive testing of the plane development
code, and also contributing a great deal of their own
improvements. Thanks!
Release 3.4.0, 24th September 2015
----------------------------------
The ArduPilot development team is proud to announce the release of
version 3.4.0 of APM:Plane. This is a major release with a lot of
changes so please read the notes carefully!
First release with EKF by default
This is the also the first release that enables the EKF (Extended
Kalman Filter) for attitude and position estimation by default. This
has been in development for a long time, and significantly improves
flight performance. You can still disable the EKF if you want to using
the AHRS_EKF_USE parameter, but it is strongly recommended that you
use the EKF. Note that if an issue is discovered with the EKF in
flight it will automatically be disabled and the older DCM system will
be used instead. That should be very rare.
In order to use the EKF we need to be a bit more careful about the
setup of the aircraft. That is why in the last release we enabled
arming and pre-arm checks by default. Please don't disable the arming
checks, they are there for very good reasons.
Last release with APM1/APM2 support
This will be the last major release that supports the old APM1/APM2
AVR based boards. We have finally run out of flash space and
memory. In the last few releases we spent quite a bit of time trying
to squeeze more and more into the small flash space of the APM1/APM2,
but it had to end someday if ArduPilot is to continue to develop. I am
open to the idea of someone else volunteering to keep doing
development of APM1/APM2 so if you have the skills and inclination do
please get in touch. Otherwise I will only do small point release
changes for major bugs.
Even to get this release onto the APM1/APM2 we had to make sacrifices
in terms of functionality. The APM1/APM2 release is missing quite a
few features that are on the Pixhawk and other boards. For example:
- no rangefinder support for landing
- no terrain following
- no EKF support
- no camera control
- no CLI support
- no advanced failsafe support
- no HIL support (sorry!)
- support for far fewer GPS types
that is just the most obvious major features that are missing on
APM1/APM2. There are also numerous other smaller things where we need
to take shortcuts on the APM1/APM2. Some of these features were
available on older APM1/APM2 releases but needed to be removed to
allow us to squeeze the new release onto the board. So if you are
happy with a previous release on your APM2 and want a feature that is
in that older release and not in this one then perhaps you shouldn't
upgrade.
PID Tuning
While most people are happy with autotune to tune the PIDs for their
planes, it is nice also to be able to do fine tuning by hand. This
release includes new dataflash and mavlink messages to help with that
tuning. You can now see the individual contributions of the P, I and D
components of each PID in the logs, allowing you to get a much better
picture of the performance.
A simple application of this new tuning is you can easily see if your
trim is off. If the Pitch I term is constantly contributing a
signifcant positive factor then you know that ArduPilot is having to
constantly apply up elevator, which means your plane is nose
heavy. The same goes for roll, and can also be used to help tune your
ground steering.
Vibration Logging
This release includes a lot more options for diagnosing vibration
issues. You will notice new VIBRATION messages in MAVLink and VIBE
messages in the dataflash logs. Those give you a good idea of your
(unfiltered) vibration levels. For really detailed analysis you can
setup your LOG_BITMASK to include raw logging, which gives you every
accel and gyro sample on your Pixhawk. You can then do a FFT on the
result and plot the distribution of vibration level with
frequency. That is great for finding the cause of vibration
issues. Note that you need a very fast microSD card for that to work!
Rudder Disarm
This is the first release that allows you to disarm using the rudder
if you want to. It isn't enabled by default (due to the slight risk of
accidentially disarming while doing aerobatics). You can enable it
with the ARMING_RUDDER parameter by setting it to 2. It will only
allow you to disarm if the autopilot thinks you are not flying at the
time (thanks to the "is_flying" heuristics from Tom Pittenger).
More Sensors
This release includes support for a bunch more sensors. It now supports
3 different interfaces for the LightWare range of Lidars (serial, I2C
and analog), and also supports the very nice Septentrio RTK
dual-frequency GPS (the first dual-frequency GPS we have support
for). It also supports the new "blue label" Lidar from Pulsed Light
(both on I2C and PWM).
For the uBlox GPS, we now have a lot more configurability of the
driver, with the ability to set the GNSS mode for different
constellations. Also in the uBlox driver we support logging of the raw
carrier phase and pseudo range data, which allows for post-flight RTK
analysis with raw-capable receivers for really accurate photo
missions.
Better Linux support
This release includes a lot of improvements to the Linux based
autopilot boards, including the NavIO+, the PXF and ERLE boards and
the BBBMini and the new RasPilot board. If you like the idea of flying
with Linux then please try it out!
On-board compass calibrator
We also have a new on-board compass calibrator, which also adds calibration
for soft iron effects, allowing for much more accurate compass
calibration. Support for starting the compass calibration in the
various ground stations is still under development, but it looks like
this will be a big improvement to compass calibration.
Lots of other changes!
The above list is just a taste of the changes that have gone into this
release. Thousands of small changes have gone into this release with
dozens of people contributing. Many thanks to everyone who helped!
Other key changes include:
- fixed return point on geofence breach
- enable messages for MAVLink gimbal support
- use 64 bit timestamps in dataflash logs
- added realtime PID tuning messages and PID logging
- fixed a failure case for the px4 failsafe mixer
- added DSM binding support on Pixhawk
- added ALTITUDE_WAIT mission command
- added vibration level logging
- ignore low voltage failsafe while disarmed
- added delta velocity and delta angle logging
- fix LOITER_TO_ALT to verify headings towards waypoints within the loiter radius
- allow rudder disarm based on ARMING_RUDDER parameter
- fix default behaviour of flaps
- prevent mode switch changes changing WP tracking
- make TRAINING mode obey stall prevention roll limits
- disable TRIM_RC_AT_START by default
- fixed parameter documentation spelling errors
- send MISSION_ITEM_REACHED messages on waypoint completion
- fixed airspeed handling in SITL simulators
- enable EKF by default on plane
- Improve gyro bias learning rate for plane and rover
- Allow switching primary GPS instance with 1 sat difference
- added NSH over MAVLink support
- added support for mpu9250 on pixhawk and pixhawk2
- Add support for logging ublox RXM-RAWX messages
- lots of updates to improve support for Linux based boards
- added ORGN message in dataflash
- added support for new "blue label" Lidar
- switched to real hdop in uBlox driver
- improved auto-config of uBlox
- raise accel discrepancy arming threshold to 0.75
- improved support for tcp and udp connections on Linux
- switched to delta-velocity and delta-angles in DCM
- improved detection of which accel to use in EKF
- improved auto-detections of flow control on pixhawk UARTs
- Failsafe actions are not executed if already on final approach or land.
- Option to trigger GCS failsafe only in AUTO mode.
- added climb/descend parameter to CONTINUE_AND_CHANGE_ALT
- added HDOP to uavcan GPS driver
- improved sending of autopilot version
- prevent motor startup with bad throttle trim on reboot
- log zero rangefinder distance when unhealthy
- added PRU firmware files for BeagleBoneBlack port
- fix for recent STORM32 gimbal support
- changed sending of STATUSTEXT severity to use correct values
- added new RSSI library with PWM input support
- fixed MAVLink heading report for UAVCAN GPS
- support LightWare I2C rangefinder on Linux
- improved staging of parameters and formats on startup to dataflash
- added new on-board compass calibrator
- improved RCOutput code for NavIO port
- added support for Septentrio GPS receiver
- support DO_MOUNT_CONTROl via command-long interface
- added CAM_RELAY_ON parameter
- moved SKIP_GYRO_CAL functionality to INS_GYR_CAL
- added detection of bad lidar settings for landing
Note that the documentation hasn't yet caught up with all the changes
in this release. We are still working on that, but meanwhile if you
see a feature that interests you and it isn't documented yet then
please ask.
Release 3.3.0, 20th May 2015
----------------------------
The ardupilot development team is proud to announce the release of
version 3.3.0 of APM:Plane. This is a major release with a lot of
changes. Please read the release notes carefully!
The last stable release was 3 months ago, and since that time we have
applied over 1200 changes to the code. It has been a period of very
rapid development for ArduPilot. Explaining all of the changes that
have been made would take far too long, so I've chosen some key
changes to explain in detail, and listed the most important secondary
changes in a short form. Please ask for details if there is a change
you see listed that you want some more information on.
Arming Changes
--------------
This is the first release of APM:Plane where ARMING_CHECK and
ARMING_REQUIRE both default to enabled. That means when you upgrade if
you didn't previously have arming enabled you will need to learn about
arming your plane.
Please see this page for more information on arming:
http://plane.ardupilot.com/wiki/arming-your-plane/
I know many users will be tempted to disable the arming checks, but
please don't do that without careful thought. The arming checks are an
important part of ensuring the aircraft is ready to fly, and a common
cause of flight problems is to takeoff before ArduPilot is ready.
Re-do Accelerometer Calibration
-------------------------------
Due to a change in the maximum accelerometer range on the Pixhawk all
users must re-do their accelerometer calibration for this release. If
you don't then your plane will fail to arm with a message saying that
you have not calibrated the accelerometers.
Only 3D accel calibration
-------------------------
The old "1D" accelerometer calibration method has now been removed, so
you must use the 3D accelerometer calibration method. The old method
was removed because a significant number of users had poor flights due
to scaling and offset errors on their accelerometers when they used
the 1D method. My apologies for people with very large aircraft who
find the 3D method difficult.
Note that you can do the accelerometer calibration with the autopilot
outside the aircraft which can make things easier for large aircraft.
Auto-disarm
-----------
After an auto-landing the autopilot will now by default disarm after
LAND_DISARMDELAY seconds (with a default of 20 seconds). This feature
is to prevent the motor from spinning up unexpectedly on the ground
after a landing.
HIL_MODE parameter
------------------
It is now possible to configure your autopilot for hardware in the
loop simulation without loading a special firmware. Just set the
parameter HIL_MODE to 1 and this will enable HIL for any
autopilot. This is designed to make it easier for users to try HIL
without having to find a HIL firmware.
SITL on Windows
---------------
The SITL software in the loop simulation system has been completely
rewritten for this release. A major change is to make it possible to
run SITL on native windows without needing a Linux virtual
machine. There should be a release of MissionPlanner for Windows soon
which will make it easy to launch a SITL instance.
The SITL changes also include new backends, including the CRRCSim
flight simulator. This gives us a much wider range of aircraft we can
use for SITL. See http://dev.ardupilot.com/wiki/simulation-2/ for more
information.
Throttle control on takeoff
---------------------------
A number of users had problems with pitch control on auto-takeoff, and
with the aircraft exceeding its target speed during takeoff. The
auto-takeoff code has now been changed to use the normal TECS throttle
control which should solve this problem.
Rudder only support
-------------------
There is a new RUDDER_ONLY parameter for aircraft without ailerons,
where roll is controlled by the rudder. Please see the documentation
for more information on flying with a rudder only aircraft:
http://plane.ardupilot.com/wiki/arduplane-parameters/#rudder_only_aircraft_arduplanerudder_only
APM1/APM2 Support
-----------------
We have managed to keep support for the APM1 and APM2 in this release,
but in order to fit it in the limited flash space we had to disable
some more features when building for those boards. For this release
the AP_Mount code for controlling camera mounts is disabled on
APM1/APM2.
At some point soon it will become impractical to keep supporting the
APM1/APM2 for planes. Please consider moving to a 32 bit autopilot
soon if you are still using an APM1 or APM2.
New INS code
------------
There have been a lot of changes to the gyro and accelerometer
handling for this release. The accelerometer range on the Pixhawk has
been changed to 16g from 8g to prevent clipping on high vibration
aircraft, and the sampling rate on the lsm303d has been increased to
1600Hz.
An important bug has also been fixed which caused aliasing in the
sampling process from the accelerometers. That bug could cause
attitude errors in high vibration environments.
Numerous Landing Changes
------------------------
Once again there have been a lot of improvements to the automatic
landing support. Perhaps most important is the introduction of a
smooth transition from landing approach to the flare, which reduces
the tendency to pitch up too much on flare.
There is also a new parameter TECS_LAND_PMAX which controls the
maximum pitch during landing. This defaults to 10 degrees, but for
many aircraft a smaller value may be appropriate. Reduce it to 5
degrees if you find you still get too much pitch up during the flare.
Other secondary changes in this release include:
- a new SerialManager library which gives much more flexible management of serial port assignment
- changed the default FS_LONG_TIMEOUT to 5 seconds
- raised default IMAX for roll/pitch to 3000
- lowered default L1 navigation period to 20
- new BRD_SBUS_OUT parameter to enable SBUS output on Pixhawk
- large improvements to the internals of PX4Firmware/PX4NuttX for better performance
- auto-formatting of microSD cards if they can't be mounted on boot (PX4/Pixhawk only)
- a new PWM based driver for the PulsedLight Lidar to avoid issues with the I2C interface
- fixed throttle forcing to zero when disarmed
- only reset mission on disarm if not in AUTO mode
- much better handling of steep landings
- added smooth transition in landing flare
- added HIL_MODE parameter for HIL without a special firmware
- lowered default FS_LONG_TIMEOUT to 5 seconds
- mark old ELEVON_MIXING mode as deprecated
- fixed 50Hz MAVLink support
- support DO_SET_HOME MAVLink command
- fixed larger values of TKOFF_THR_DELAY
- allow PulsedLight Lidar to be disabled at a given height
- fixed bungee launch (long throttle delay)
- fixed a bug handling entering AUTO mode before we have GPS lock
- added CLI_ENABLED parameter
- removed 1D accel calibration
- added EKF_STATUS_REPORT MAVLink message
- added INITIAL_MODE parameter
- added TRIM_RC_AT_START parameter
- added auto-disarm after landing (LAND_DISARMDELAY)
- added LOCAL_POSITION_NED MAVLink message
- avoid triggering a fence breach in final stage of landing
- rebuild glide slope if we are above it and climbing
- use TECS to control throttle on takeoff
- added RUDDER_ONLY parameter to better support planes with no ailerons
- updated Piksi RTK GPS driver
- improved support for GPS data injection (for Piksi RTK GPS)
- added NAV_LOITER_TO_ALT mission item
- fixed landing approach without an airspeed sensor
- support RTL_AUTOLAND=2 for landing without coming to home first
- disabled camera mount support on APM1/APM2
- added support for SToRM32 and Alexmos camera gimbals
- added support for Jaimes mavlink enabled gimbal
- improved EKF default tuning for planes
- updated support for NavIO and NavIO+ boards
- updated support for VRBrain boards
- fixes for realtime threads on Linux
- added simulated sensor lag for baro and mag in SITL
- made it possible to build SITL for native Windows
- switched to faster accel sampling on Pixhawk
- added coning corrections on Pixhawk
- set ARMING_CHECK to 1 by default
- disable NMEA and SiRF GPS on APM1/APM2
- support MPU9255 IMU on Linux
- updates to BBBMINI port for Linux
- added TECS_LAND_PMAX parameter
- switched to synthetic clock in SITL
- support CRRCSim FDM backend in SITL
- new general purpose replay parsing code
- switched to 16g accel range in Pixhawk
- added FENCE_AUTOENABLE=2 for disabling just fence floor
- added POS dataflash log message
- changed GUIDED behaviour to match copter
- added support for a 4th MAVLink channel
- support setting AHRS_TRIM in preflight calibration
- fixed a PX4 mixer out of range error
Best wishes to all APM:Plane users from the dev team, and happy
flying!
Release 3.2.2, February 10th 2015
---------------------------------
The ardupilot development team has released version 3.2.2 of
APM:Plane. This is a bugfix release for some important bugs found by
users of the 3.2.1 release.
The changes in this release are:
- fixed a bug that could cause short term loss of RC control with
some receiver systems and configurations
- allowed for shorter sync pulse widths for PPM-SUM receivers on
APM1 and APM2
- fixed HIL mode altitude
The most important bug fix is the one for short term loss of RC
control. This is a very long standing bug which didn't have a
noticeable impact for most people, but could cause loss of RC control
for around 1 or 2 seconds for some people in certain circumstances.
The bug was in the the AP_HAL RCInput API. Each HAL backend has a flag
that says whether there is a new RC input frame available. That flag
was cleared by the read() method (typically hal.rcin->read()). Callers
would check for new input by checking the boolean
hal.rcin->new_input() function.