Commit Graph

8237 Commits

Author SHA1 Message Date
Randy Mackay
4704b729c2 WPNav: reduce max acceleration to 2.5m/s
Also includes bug fix to ramp up of speed of intermediate point
2013-05-08 23:20:29 +09:00
Andrew Tridgell
635b3fabda Plane: fixed APM1-1280 build 2013-05-08 21:44:45 +10:00
Randy Mackay
9824f6c223 Copter: add flight mode strings to Parameter info 2013-05-08 16:41:45 +09:00
Randy Mackay
0a148cce19 Copter: log target alt in meters 2013-05-08 16:41:16 +09:00
Andrew Tridgell
095505129c DataFlash: hopefully fixed cause of frequent dataflash erase
Wait for 0.1s after erase and before we start writing parameters to
the log

Pair-Programmed-With: Randy Mackay <rmackay9@yahoo.com>
2013-05-08 17:00:36 +10:00
Andrew Tridgell
7fdf1b6f78 DataFlash: fixed example build 2013-05-08 16:45:40 +10:00
Andrew Tridgell
8f57b72e3f AP_InserialSensor: fixed example build 2013-05-08 16:45:31 +10:00
Andrew Tridgell
c3738ed344 AP_InertialNav: fixed example build 2013-05-08 16:45:21 +10:00
Andrew Tridgell
ed93f80ba9 AP_Baro: fixed example build 2013-05-08 16:45:07 +10:00
Andrew Tridgell
55d148abdd AC_WPNav: fixed example build 2013-05-08 16:44:59 +10:00
Andrew Tridgell
56694fd9b1 AC_Fence: fixed example build 2013-05-08 16:44:50 +10:00
Andrew Tridgell
81c1fd5fc4 Plane: support 3D accel calibration over MAVLink 2013-05-08 16:25:35 +10:00
Andrew Tridgell
9feb46c834 Copter: use new accel cal interact over MAVLink 2013-05-08 16:19:26 +10:00
Andrew Tridgell
2ddeaa7f4d AP_InertialSensor: show calibration offsets for success and failure
Pair-Programmed-With: Randy Mackay <rmackay9@yahoo.com>
2013-05-08 16:19:06 +10:00
Andrew Tridgell
f3f4b7205c AP_InsertialSensor: added support for MAVLink user interaction
allows APM to ask user to print enter to continue via MAVLink messages
during accel calibration
2013-05-08 16:18:40 +10:00
Andrew Tridgell
4bc53acbda SITL: support vsnprintf with %S on SITL 2013-05-08 16:17:36 +10:00
Andrew Tridgell
9cd0af1132 HAL_PX4: make PX4 snprintf support %S format
just maps it to %s for normal printf
2013-05-08 16:17:06 +10:00
Andrew Tridgell
223dfe4de5 AP_Rangefinder: added units for settle time 2013-05-08 14:21:32 +10:00
Andrew Tridgell
c5f1570f32 Plane: fixed flash logging of ATT
fixed types to be int16
2013-05-08 14:21:32 +10:00
Randy Mackay
328d900647 WPNav: flexible loiter speed
Also includes bug fix to allow speeds > 10m/s during missions
2013-05-07 17:11:24 +09:00
Andrew Tridgell
087a428360 Rover: prepare for 2.41 release 2013-05-07 13:03:18 +10:00
Randy Mackay
1f8161b493 AC_WPNav: remove unnecessary speed constraint 2013-05-07 11:58:04 +09:00
priseborough
854c50501d Plane: Added a constraint to demanded bank angle during FBW-A mode to prevent roll limits being exceeded 2013-05-07 11:01:05 +10:00
priseborough
aee23361dd APM_Control: Corrected typographical error in APM_Control/TuningGuide.txt 2013-05-07 11:00:57 +10:00
Andrew Tridgell
6f1cee6406 AP_AHRS: fixed position estimate with 2D fix or low satellite count
we should still use the GPS for position fixes when we have a low
number of satellites, but we should stop using it for velocity
estimates and attitude correction.
2013-05-07 10:52:14 +10:00
Andrew Tridgell
055da3c4b6 SITL: added SIM_GPS_NUMSATS parameter
this allows testing of the DCM code with less than 6 satellites
2013-05-07 10:38:36 +10:00
Randy Mackay
324200b52c Copter: disable centrifugal correction when disarmed 2013-05-06 15:32:08 +09:00
Randy Mackay
ceda7d26b0 AHRS: add correct_centrifugal and flags structure 2013-05-06 15:32:06 +09:00
Andrew Tridgell
7e36935140 autotest: keep images in history 2013-05-06 14:04:39 +10:00
Andrew Tridgell
2a9298f3d5 autotest: display flight tracks on autotest web page 2013-05-06 12:32:42 +10:00
Andrew Tridgell
fdd509a7c1 Plane: move baro init earlier in startup
this ensures it is initialised when CLI takeover by MP happens

Thanks to Prof Avi Levi for reporting this bug
2013-05-06 10:57:57 +10:00
Andrew Tridgell
0cf49308af Plane: mark a 2.73beta release 2013-05-05 22:36:22 +10:00
Andrew Tridgell
0e6a64fc14 Plane: reset roll/pitch integrators for APM_Control in takeoff
when airspeed is below airspeed minimum. This is consistent with the
previous controllers

Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2013-05-05 22:03:13 +10:00
Andrew Tridgell
46c6aa8a9a APM_Control: tweak the parameter names 2013-05-05 21:51:09 +10:00
Andrew Tridgell
9c6f80c42b Plane: moved some default values to Parameters.pde 2013-05-05 21:51:09 +10:00
Andrew Tridgell
6251d0510a Plane: obey pitch trim and throttle pitch feed forward in new controllers
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2013-05-05 21:51:09 +10:00
Andrew Tridgell
e87a6d5564 Plane: added links to new APM controller docs 2013-05-05 21:51:09 +10:00
Andrew Tridgell
400777b059 APM_Control: support inverted flight in AP_PitchController
auto-reverse pitch control when inverted. This is useful not just for
inverted flight mode, but also for recovering from poor manual flight

Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2013-05-05 21:51:09 +10:00
Andrew Tridgell
604bfd0700 APM_Control: adjust recommended ranges 2013-05-05 21:51:09 +10:00
Andrew Tridgell
11ad9d5a2d Plane: auto-invert pitch control when upside down
this helps to recover when flying inverted, for example when in manual
and hitting the lower altitude geofence
2013-05-05 21:51:09 +10:00
Andrew Tridgell
7af3c667a5 APM_Control: added roll controller parameter docs 2013-05-05 21:51:09 +10:00
Andrew Tridgell
52c3f8841f APM_Control: added yaw parameter docs 2013-05-05 21:51:09 +10:00
Andrew Tridgell
b618d1d81f APM_Control: added inline docs to pitch controller 2013-05-05 21:51:09 +10:00
Andrew Tridgell
6c6c0079ee APM_Control: improved formatting of tuning guide
be a bit more web friendly
2013-05-05 21:51:09 +10:00
Andrew Tridgell
742df0ac05 APM_Control: rename to avoid spaces in filenames 2013-05-05 21:51:09 +10:00
Andrew Tridgell
4e2b88f6e6 Plane: added ATT_CONTROLLER option to select attitude controller
set to 1 for the new APM_Control library
2013-05-05 21:51:09 +10:00
Andrew Tridgell
55f7d18979 Plane: avoid copying the DCM matrix 2013-05-05 21:51:09 +10:00
Andrew Tridgell
703a1ba438 Copter: avoid copying the DCM matrix 2013-05-05 21:51:09 +10:00
Andrew Tridgell
23d9c31b0a APM_Control: fixed build and merge errors 2013-05-05 21:51:08 +10:00
Paul Riseborough
10ecffce01 APM_Control: ROLL and PITCH controllers
These changes reduce height variation in turns and improve
robustness. the specific changes are:

1) Linked roll and pitch integrator protection to the final output
value so that if final output is on upper limit, the integrator is
prevented from increasing and vice-versa. This improves wind-up
protection.

2) Modified rate feedback in roll and pitch controllers to use body
rates rather than Euler or earth rates.

3) Changed the roll to pitch compensation to use measured roll angle
and estimated airspeed to calculate the component of turn rate
(assuming a level coordinated turn) around the pitch axis. This a
mathematically correct calculation and will work over a range of bank
angles and aircraft with minimal (if any) tuning required.

4) The integrator in the roll and pitch loop is clamped when the
estimated speed is below the minimum FBW speed

5) The noise filter in the pitch and roll loop has been changed to use
a FOH discretisation. This gives improved noise rejection and less
phase loss when compared to the previous filter that used a ZOH or
equivalent discretisation.

This has been flown on the rascal in the SITL and on a X-8 with
limited flight testing. Initial results have been encouraging with
reduced height variation in turns.  Compare to standard PIDS, the
revised pitch and roll controllers allow the use of rate feedback
(effectively the same as the old D term) without beating the servos to
death.  The bank angle compensation in the pitch loop works
effectively over a much larger range of bank angles and requires
minimal tuning compared to the old calculation.

YAW CONTROLLER

Currently testing the a 3-loop acceleration autopilot topology for the
yaw loop with feed forward yaw rate for turn compensation. This 3-loop
topology is commonly used in tactical skid to to turn missiles and is
easy to tune. The following block diagram shows the general signal
flow

Note that the acceleration measurement has to pass through an
integrator before it gets to the actuator. This is a important feature
as it eliminates problems of high frequency noise and potential
coupling with structural modes associated with direct feedback of
measured acceleration to actuator.

The high pass filter has been inserted to compensate for airspeed and
bank angle measurement errors which will cause steady state errors in
the calculation of the turn yaw rate.

The yaw controller flies SITL well, but hasn't been flight tested
yet. It can be configured either as a simple yaw damper, or the
acceleration and integral term can be turned on to allow feedback
control of lateral acceleration/sideslip.

TO DO:

Need to reduce number of tuning parameters and provide consistent
naming Need to provide guidance on tuning these loops with definitions
for all the gain terms.  Need to check signs and units into and out of
lateral loops.

DESIGN DECISIONS PENDING:

1) Can we remove the noise filters? Provided the mpu6k noise filter is
running they are of limited benefit given the 25Hz Nyquist frequency

2) If we do remove them and rely on the mpu6k noise filter, what is
the apprporiate default cutoff frequency for plane use. 20Hz is
probably OK for most setups, but some noisy/high vibration setups
would require as low as 10Hz

3) The inverted flight logic looks like a crash waiting to
happen. It's problematic to test and even if implemented correctly
would still crash a plane with poor inverted flight capability. We
should either implement it properly and fully tested or delete it.
2013-05-05 21:51:08 +10:00