Commit Graph

3447 Commits

Author SHA1 Message Date
Andrew Tridgell 78babd37fa APM: use set_and_save_ifchanged() for GCS stream rates
this avoids a lot of EEPROM scan operations when the groundstation
updates the stream rates
2012-02-18 10:51:57 +11:00
Andrew Tridgell 4b15b63d21 AP_Param: fixed copy-assignment operators for AP_Param vectors 2012-02-18 10:51:57 +11:00
Andrew Tridgell 7f3858cb7f AP_Param: added a set_and_save_ifchanged() method
this can be used to avoid the scan() in more frequenctly saved
variables, such as the MAVLink stream rates in APM
2012-02-18 10:51:57 +11:00
Andrew Tridgell 80a6773b8b AP_Param: added an initialised() method
this will be used by the compass code
2012-02-18 10:51:57 +11:00
Jason Short b532cb91b1 added Rate_D tuning value 2012-02-17 15:23:59 -08:00
Jason Short 0075901f77 upped rate loop to 250hz 2012-02-17 15:23:59 -08:00
justinbeech 62b104cbfa Found free extra 256 bytes of RAM eliminate _clz use from libgcc
Believe it or not, changing / 2^31 to >>31 saved 256 bytes in the "d" segment.

The reason is that GCC version prior to 4.3.5 does not have a count_leading_zeros (clz) assembler macro, so it uses a 256 byte lookup table called _clz
The _clz table gets pulled in if you do 64 bit division.
This tiny change is the only place that we do long long division.
Changing to a shift saves 256 bytes of ram.
2012-02-17 09:46:05 +00:00
Michael Oborne e2c15008c2 APM Planner 1.1.37
fix misc errors
update polish
fix linux/mac bug. - seems alot more stable
2012-02-17 17:09:27 +08:00
Jason Short 5218220f0f re-implemented WII Dampening filter for Marco. 2012-02-16 22:38:23 -08:00
Jason Short b052dab80d Adjusted gains to move closer to Marco's tests 2012-02-16 22:19:39 -08:00
Jason Short 24ce02c6a4 made I term return in same pattern as D term 2012-02-16 22:09:22 -08:00
Jason Short 17c6c7b294 added extra gain logging 2012-02-16 22:09:22 -08:00
Jason Short 908ca4e915 scaled X velocity 2012-02-16 22:09:22 -08:00
Jason Short bc1593e89c cast to float 2012-02-16 22:09:21 -08:00
Jason Short 632cc783a1 cast D term to float just in case 2012-02-16 22:09:21 -08:00
Jason Short 36a120d8df removed some unused vars,
formatting, made loop speed same as PIDT1 to eliminate variable.
2012-02-16 22:09:21 -08:00
Andrew Tridgell 79d622939a ADC: on channel overflow we should not zero last_ch6_micros
this happens every 64 seconds because of unused channels on the
ADC. Zeroing this creates a bad delta_t value for the DCM code.
2012-02-16 17:48:36 +11:00
Phil 9242c157ee APM: Fix rudder in elevon mode.
elevon planes can have rudders too
2012-02-16 14:43:24 +11:00
Jason Short a43ee36bee CH 6 Range setup 2012-02-15 11:47:54 -08:00
Jason Short 3d63bb6cd4 Added acro_p to the params 2012-02-15 11:29:25 -08:00
Jason Short e8b6f5ecee allow auto-land if failsafe is triggered 2012-02-15 10:53:54 -08:00
Jason Short fabeccad4a Marco's updated Motor testing code 2012-02-15 10:49:35 -08:00
Jason Short 73591a0ca5 Added lengthy note about motor testing 2012-02-15 10:49:11 -08:00
Jason Short 9a3e862b55 added option in code for Loiter specific gains 2012-02-15 09:10:15 -08:00
Jason Short e249c8466d AP slew rate 2012-02-15 09:10:15 -08:00
Jason Short 21856e7696 new defaults for params 2012-02-15 09:10:15 -08:00
Jason Short fcb24ee17d Added Acro_P 2012-02-15 09:10:14 -08:00
Jason Short 574b86b02e synced params 2012-02-15 09:10:14 -08:00
Jason Short 91edeeeef2 added RTL_land_enabled
added auto_pilot slew rate
2012-02-15 09:10:14 -08:00
Jason Short aa0662008b Added new params for CH6 Tuning
moved enums to give more room for additional PIDs for Loiter
added new Acro_P gain
added auto_land_enabled option
added pi_loiter_lon and pi_loiter_lat for separate tuning of loiter
2012-02-15 09:10:14 -08:00
Jason Short 05abe44f32 Added range setting via a parameter for CH6 tuning 2012-02-15 09:10:14 -08:00
Jason Short 026e4a6567 change constant to float 44330.0 2012-02-15 09:10:14 -08:00
Michael Oborne 2f81776b0d eedump ap param in perl 2012-02-15 21:31:58 +08:00
Andrew Tridgell a48a118128 SITL: adjust the SITL compass code to have saner z values 2012-02-15 22:34:16 +11:00
Andrew Tridgell 62326c0f72 Compass: enable compass offsets for HIL compass
this makes the null_offsets algorithm have an effect for the HIL
compass that is used for SITL, which makes for easier testing of
compass calibration
2012-02-15 22:33:50 +11:00
Andrew Tridgell 048aed5427 fixed dump size 2012-02-15 10:44:09 +11:00
Andrew Tridgell 089db43183 show group_element too 2012-02-15 10:42:21 +11:00
Andrew Tridgell ea6a46fc9b AP_Param: added eeprom_aaparam.c dump utility 2012-02-15 10:41:06 +11:00
Andrew Tridgell c14097ffa1 APM: changed hold_course for landing to be based on yaw_sensor
when we are in the final stages of a landing (less than 2 seconds from
landing waypoint, or less than 3m above landing altitude) we switch
the navigation to use a fixed course. The code previously used the
crosstrack_bearing for this, but this can lead to a large nav_roll in
this final stage of the approach, which can put a wing into the
runway. In autotest we were seeing a nav_roll value of -45 degrees as
we crossed the transition point for the landing, which often led to a
crash.

This changes the code to use the current yaw_sensor value instead,
which is much less likely to lead to large rolls in the final landing
stages.
2012-02-15 08:50:45 +11:00
Andrew Tridgell c662140a2b APM: report the nav_bearing as hold_course when enabled
this gives a more accurate view of the navigation code, as when
hold_course is not -1 it overrides nav_bearing
2012-02-15 08:50:45 +11:00
Andrew Tridgell 330ff5dc8b APM: added some comments related to hold_course
hold_course is either -1 (for disabled) or a course to hold for
takeoff/landing. This makes the code a bit clearer.

It also resets hold_course in all non-auto modes, to ensure it isn't
used
2012-02-15 08:50:45 +11:00
Andrew Tridgell 3e7cc2499b autotest: increase the rudder gain
this gives a bit better landing approach and turns in auto
2012-02-15 08:50:45 +11:00
Andrew Tridgell 4398171374 SITL: catch floating point errors
if we get a FPE then log a message and exit
2012-02-15 08:50:45 +11:00
Andrew Tridgell 245d265c6a DCM: added a SITL_debug() for DCM normalisation errors
I have seen normalisation errors during simulation runs, but have not
yet tracked down the cause. This log message may help track things
down.
2012-02-15 08:50:45 +11:00
Andrew Tridgell 601a991a46 added SITL_debug() macro
this can be used to print a message into the logs in the SITL
simulator. This will be used for critical conditions.
2012-02-15 08:50:45 +11:00
Andrew Tridgell 085cc00c33 RC_Channel_aux: fixed a uninitialied variable error, and save a bit of stack space 2012-02-15 08:50:45 +11:00
Michael Oborne 4b9c08d075 APM Planner 1.1.36
add guided mode wp
fix setup setting save (if closed without switching tabs)
2012-02-14 22:13:11 +08:00
Andrew Tridgell 11835508a7 when setting airspeed and groundspeed in a mission, don't save to EEPROM
If you include airspeed, throttle or groundspeed changes in a mission
then those should not be saved to EEPROM, as otherwise if you restart
and re-fly the mission you will be starting with different parameters
to the ones you used for the first flight.

This is particularly important for setting the target airspeed when
coming in for a landing. You typically set a low target, but if you
fly again the next day I think it would be a real surprise to find
that your loiter airspeed has then changed to the value from the
landing part of your last mission.

This one can be argued either way, but I think that not saving these
changes is the more conservative choice, and better fits the
'principal of least surprise'
2012-02-14 15:20:44 +11:00
Andrew Tridgell 090068bee4 autotest: use more rudder for steering
this helps the landing a lot
2012-02-14 15:16:35 +11:00
Andrew Tridgell 1e7d3f5d48 autotest: raise the target airspeed on landing
we were stalling the plane in the final meters of the approach
2012-02-14 12:30:46 +11:00