1
0
Fork 0
mirror of https://github.com/iNavFlight/inav.git synced 2025-07-23 00:05:28 +03:00
Commit graph

83 commits

Author SHA1 Message Date
Martin Budden
944adb06f8 Minor changes to directory structure to reflect changes in Cleanflight and betaflight 2016-08-09 08:19:15 +01:00
Konstantin Sharlaimov
394a28824f Allow ANDing of multiple channel ranges in mode activation conditions (#364)
* Allow ANDing of multiple channel ranges in mode activation conditions (CLI: set and_mode_conditions=ON)
* Moved mode logic operator to Profile (modeActivationConditions are part of profile already); Created a lookup table for logic operator
* Closes #212
2016-07-25 15:06:31 +03:00
Konstantin Sharlaimov
67d6ba25ea Float-point RPY expo curves for better precision (#385) 2016-07-25 02:53:03 +03:00
Pawel Spychalski (DzikuVx)
0f19dcc70f rc_rate setting removed 2016-05-25 19:32:10 +02:00
Pawel Spychalski (DzikuVx)
7eb2419ef9 rc curves generation simplified 2016-05-25 19:32:10 +02:00
Pawel Spychalski (DzikuVx)
d534f99fb3 rates constrained to new min and max 2016-05-25 19:32:10 +02:00
Konstantin Sharlaimov (DigitalEntity)
43328c2fd2 PID: Fixed I-term low authority at low throttle. Fixes #157 2016-05-09 11:53:40 +10:00
Konstantin Sharlaimov (DigitalEntity)
f1aa9e6f44 PID: LuxFloat rewritten from scratch. New I-term back-tracking for anti-windup prevention
AIRMODE: Air mode anti-windup improvements

PID: Remove integer PID (leave only one PID controller), remove pid_controller setting, remove float-point PID parameters (scale integer parameters to use in float-point PIDC)

PID: New set of PID tuning multipliers for better tuning range

PID: Make max_angle_inclination a PID-profile variable

PID: Reinstate yaw_p_limit

PID: Switch to a noise-robust differentiator

Remove GTUNE

PID: Use same self-leveling strength for ANGLE and HORIZON

PID: Self-leveling LPF to smooth out leveling response to rapid attitude or target angle change
2016-04-07 18:44:03 +10:00
Konstantin Sharlaimov (DigitalEntity)
eba14b52b1 DISPLAY: Remove page cycling code 2016-03-23 21:41:15 +10:00
Konstantin Sharlaimov (DigitalEntity)
f026603d8b NAV: Fixed an option to compile out navigation while still having GPS for telemetry and OSD (home position, distance and bearing is calculated correctly) 2015-12-23 20:06:47 +10:00
Konstantin Sharlaimov (DigitalEntity)
be041c3642 Don't apply extra arming safety if no GPS-assisted modes are configured and failsafe is not set for RTH 2015-12-11 09:35:12 +10:00
Konstantin Sharlaimov (DigitalEntity)
fb647b181e Retarded arm cleanup. New option inav_gps_min_sats to control the min sat count to consider valid 2015-12-08 15:50:21 +10:00
Konstantin Sharlaimov (DigitalEntity)
93b89c189b Disable retarded arm (complete cleanup pending) 2015-12-07 21:50:12 +10:00
digitalentity
34046169c7 An implenentaion of nav-rewrite (squashed commit, November 17th).
Automatic magnetic declination from GPS coordinates (approximate to 1-2 degrees) (disabled)
Accelerometer bias compensation
Quaternion-based Mahony's DCM IMU (implementation by S. Madgwick)
Ability to lock heading to GPS cource for airplanes
Faster acquisition by initial attitude by using higher DCM kP gain on powerup
Changes to mag calibration algorithm (@HaukeRa's code). Compass calibration now independent from align_mag.
Changed acc calibration to proper 3-axis offset calculation code (same code as for mag). Changed board alignment angles to decidegrees (configurator incompatibility). Removed accelerometer trims (values passed thru MSP are ignored). Accel trim stick combo now adjusts board alignment directly (real-time, without reboot). Removed inflight acc calibration.
FIR filter implementation for different looptimes. Option gyro_cut_hz replaced with gyro_fir_enable (default gyro_soft_filter=3 preset - a very pessimistic filter with fairly large delay but low cutoff frequency for large or very noisy copters)
iNav-related PIDs renamed in CLI to avoid re-usage of old values when restoring config dumps.
PID with back-calculation and I-term anti-windup. Smarter max acceleration and jerk limiting
Initial support for airplane navigation. ALTHOLD, POSHOLD (circular loiter around the waypoint) and RTH should work. UNTESTED! RTH altitude probably needs some work. Autolanding will NOT function at the moment - the AUTOLAND phase will never complete. Absolutely no throttle control at the moment (fully manual control).
Increase delay for bmp085 baro detection. Resolves an issue with bmp085 not being detected sometimes on powerup
Fixed the missing checks for MIXER_CUSTOM_AIRPLANE
Lots of small fixes
2015-11-17 15:19:46 +10:00
Nicholas Sherlock
53860e461c Add resume event to allow clean log decoding, add documentation 2015-07-23 19:18:08 +12:00
Alexander Fedorov
01632998a3 Blackbox: Enable logging when mode switch is active 2015-07-22 13:36:22 +12:00
Dominic Clifton
5be2276b6b First cut of custom motor and servo mixer test.
Note: The test is rather heavyweight, more like an integration test than
a unit test, but will allow for the underlying code to be refactored.
2015-07-17 01:05:14 -07:00
Alexander Fedorov
00bff6485b Add logging of the inflight adjustment events to the blackbox 2015-06-23 15:20:22 +02:00
Michael Hope
920cac5253 various: re-work designated initialisers to work with G++
G++ supports a more limited version of designated initialisers.
Reorder fields to be in the right order.  Make nested initialisers
explicit.

Signed-off-by: Michael Hope <mlhx@google.com>
2015-06-04 22:34:27 +02:00
Dominic Clifton
e6733b4dfc Cleanup status indicator code.
This primarily is to avaoid stalling the main loop when beeping and
flashing.

This is needed because oneshot ESCs do not receive updates when the main
loop is stalled.

Additionally the beeper code for sticks held in disarm position is
changed since it also clashed with profile selection.  Now profile
selections can be seen and heard clearly.

Other subsections of the system that changed the LED0 state while the
main loop is running have been updated to use the status indicator API
instead of blindly hitting the hardware which previously caused lots of
odd LED flashing behaviour - now it is consistent.
2015-05-29 23:37:33 +01:00
Dominic Clifton
48570502cb Fixing missing pitch/roll rate inflight adjustment function
configuration settings.
2015-05-20 20:30:39 +01:00
Dominic Clifton
53eec05809 Avoid updating in-flight adjustments when not receiving rx data. 2015-05-19 20:44:01 +01:00
Dominic Clifton
c174a52ebe Allow independent pitch and roll in-flight PID adjustment. Fixes #149. 2015-05-17 23:43:55 +01:00
Dominic Clifton
3974b02b3a Remove BEEPER_CONFIRM_BEEP. Simplifies logic, reduces code size, and
ensures that the durations of one or more confirmation beeps can never
get out of sync when the code is changed.  Renamed queueConfirmationBeep
to beeperConfirmationBeeps - nothing was actually queued.
2015-04-25 10:53:07 +02:00
Dominic Clifton
519586a5ce Merge branch 'refactoredBeeperCode_181_1' of
git://github.com/ethomas997/cleanflight into
ethomas997-refactoredBeeperCode_181_1

Conflicts:
	src/main/flight/failsafe.c
	src/main/io/beeper.c
	src/main/mw.c
2015-04-23 01:21:27 +02:00
Dominic Clifton
c8c0c85656 First-cut of a refactored failsafe system.
* fixes issue where indicators would flash when SBus RX entered failsafe
mode.
* fixes bug where turning off a TX for an SBus RX would instantly disarm
when using a switch to arm when the channel went outside the arming
range.
* introduces failsafe phases to make the system more understandable.
* allows the system to ask if rxSignalIsBeing received for all RX
systems: PPM/PWM/SerialRX/MSP.  Also works when a serial data signal is
still being received but the data stream indicates a failsafe condition
- e.g.  SBus failsafe flags.
* failsafe settings are no-longer per-profile.

Untested: Sumd/Sumh/XBus/MSP (!)
Tested: SBus X8R, Lemon RX Sat, X8R in PWM, Spektrum PPM.
2015-04-16 01:31:12 +01:00
E Thomas
f02d7403af Port of refactored beeper code 181_1
This the "Port of refactored beeper code #669" modification applied to
version 1.8.1 (4/4/2015) of the code.
2015-04-04 17:54:44 -04:00
Nicholas Sherlock
828ec550cd Apply the same maximum control rates (1.0) in CLI and MSP
Previously it was possible to set roll/pitch rate > 1.0 using MSP, but
not using the CLI. Roll/pitch rate > 1.0 is meaningless.

TPA is also limited to 1.0.
2015-03-22 20:38:15 +13:00
Dominic Clifton
acabbf41db Previously, at minimum throttle, the quad would do absolutely no self-leveling
and simply run the motors at constant minthrottle.  This allowed the chance
for the quad to lose control during flight if the throttle was set to minimum,
say, to drop from a high altitude to a lower one.

With this edit, the quad will still self-level at minimum throttle when armed,
allowing for safe decents from altitude.  To prevent motors spinning when
arming/disarming, the yaw input is ignored if the throttle is at minimum and
we're using the sticks to arm/disarm.

Conflicts:
	src/main/flight/mixer.c
2015-03-09 23:44:53 +01:00
Dominic Clifton
5e3734946e # This is a combination of 2 commits.
# The first commit's message is:

Previously, at minimum throttle, the quad would do absolutely no self-leveling
and simply run the motors at constant minthrottle.  This allowed the chance
for the quad to lose control during flight if the throttle was set to minimum,
say, to drop from a high altitude to a lower one.

With this edit, the quad will still self-level at minimum throttle when armed,
allowing for safe decents from altitude.  To prevent motors spinning when
arming/disarming, the yaw input is ignored if the throttle is at minimum and
we're using the sticks to arm/disarm.

Conflicts:
	src/main/flight/mixer.c

# This is the 2nd commit message:

added cli command disable_pid_at_min_throttle
2015-03-09 23:36:54 +01:00
Dominic Clifton
e4a6886266 Allow independent in-flight adjustment of roll and pitch. 2015-03-07 15:14:52 +00:00
Dominic Clifton
b595b49ca8 Decouple roll and pitch rates. MSP clients take note of updated
MSP_RC_TUNING/MSP_SET_RC_TUNING commands.
2015-03-07 15:11:20 +00:00
Dominic Clifton
55d9994ff8 Reset adjustment states when switching profiles.
Fixes #544.
2015-02-26 13:58:03 +00:00
Dominic Clifton
f88bbf4676 Avoid usage of methods for targets that don't use the display. 2015-02-22 15:22:17 +00:00
Dominic Clifton
4a1b27443f Enable/Disable LCD page cycling using stick combos. 2015-02-22 14:01:38 +00:00
Dominic Clifton
55cac2bdeb Finally rename flight.c/.h to pid.c/.h. Cleanup some dependencies.
Relocate more code.
2015-02-01 00:39:38 +01:00
Dominic Clifton
53406a7ac7 Relocate some structures and code to the right places.
This cleans up the include file order somewhat and fixes a couple of
dependencies.

The goal of this is to rename flight.c/flight.h to pid.c/pid.h.
2015-01-31 23:47:51 +01:00
Dominic Clifton
d21a009d40 Change scale for I and D for inflight adjustments to PIDs of FP based
PID.
2015-01-30 22:09:36 +01:00
Dominic Clifton
2ac7282314 Use different scale for inflight adjustments to PIDs of FP based PID
controllers.
2015-01-30 21:46:23 +01:00
Dominic Clifton
ea386e6da2 Remove magic number usage. Fix limits for FP based pid controller PID
adjustments to match those in serial_cli.c.
2015-01-30 21:27:09 +01:00
Dominic Clifton
f77a762b48 Allow inflight adjustments for floating-point based PID controllers. 2015-01-30 20:54:34 +01:00
Pierre Hugo
be03ed95fa Renamed min, max and abs macros to MIN MAX and ABS. 2015-01-23 22:40:00 -08:00
Dominic Clifton
b64c71264c Renaming getRcStickPosition to getRcStickDeflection and moving to
rc_controls.c.
2015-01-16 01:00:40 +00:00
Dominic Clifton
347b156727 Avoid calling mwDisarm() when due to having auto_disarm_delay when using
switch to arm().
2014-12-26 20:22:13 +00:00
Dominic Clifton
c0dbde0318 Fix unable to arm using after setting mode range for arm and being able
to arm using sticks after removing all mode ranges for arm.
2014-12-26 20:04:17 +00:00
Dominic Clifton
183c5f8e16 Add MPU9150 mag support and mag autodetection. Add AK8975 mag driver.
Note: not working on the sparky, MPU9150 needs passthough enabling but
when enabled the mag and gyro won't ack on the default addresses.  Needs
further investigation.
2014-12-21 23:40:48 +00:00
Dominic Clifton
705e64d91e Fix continuous beeping when rate profile selection is used. 2014-12-20 09:58:41 +00:00
Dominic Clifton
367eb79bd0 Add battery warning beeper. Update MSP_MISC/MSP_SET_MISC.
Note the old beeper was essentially 'battery critical'.
2014-12-19 22:16:47 +00:00
Dominic Clifton
28f9fa629c Add rate profiles and inflight switching between them. See Profiles and
Inflight Adjustment documentation for details.
2014-10-29 23:36:34 +00:00
Dominic Clifton
cac814923c Update RC Controls so that functions with different modes can be
applied.  The existing modes are 'step'.  A new mode is 'select'.

The other unit tests need fixing up so that appropriate code is compiled
as C and not C++ code.
2014-10-29 20:52:44 +00:00