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

317 commits

Author SHA1 Message Date
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)
8472a31f83 Merge remote-tracking branch 'origin/gps-remove-svinfo'
Post-merge fixups - lost some commits from gps-remove-svinfo branch
2016-04-03 22:11:33 +10:00
Konstantin Sharlaimov (DigitalEntity)
c180856b4f BARO: Remove averaging and extra LPF filtering. Changed defaults for sensor fusion for INAV 2016-03-29 11:13:15 +10:00
Konstantin Sharlaimov (DigitalEntity)
9a36b1ef45 NAV: Use Throttle expo curve midpoint as hover point for multicopters 2016-03-27 21:14:11 +10:00
Pawel
d48a4166e5 Status page added
only status page left in cycle

fixed screen flicker when page was not changed

cleanup and bugfixes to status page and cycling mechanism
2016-03-23 20:09:20 +10:00
Konstantin Sharlaimov (DigitalEntity)
0d041950e8 BEEPER: Bugfix for cliPrintf 2016-03-18 11:39:01 +10:00
Pierre-A
7208561d68 new "beeper" CLI command
beeperCount in beeperOffSetAll for config_unittest

including suggestions by ledvinap

add BEEPER_SYSTEM_INIT condition
2016-03-18 11:25:30 +10:00
Konstantin Sharlaimov (DigitalEntity)
ddc75033ef Merge branch 'scheduler-queue' 2016-03-18 10:50:00 +10:00
Michael Hope
a7e2e2c7b2 serial: add writeBuf() and implement for USB.
This lets USB send up to 32 bytes in a frame instead of 32 one byte
frames.  Add a fallback for drivers that don't implement writeBuf().

serial: allow buffering to speed up USB virtual COM ports.

Add begin write and end write hints.  If implemented by the serial
driver, then the driver can buffer up data sent via serialWrite() and
flush it when serialEndWrite() is called.

Implemented at the buffer level as it requires the least change to how
serial_msp and serial_cli are architected.

Also tidy up the visibility in the VCP driver.

Prevent serial tx buffer overflow.

Note: this is likely not the best solution, we can investigate further
in due course.

drivers: add a buffering writer.

This wraps around the serial API and buffers a configurable number of
characters before flushing.

cli: add buffering.

This greatly speeds up the CLI when running over USB VCP under a
virtual machine.

msp: add buffering around the writes.

This bulks up the writes and lets the USB VCP driver send one 20 byte
frame instead of 20 one byte frames.  This speeds up the blackbox
download and makes VCP much more reliable when running under a virtual
machine.

Fix for: serial buffer broke BLHeli 1wire pass through
2016-03-18 10:40:58 +10:00
Martin Budden
3a6a27e4bd Improved formatting of tasks statistics in CLI. 2016-03-17 15:55:04 +10:00
Konstantin Sharlaimov (DigitalEntity)
324711ddda SCHEDULER: Move scheduler code to a separate directory 2016-03-17 15:55:04 +10:00
Konstantin (DigitalEntity) Sharlaimov
d3f2df499d FW: Increase default banking angle to 30 deg, add 'nav_fw_loiter_radius' parameter (cm) to control the radius of a circle in PH/RTH modes 2016-03-08 20:36:19 +02:00
Konstantin (DigitalEntity) Sharlaimov
a8cc9a6be8 ALTHOLD: Remove use_midrc_for_althold. Now throttle center is always assumed as 'hover' 2016-03-05 21:00:29 +02:00
Konstantin Sharlaimov (DigitalEntity)
11cc82cf41 FILTER: Replace FIR by BiQuad by @borisbstyle. First implementation. Kept PT1 filter as it's used in navigation
FILTER: BiQuad filter optimisations

FILTER: BiQuad filtering fix for REWRITE PID controller. Divide delta by dT before filtering to reduce delta noise caused by dT jitter and make things more correct from DSP point of view
2016-02-17 22:39:07 +10:00
Konstantin Sharlaimov (DigitalEntity)
e70999b7f9 SPARKY: Fixed compilation bug 2016-01-22 23:24:55 +10:00
Konstantin Sharlaimov (DigitalEntity)
27c769888d INAV: Option to disable usage of GPS VelNED information; GPS: Disable GPS version detection - some NEO-7Ms seem to lack support of the PVT message 2016-01-22 23:24:54 +10:00
Konstantin Sharlaimov (DigitalEntity)
7c1680ff34 GPS: Configurable LOW_G (pedestrian) and HIGH_G (airborne>4g) GPS navigation model for Ublox. For NEO-6 this should do autoconfig in roughly the same way as original Cleanflight does 2016-01-22 23:24:54 +10:00
Konstantin Sharlaimov (DigitalEntity)
28672eb0c6 GPS: UBLOX version auto-detection and PVT message support from @Sambas. Some code refactoring. NAZA GPS support. 2016-01-22 23:24:44 +10:00
Konstantin Sharlaimov (DigitalEntity)
69cfbb04d2 GPS: Protocol-independent stack. UBLOX binary driver implementation. Autoconfig works. Autobaud works.
GPS: Native MAG support (for future NAZA GPS support), bugfixes

GPS: Supported GPS protocols on a per-target basis
2016-01-22 23:24:42 +10:00
Konstantin Sharlaimov (DigitalEntity)
491d71fe32 CLI: Fix nav PIDs max values 2016-01-13 12:23:37 +10:00
Konstantin Sharlaimov (DigitalEntity)
c81be6e687 Cooperative task scheduler
Improved scheduling. Calculation of average tasks waiting. MSP_STATUS_EX message

Disallow arming if system load > 100 (waiting task count > 1)

Dont show inactive tasks in CLI

Realtime priority task and guard interval implementation

Dynamic guard interval. Bugfix for realtime scheduling hickups

Compile out CLI command help and CLI tasks command for CJMCU

Gyro sync busy-waiting implementation. Kudos to @borisbstyle for initial implementation
2015-12-30 23:21:56 +10:00
Konstantin Sharlaimov (DigitalEntity)
dc3e84ea5b Merge branch 'master' into inav-dev
Conflicts:
	Makefile
	src/main/common/filter.c
	src/main/common/filter.h
	src/main/config/config.c
	src/main/config/config_master.h
	src/main/config/config_profile.h
	src/main/drivers/sonar_hcsr04.c
	src/main/flight/altitudehold.c
	src/main/flight/failsafe.c
	src/main/flight/failsafe.h
	src/main/flight/imu.c
	src/main/flight/imu.h
	src/main/flight/navigation.c
	src/main/flight/pid.c
	src/main/flight/pid.h
	src/main/io/rc_controls.c
	src/main/io/serial.c
	src/main/io/serial.h
	src/main/io/serial_cli.c
	src/main/mw.c
	src/main/sensors/sonar.c
	src/main/sensors/sonar.h
	src/main/target/NAZE/target.h
	src/main/telemetry/ltm.c
	src/test/Makefile
	src/test/unit/flight_imu_unittest.cc
	src/test/unit/navigation_unittest.cc
2015-12-23 14:19:33 +10:00
Dominic Clifton
79144e9689 Merge pull request #1498 from borisbstyle/gyro_sync_rework
Gyro Sync feature (Loop synced to Gyro)
2015-12-22 09:40:09 +01:00
Konstantin Sharlaimov (DigitalEntity)
e321526a3f NAV: Configurable position sensor timeout. Ability to disable emergency landing 2015-12-21 23:24:48 +10:00
borisbstyle
10a96b0dfc Gyro Sync feature (Loop synced to Gyro)
Remove double MPU_RA_PWR_MGMT_1

Looptime to Gyro refresh rate

disable 2khz when acc used for F3

Gyro sync code improvement

doc change

MPU6500 INT_STATUS support // MPU3500 dummy handling

Enable full 1khz sampling on F1 boards (no acc mode)

Add MPU3050 INT_STATUS

F1 target decreased max refresh

Configurable optione (sync_gyro_to_loop)

correction watchdog

correct filter

Coding style and cleanup code

Cli.md

Bump EEPROM version

MPU6050 MPU DATA READY Pin instead of i2c

Add more targets and corrections

correction to CC3D

ident

MPU6500 correction

INT_ENABLE MPU6500

add interrupt mpu6500

MPU6500 corrections from rebase

MPU6500 correct

Final fix to compile // ready for testing and review

MPU6000 / MPU3050 Corrections

Add CC3D extiConfig

add mpu6500

Fix intStatus position

fix returns

Add COLIBRI_RACE MPU INT

Change CLI name to gyro_sync

This is shorter typing and speaks for itself

Fix MotoLab After rebase

Add motolab

Full gyro Sync rework

Idents etc

Doc update

more corrections

Fix serial_cli

refactor // ident

GPL

single line

runloop refactor
2015-12-18 15:11:35 +01:00
Martin Budden
dfe8b5640b Fixed code so that it builds whether or not USE_SERVOS is defined. 2015-12-18 10:39:50 +01:00
Dominic Clifton
6926c2057f Merge pull request #1592 from digitalentity/flysky-ibus-receiver
FlySky i-Bus receiver CLI bug fixed
2015-12-18 10:09:08 +01:00
Dominic Clifton
14ade88ca9 Merge branch '1wire_pass_through_optimize' of https://github.com/4712/cleanflight into 4712-1wire_pass_through_optimize 2015-12-18 09:51:12 +01:00
Konstantin Sharlaimov (DigitalEntity)
e7a180816b FlySky i-Bus receiver CLI bug fixed 2015-12-18 09:00:17 +10:00
borisbstyle
995f40c2f4 Gyro Soft LPF Rework // Filter rework
remove 3 point average

lux optimize
2015-12-16 01:25:09 +01:00
Konstantin Sharlaimov (DigitalEntity)
6ed460e96c A fix for airplane loiter (works at least with RTH). Disabled RTH landing sequence for airplanes 2015-12-15 21:14:19 +10:00
Dominic Clifton
faf8f5deba Merge pull request #1568 from ProDrone/failsafe_tab_support
Failsafe - added support for failsafe tab in configurator
2015-12-14 21:41:49 +01:00
ProDrone
0a40d9a787 Added support for failsafe tab in configurator
- Added DROP failsafe mode to failsafe handler

- Added MSP support for configurator failsafe tab
Modified MSP_FAILSAFE_CONFIG
Modified MSP_SET_FAILSAFE_CONFIG
Bumped API minor version

- Adapted failsafe documentation - 1

- Force auto mode to flight-channels when failsafe stage 2 is disabled
This is to prevent a configuration that may cause a fly-away.

- AUX switch was active in background with `FEATURE_FAILSAFE` disabled.
When a switch was assigned to failsafe mode and the failsafe feature was disabled, then hat switch stayed active in the background, forcing `rxfail` values to be used when on.
2015-12-13 17:11:06 +01:00
Konstantin Sharlaimov (DigitalEntity)
0121d81da9 HIL now outputs rcCommand for multicopters and selects between rcCommand and axisPID for airplanes 2015-12-12 00:00:44 +10:00
Konstantin Sharlaimov (DigitalEntity)
5c045ba898 Configurable descent speed for RTH landing and EMERG landing 2015-12-11 16:27:41 +10:00
Konstantin Sharlaimov (DigitalEntity)
b8ea813a6c Fake baro, fake mag, fake GPS for debugging on the bench on acro board 2015-12-09 16:04:37 +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
Konstantin Sharlaimov (DigitalEntity)
9d023cabb0 Fixed soft filter CLI lookup table 2015-12-06 12:36:35 +10:00
borisbstyle
a2fbf56493 IDLE UP switch // Remove pid_at_min_throttle 2015-12-05 18:57:51 +10:00
Konstantin Sharlaimov (DigitalEntity)
dfc2fcc722 Soft filtering CLI varibale lookup table added 2015-12-05 18:52:56 +10:00
Konstantin Sharlaimov (DigitalEntity)
a110665af1 Renamed some CLI variables for consistency. New names: nav_pos_hold_deadband, nav_alt_hold_deadband, nav_mc_min_fly_thr 2015-12-05 11:17:24 +10:00
Konstantin Sharlaimov (DigitalEntity)
660b8ce181 Fixed bug with mc_min_fly_throttle actually setting hover throttle 2015-12-05 10:30:12 +10:00
Konstantin Sharlaimov (DigitalEntity)
5052d5cd1c Configurable maximum banking angle for MC poshold controller. Min flyable throttle parameter for landing detection 2015-12-03 12:50:09 +10:00
Konstantin Sharlaimov (DigitalEntity)
8130be4772 Fixes and optimisations to FSM. Smoother transition from PH to RTH. Option to execute RTH tail first 2015-12-02 23:21:15 +10:00
Konstantin Sharlaimov (DigitalEntity)
cf8cab53f4 Remove MultiWii23 PID controller. Better LEVEL defaults for MultiWiiRewrite 2015-12-02 23:21:14 +10:00
Konstantin Sharlaimov (DigitalEntity)
069994bd92 Quaternion-based Mahony's DCM IMU (implementation by S. Madgwick)
Mag declination correction. Some cleanups
    DCM code changes from @MauroMombelli, allow gyro-only operation when neither ACC nor MAG can be used (i.e. no MAG and ACC is saturated.
    Replaced 'inclination' and 'heading' with 'attitude', converted all angles to decidegrees
    Prevent magnetometer readings from affecting roll/pitch angles. Compass now affects only yaw axis and magnetic interference won't mess up attitude calculations
    Ability to lock heading to GPS cource for airplanes
    Allow faster acquisition by initial attitude by using higher DCM kP gain on powerup
    Optimize magnetometer correction per @ledvinap suggestion. Better speed and less memory usage
    Prevent acceleration from affecting accSmooth if acceleration magnitude is too high
    Fixed incorrect GPS heading lock
2015-12-02 23:06:03 +10:00
Konstantin Sharlaimov (DigitalEntity)
5ef05268de Waypoint code rework. Upload/download mission works. Waypoint actions RTH and WAYPOINT are supported (untested) 2015-12-01 17:02:58 +10:00
4712
57efb91d59 Changed disable beeper method.
Fix indentation level to 4.
Removed CLI support for 1wire pass through
2015-11-30 15:36:23 +01:00
Dominic Clifton
0c82a7b927 Fix invalid values in cli error messages. Use 0 based index for 1wire,
now it is consistent with mmix.  Replace typo in 1wire error message
with standard cli parse error message.
2015-11-28 14:35:20 +00:00