Commit Graph

57412 Commits

Author SHA1 Message Date
Andrew Tridgell
2ab583d80b AP_InertialSensor: fix for ICM42688 stuck gyro issue
these undocumented bits in register 0x4d control the "adaptive full
scale range" mode of the ICM42688. The feature is enabled by default
but has a bug where it gives "stuck" gyro values for short periods
(between 1ms and 2ms):, leading to a significant gyro bias at longer
time scales, enough to in some cases cause a vehicle to crash if it is
unable to switch to an alternative IMU

this fixes https://github.com/ArduPilot/ardupilot/issues/25025
2023-11-07 11:17:04 +11:00
Andrew Tridgell
0bbea732a0 Filter: protect against extremely low notch filter frequencies
an incorrectly configured ESC telemetry source can lead to a notch
running at very low frequencies. A simple example is a lua script like
this:

function update()
   esc_telem:update_rpm(12, 0, 0)
   return update, 10
end
return update()

where motor 12 is unused.

with that script in place we get a 1.0078 Hz filter which leads to
massive phase lag and a crashed aircraft

this is a safety protection. We should also try to find out why the
INS_HNTCH_FREQ lower limit is not working
2023-11-07 11:17:04 +11:00
Andrew Tridgell
def89ea600 Plane: prepare for 4.4.2 release 2023-10-23 07:36:44 +11:00
Andrew Tridgell
f56ce445b1 Plane: update release notes for 4.4.2 2023-10-23 07:36:34 +11:00
Randy Mackay
f307f3c26f Plane: version to 4.4.2-beta1 2023-10-13 16:40:51 +11:00
Randy Mackay
810b1e300d Plane: 4.4.2-beta1 release notes 2023-10-13 16:40:51 +11:00
Andrew Tridgell
8aa0efb962 Plane: use deadzone in stick mixing
this prevents small RC input deviations from impacting non-pilot
controlled modes via stick mixing
2023-10-13 16:40:51 +11:00
Andrew Tridgell
dadffef92c AP_GPS: allow GPS moving baseline rover at 3Hz
users with busy CAN bus often get significiantly lower GPS rates on a
moving baseline rover, preventing arming. This PR relaxes the required
frame rate as the EKF is quite happy with 3Hz yaw and the yaw is the
only data consumed from a moving baseline rover
2023-10-13 16:40:51 +11:00
Andrew Tridgell
cf6fe59a7a AP_Logger: added build directory to VER message
this allows log review tools to use right parameter and mode map when vendor has changed the
vehicle type strings
2023-10-13 16:40:51 +11:00
Andrew Tridgell
38b1c526b4 Tools: rebuild IO firmware for SBUS change 2023-10-13 16:40:51 +11:00
Andrew Tridgell
65ef005ea5 AP_RCProtocol: protect against invalid data in SBUS 2023-10-13 16:40:51 +11:00
Andrew Tridgell
5384ab3b3b Plane: fixed terrain RTL with rally points
this fixes a bug where if the terrain database cache does not have the
tile for the location of a rally point then RTL to the rally point
with TERRAIN_FOLLOW=1 will not track terrain

The underlying issue is that Location::loc.change_alt_frame() will
return false if the location is not in the terrain memory cache. We
can't just extrapolate as the rally point could be in a totally
different terrain area to the current location. So instead we set it
as terrain_following_pending and fix it as soon as the terrain cache
is filled.

fixes https://github.com/ArduPilot/ardupilot/issues/25157
2023-10-13 16:40:51 +11:00
Andrew Tridgell
ddfa4c0ed7 AP_OpenDroneID: only load from persistent memory in init()
we do not want to do this from update() as it is an expensive call
2023-10-13 16:40:51 +11:00
Randy Mackay
993ca4665d Copter: version to 4.4.2-beta1 2023-10-13 16:40:51 +11:00
Randy Mackay
47c367da92 Copter: 4.4.2-beta1 release notes 2023-10-13 16:40:51 +11:00
Randy Mackay
cf0dc14e31 Rover: version to 4.4.0-beta8 2023-10-13 16:40:51 +11:00
Randy Mackay
a4ba1c7ec1 Rover: 4.4.0-beta8 release notes 2023-10-13 16:40:51 +11:00
Henry Wurzburg
f1cc021b1c AP_OSD:Update/correct DisplayPort BF MSP symbols 2023-10-13 16:40:51 +11:00
Henry Wurzburg
f2d9e3aa5b AP_OSD:add option to convert home,wind,waypoint and gndspd arrows for BF font set 2023-10-13 16:40:51 +11:00
Andrew Tridgell
1280e469f1 AP_BattMonitor: added SHUNT parameter to INS2xx driver
some vendors want different shunt resistors
2023-10-13 16:40:51 +11:00
Andrew Tridgell
0b7552e6f8 Tools: allow Ohm units in parameters
# Conflicts:
#	Tools/autotest/param_metadata/param.py
#	libraries/AP_BattMonitor/AP_BattMonitor_INA2xx.cpp
2023-10-13 16:40:51 +11:00
Andrew Tridgell
799ccb32e2 AP_InertialSensor: fixed the error value for BMI088
the bad value is -32768 not 0xffff (which is -1)

-32768 badly corrupts the low-pass filter, and is what we see in logs
(a large negative spike on all 3 axes)

update to bug fix from:
https://github.com/ArduPilot/ardupilot/pull/23033
2023-10-13 16:40:51 +11:00
alexklimaj
26b6a1b7b8 hwdef: arkv6x default to no IO MCU 2023-10-13 16:40:51 +11:00
Henry Wurzburg
3a5b99f0d4 hwdef:add VTX power control to SpeedyBeeF405-Wing 2023-10-13 16:40:51 +11:00
Peter Barker
6a17a605d4 AP_TECS: ensure good TECS state before running update_pitch_throttle
update_pitch_throttle can be called when update_50hz hasn't run in a very long time, or ever.  This requires a main loop rate >50Hz, and for the mode change to occur in the same loop that update_50Hz doesn't run but update_pitch_throttle does.
2023-10-13 16:40:51 +11:00
Andrew Tridgell
bfc9b6e389 AP_TECS: fixed descent or lack of climb bug
this fixes a state where we either cannot climb or descend in an
uncontrolled manner in a TECS controlled mode

the conditions under which this happened were:

- _use_synthetic_airspeed_once was true due to quadplane takeoff
- we left _thr_clip_status as MAX from previous use of synthetic airspeed
- then run without airspeed

note that this can also impact users with an airspeed sensor if they
disable it or it fails in flight, particularly during a climb
2023-10-13 16:40:51 +11:00
Peter Barker
9b44444a28 autotest: CI fixes for 4.4 2023-10-13 16:40:51 +11:00
Peter Barker
fcd00f65e9 SITL: fix balancebot yaw reset to be kinimatically consistent
... or at least closer to it.

We were hard-resetting the yaw to zero when the vehicle was upright.  That makes for huge simulated gyro rates, and that means the differences between the gyros can be huge sample-to-sample, so we can get gyros-inconsistent errors.

Fix things so we don't reset yaw at the same time as pitch, and also twist the vehicle to point North again when disarmed.
Backport of PR https://github.com/ArduPilot/ardupilot/pull/25046
2023-10-13 16:40:51 +11:00
Peter Barker
2b211dcfaf SITL: reset balancebot to vertical in a kinmetically consistent manner
The hard-reset of all state variables means we feed the EKF inconsistent gyro data.  Attempt to upright the vehicle with a simple p-gain when it is disarmed, as if someone is pushing the thing back upright
Backport of PR https://github.com/ArduPilot/ardupilot/pull/24314
2023-10-13 16:40:51 +11:00
Peter Barker
99491d2436 autotest: give Rover longer to arrive home
vagaries of interaction with Python script means we need to give this more time when running balancebot
Backport of PR https://github.com/ArduPilot/ardupilot/pull/23442
2023-10-13 16:40:51 +11:00
Tom Pittenger
a98678a0f9 Tools/autotest: fix Deepstall CI
Backport from PR https://github.com/ArduPilot/ardupilot/pull/24667
2023-10-13 16:40:51 +11:00
Peter Barker
4f44760912 autotest: allow more time for deepstall text
intermittent failures in CI - perhaps due to Plane dynamics changes
Backport of PR https://github.com/ArduPilot/ardupilot/pull/23524
2023-10-13 16:40:51 +11:00
Peter Barker
c37557736c autotest: add an epsilon for achieved servo output for speed scaling test
right on the threshold
backport from PR https://github.com/ArduPilot/ardupilot/pull/23823
2023-10-13 16:40:51 +11:00
Peter Barker
c2f384ec48 autotest: remove unnecessary try/except from Sprayer test
backport from https://github.com/ArduPilot/ardupilot/pull/23823
2023-10-13 16:40:51 +11:00
Tom Pittenger
c6c4a3d355 Tools/autotest: extend WindEstimates duration
backport from PR https://github.com/ArduPilot/ardupilot/pull/24666
2023-10-13 16:40:51 +11:00
bugobliterator
f95e16bca6 AP_OpenDroneID: ensure Persistent memory is not read continuously 2023-10-13 16:40:51 +11:00
bugobliterator
54db689b0f GCS_MAVLink: move sysid_my_gcs to be public 2023-10-13 16:40:51 +11:00
bugobliterator
47908cb185 AP_Periph: move sysid_my_gcs to be public 2023-10-13 16:40:51 +11:00
bugobliterator
e36ab2e51b Blimp: move sysid_my_gcs to be public 2023-10-13 16:40:51 +11:00
bugobliterator
88f4e4e33f ArduSub: move sysid_my_gcs to be public 2023-10-13 16:40:51 +11:00
bugobliterator
72809eea03 ArduPlane: move sysid_my_gcs to be public 2023-10-13 16:40:51 +11:00
bugobliterator
f5568d7ce5 ArduCopter: move sysid_my_gcs to be public 2023-10-13 16:40:51 +11:00
bugobliterator
962c2c35cf AntennaTracker: move sysid_my_gcs to be public 2023-10-13 16:40:51 +11:00
bugobliterator
bfbae2d8e6 AP_HAL_ChibiOS: remove Chip ID as Basic ID mechanism 2023-10-13 16:40:51 +11:00
bugobliterator
371ebe8afc AP_OpenDroneID: remove Chip ID as Basic ID mechanism 2023-10-13 16:40:51 +11:00
bugobliterator
c2ca9d6ea1 AP_HAL_ChibiOS: explain DID_OPTIONS config in CubeOrange-ODID/defaults.parm 2023-10-13 16:40:51 +11:00
bugobliterator
9b30602515 AP_OpenDroneID: add support for persistent storage of UAS ID 2023-10-13 16:40:51 +11:00
bugobliterator
06c2c02dc0 AP_HAL: add support for get_persistent_param_by_name 2023-10-13 16:40:51 +11:00
bugobliterator
3b7352d3a7 AP_HAL_ChibiOS: add support for get_persistent_param_by_name 2023-10-13 16:40:51 +11:00
bugobliterator
c75fba3d21 AP_HAL_ChibiOS: add support for storing OpenDroneID in bootloader sector 2023-10-13 16:40:51 +11:00