Commit Graph

36269 Commits

Author SHA1 Message Date
Peter Barker 6765838a3c AP_Follow: factor out a should_handle_message method 2024-06-11 16:20:20 +10:00
Peter Barker 7ea2e60b5a AP_AHRS: clarify frame of get_location_from_origin_offset
... by renaming it get_location_from_origin_offset_NED
2024-06-11 14:57:56 +10:00
Peter Barker 5994664bf9 SITL: add simulated tie-down clamp 2024-06-11 09:56:43 +10:00
Peter Barker 911375fa9a AP_Common: rearrange get_vector_from_origin_NEU to be less destructive
this change means that if the origin call failes we don't half-update the object before returning false
2024-06-11 09:47:14 +10:00
Peter Barker 500ca22c75 AP_Follow: clarify what we're doing when rotating a vector
odd sort of a transform, make it clear what's happening
2024-06-11 09:41:32 +10:00
Peter Barker 9c42a5d9dd GCS_MAVLink: warn on use of old fence point / rally point protocols 2024-06-11 09:39:56 +10:00
Peter Barker c5f902919e AC_Fence: warn on use of old fence point / rally point protocols 2024-06-11 09:39:56 +10:00
Peter Barker 2d7a4b318d AP_NavEKF: tidy creation of vectors 2024-06-11 09:38:54 +10:00
Peter Barker 4fb8408e80 GCS_MAVLink: clarify timeline on removal of HIL_GPS and BATTERY2
try to move to a standard greppable pattern for code to be removed
2024-06-11 09:37:56 +10:00
Peter Barker d250d9cb2b GCS_MAVLink: remove MOUNT_CONFIGURE/MOUNT_CONTROL handling by default 2024-06-11 09:37:56 +10:00
Peter Barker fc560e8219 GCS_MAVLink: avoid casting DroneCAN backend to incorrect type
- split get_type into allocated_type and configured_type
 - check allocated type rather than configured type when looking at backends

Prevents overwrite of random memory when backends are changed at runtime.
2024-06-11 09:31:46 +10:00
Peter Barker 029e0b15b3 AP_BattMonitor: avoid casting DroneCAN backend to incorrect type
- split get_type into allocated_type and configured_type
 - check allocated type rather than configured type when looking at backends

Prevents overwrite of random memory when backends are changed at runtime.
2024-06-11 09:31:46 +10:00
Peter Barker dd56f2465b SITL: make simulated SBP2 vastly more accurate
I have no idea if this is actually the sort of number which these devices will return.

However, for the EKF to be happy with the GPS the reported speed accuracy must be much lower than the SBP2 driver reports when we give it these numbers.

It might be that we are interpretting these fields incorrectly in the driver and that the simulator is, in fact, correct.
2024-06-11 09:29:14 +10:00
Brad Bosch 3b150d2e4c GCS_MAVLink: Add support for parity to Serial passthrough
Add code to reflect USB ACM parity setting to the passthrough port alongside existing support for ACM baud rate changes.  Some use cases for serial passthrough require specific parity settings.

For example, even parity is used and required by the USART protocol used in the STM32 system bootloader. This enhancement allows the use of standard flash programming tools such as STM32CubeProgrammer to flash connected STM based peripherals such as Receivers and Telemetry radios via serial passthrough.  Some examples of such peripherals include the FrSky R9 receivers as well as various other STM based LoRa modules used by the mLRS project.
2024-06-11 09:24:32 +10:00
Brad Bosch f2f9349419 AP_HAL: Add support for parity to Serial passthrough
Add code to reflect USB ACM parity setting to the passthrough port alongside existing support for ACM baud rate changes.  Some use cases for serial passthrough require specific parity settings.

For example, even parity is used and required by the USART protocol used in the STM32 system bootloader. This enhancement allows the use of standard flash programming tools such as STM32CubeProgrammer to flash connected STM based peripherals such as Receivers and Telemetry radios via serial passthrough.  Some examples of such peripherals include the FrSky R9 receivers as well as various other STM based LoRa modules used by the mLRS project.
2024-06-11 09:24:32 +10:00
Martin Luessi 3201622d38 AP_HAL_ChibiOS: Update readme for RADIX2HD 2024-06-11 09:11:09 +10:00
Peter Barker 6751bce0fc SITL: log number of times sim paused on serial0 buffer
SITL pauses the simulation if we do not have a minimum amount of space in its out queue.

Log the number of times we do this.
2024-06-11 08:51:25 +10:00
Peter Barker 6ae0b5ec5b AP_HAL_SITL: log number of times sim paused on serial0 buffer
SITL pauses the simulation if we do not have a minimum amount of space in its out queue.

Log the number of times we do this.
2024-06-11 08:51:25 +10:00
subashchandar 7e59b8c5a0 hwdef: update PixFlamingo_f767 README 2024-06-11 08:42:56 +10:00
Andy Piper 2af6358c07 AP_GPS: dynamically allocate config_GNSS 2024-06-10 06:53:23 +10:00
Andy Piper 90f7222f98 AP_HAL_ChibiOS: enable LEDs on Here4AP 2024-06-10 06:53:23 +10:00
Andy Piper a9dc7b440f AP_GPS: support GPSx_GNSS_MODE for F9P
support detecting F9P hardware variant
fix bug in extension buffer management
support NEO-F9P GNSS configuration
allow multiple configuration values to be set in one go
phase F9 configuration to account for GNSS reset
2024-06-10 06:53:23 +10:00
Bill Geyer c77f688032 AP_Motors: fix spacing
Co-authored-by: Peter Hall <33176108+IamPete1@users.noreply.github.com>
2024-06-09 13:24:38 -04:00
MattKear 3a311a9d69 AP_Motors: Heli: Fix SWSH logging for reversed collectives 2024-06-09 13:24:38 -04:00
Paul Riseborough 61874da020 AP_NavEKF3: Rework method of synthesising airspeed for dead reckoning
The previous method resulted in data incest and fusion of predicted airspeed on every EKF internal time step.
This was not apparent during flight where the vehicle was turning, but during long straight legs did not constrain along track drift.
2024-06-09 14:25:02 +10:00
Paul Riseborough 720c2da807 AP_NavEKF3: Rework GPS jamming resiliency
Make it user selectable.
Remove potential for a race condition between decisions based on latest data and the EKF fusion processing which operates on a delayed time horizon. This is achieved by preventing data entering the buffer if awaiting checks to pass ensuring that no EKF fusion time horizon processes can use data that hasn't passed checks.
Log the waitingForGpsChecks class variable
2024-06-09 14:25:02 +10:00
Paul Riseborough 996bf7d4df AP_NavEKF3: Log gpsGoodToAlign 2024-06-09 14:25:02 +10:00
Paul Riseborough eb2ff2192d AP_NavEKF3: Don't block no compass planes from running GPS alignment checks 2024-06-09 14:25:02 +10:00
Paul Riseborough 6baeb1cd9d AP_NavEKF3: Fix bug causing in flight yaw align to not complete 2024-06-09 14:25:02 +10:00
Paul Riseborough ffde7f815c AP_NavEKF3: Allow wind to relearn rapidly when GPS is re-enabled 2024-06-09 14:25:02 +10:00
Paul Riseborough 87bf8d9997 AP_NavEKF3: Treat wind as truth when deadreckoning with no airspeed sensor 2024-06-09 14:25:02 +10:00
Paul Riseborough 568972c0f0 AP_NavEKF3: Fix bug preventing use of default or synthetic airspeed 2024-06-09 14:25:02 +10:00
Paul Riseborough 2c3174b77b AP_NavEKF3: Strengthen protection against GPS jamming
These changes prevent the EKF from consuming GPS data too soon when it is recovering from jamming if the EKF is able to navigate using dead reckoning.
2024-06-09 14:25:02 +10:00
Paul Riseborough 324d5da811 AP_NavEKF3: Use last observed wind states to enable dead reckoning
These changes enable the EKF to use the last observable wind velocity vector estimate to synthesise an airspeed measurement if operating without an airspeed sensor and when all other measurement types that can constrain velocoty drift are lost. This enables the EKF to use dead reckoning to continue after loss of GPS when there is no air speed sensor fitted and without the need to set a default airspeed value.
The logic used to fuse a default airspeed value has also been cleaned up and the call to FuseAirSpeed() from inside SelectBetaDragFusion() has been removed.

AP_NavEKF3: Fix error in default airspeed observation variance

AP_NavEKF3: Enable shadow fusion of airspeed when sensor is disabled
2024-06-09 14:25:02 +10:00
Paul Riseborough e53416e77b AP_NavEKF3: Apply GPS quality checks following loss of 3D fix if velocity error is bounded 2024-06-09 14:25:02 +10:00
MattKear 5784abde1f AP_Motors: Heli dual: Constrain cyclic roll for intermeshing 2024-06-08 23:13:28 -04:00
Andrew Tridgell c783f632c1 AP_Scription: added CANF logging to Halo6000 EFI driver
allows for easier debugging
2024-06-09 08:37:44 +10:00
Iampete1 1c5c80d244 AP_Scripting: Docs: remove stray grave 2024-06-08 07:29:53 +10:00
Andrew Tridgell e9d39d80f4 AP_InertialSensor: fixed ICM42670
highres sampling is not working on the ICM42670 on some versions of
the Pixhawk6X. Disable for now.
2024-06-07 19:44:48 +10:00
Iampete1 cb22a6389d AP_Scripting: add virtual class in docs to avoid need nil check warning 2024-06-07 06:30:22 +10:00
muramura dfc04cd53a AP_Notify: Convert the ENUM definition to a class 2024-06-06 15:15:14 -04:00
George Zogopoulos d2901dc9c9 SITL: Removed trailing underscore 2024-06-05 19:03:31 +10:00
Peter Barker 78fcf7057c GCS_MAVLink: move switch for sending camera messages into AP_Camera
neatens GCS_Common a bit, reduces repetitive code
2024-06-05 10:29:01 +10:00
Peter Barker 5538f6735f AP_Camera: move switch for sending camera messages into AP_Camera
neatens GCS_Common a bit, reduces repetitive code
2024-06-05 10:29:01 +10:00
Iampete1 364419be81 AP_Scripting: docs: allow overload of manual bindings to allow documentation of optional arguments 2024-06-04 09:29:49 +10:00
Iampete1 f54ca766df AP_Scripting: tests: luacheck.lua: ignore lua-language-server 2024-06-04 09:29:49 +10:00
Iampete1 93642026aa AP_Scripting: tests: check.json: check files it gitignore but not self 2024-06-04 09:29:49 +10:00
Henry Wurzburg 3b86c0527f AP_BLHeli:expand metadata of 3d and Reverse masks 2024-06-04 09:24:41 +10:00
Henry Wurzburg 887e4713e6 AP_HAL_ChibiOS:remove fetaures to allow boards to build 2024-06-04 09:23:43 +10:00
Andrew Tridgell 6233bc0e10 HAL_Empty: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell ceac4969d5 AP_Networking: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell e97a6c7089 AP_InertialSensor: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 35a8f6c7b2 AP_DroneCAN: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 265e2a4d6b StorageManager: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 3682e3aad3 SRV_Channel: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 4e1b2b95d4 SITL: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 9b046f5a12 GCS_MAVLink: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 5859250651 Filter: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell db6bcdb725 AP_WindVane: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 76d16e2d78 AP_Winch: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 20a5ec4348 AP_WheelEncoder: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 659ecf6159 AP_VisualOdom: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 6a96df4792 AP_Vehicle: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 30228f5e6e AP_Torqeedo: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 65822c01ed AP_TemperatureSensor: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 93484ec81d AP_TempCalibration: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell a2459c6e61 AP_Scripting: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 5af89a4291 AP_Scheduler: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell c1bdf15c1d AP_RPM: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 01f02867a6 AP_RCTelemetry: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 51d5f85b83 AP_RCProtocol: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 8554081be5 AP_RangeFinder: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 5130e26f4c AP_Radio: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell c681701f81 AP_Proximity: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 6bd2be548b AP_Param: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell a5672b0105 AP_OSD: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 7235c146fa AP_OpticalFlow: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 014b3bba70 AP_OpenDroneID: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell cead1ee264 AP_ONVIF: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 530cbf1eca AP_Notify: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 4d5aa1b8e3 AP_Networking: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 242a3741e3 AP_NavEKF: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 94cbd7cbfb AP_NavEKF3: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 5e88d67571 AP_NavEKF2: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 5ca4bdbd8d AP_MSP: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 28da263e16 AP_Mount: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell e5a63eaad0 AP_Motors: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 3912c6a5e0 AP_Module: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell e180359757 AP_Menu: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell ad6502c9f1 APM_Control: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 72c77b3453 AP_Math: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 20070b7e37 AP_Logger: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 41cc776bd9 AP_LeakDetector: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 98697ba5d3 AP_KDECAN: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 6962c4080d AP_JSON: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 2e6c5157e6 AP_IOMCU: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell a0acccb1f9 AP_InertialSensor: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 17e338d7f6 AP_HAL_SITL: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell f1c6538f34 AP_HAL_Linux: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell 20959524b8 AP_HAL: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00