Commit Graph

16725 Commits

Author SHA1 Message Date
Silvan Fuhrer cf03b99ab4 AirspeedValidator: inrease default of ASPD_BETA_NOISE
Trust the beta innovations more compated to the TAS innovations.
That should help with detecting real airspeed failures even with
a dynamic wind estimate (as long as vehicle doesn't fly straight)

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-09 09:42:43 +01:00
Silvan Fuhrer 0a271b1982 EKF2: increase default of EKF2_WIND_NSD and EKF2_TAS_GATE
Increasing the wind process noise results in a more dynamic
wind estimation, which is capable of catching fast-varying
winds. As wind is used in the lateral guidance it's important
that we don't filter it too much.
Furher the gate of the airspeed fusion is increased, to
reduce the likelihood of airspeed fusion stopping due to
dynamic wind conditions. The airspeed is validated in
the airspeed validator (EKF consumes the validated one).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-09 09:42:43 +01:00
Silvan Fuhrer ec20f92558 EKF2: sideslip_fusion: remove construced airspeed magnitude check to fuse beta
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-09 09:42:43 +01:00
Claudio Micheli 457d261278 Add mavlink support for GIMBAL_DEVICE_INFORMATION
Signed-off-by: Claudio Micheli <claudio@auterion.com>
2023-11-08 17:01:32 +01:00
Beat Küng 1ad5a9de08 uorb: compress format definitions
Reduces flash usage by ~16KB.

- compress formats at build-time into a single string with all formats
- then at runtime iteratively decompress using
  https://github.com/atomicobject/heatshrink
2023-11-08 00:31:26 -05:00
bresch 3acc29410a failsafe: disarm if battery failure is detected during spoolup 2023-11-07 17:38:06 -05:00
Daniel Agar 77baa7c24a ekf2: EKFGSF yaw estimator always run
- if not in air the accel noise is doubled
 - if landed don't init unless GPS velocity is non-negligible
 - when inactive continue seeding with EKF gyro bias
 - reset yaw estimator if GPS fusion is stopped
2023-11-07 15:48:49 -05:00
Silvan Fuhrer a47b684fd7 tecs_status.msg: directly add underspeed ratio to msg instead of boolean
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-07 12:18:06 -05:00
Silvan Fuhrer 8741a9784d TECS: remove TECS_MODE enum and instead add descriptive boolean flag to tecs_status
New flag: underspeed_mode_enabled.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-07 12:18:06 -05:00
Silvan Fuhrer a6fcf7b48c TECS: remove airspeed adaption in case of underspeed
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-07 12:18:06 -05:00
alexklimaj 4dda99c80b mc_pos_control: MPC_ALT_MODE make terrain hold default 2023-11-07 12:00:14 -05:00
alexklimaj de0910c767 flight mode manager: fix terrain hold 2023-11-07 12:00:14 -05:00
Sverre Velten Rothmund 94d4dc85f8 ekf2: Make stuck detector optional 2023-11-07 11:57:19 +01:00
Konrad 3d16383bb4 mavlink_tests: fix include directory to point to chosen mavlink dialect 2023-11-07 11:35:23 +01:00
Matthias Grob c53e0c4799 cpuResourceCheck: use hysteresis class 2023-11-07 11:19:28 +01:00
Silvan Fuhrer fd009c8be3 CPU resource check: use class member and fix param description
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-07 11:19:28 +01:00
Silvan Fuhrer c054bc2370 Commander: cpuResourcesCheck: add 2 seconds hysteresis to trigger failure
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-07 11:19:28 +01:00
Silvan Fuhrer 54d26e084a Commander: windCheck: add COM_WIND_MAX_ACT param to set high wind failsafe action (#21373)
Has options *None where the check is disabled, and *Warning, where only a warning is
published (which replaces the high wind warning from the COM_WIND_WARN limit).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-06 11:58:21 +01:00
alessandro 428e7d7754 mavlink: remove double assignment of battery field 2023-11-03 11:49:25 -04:00
bresch a989e5338c ekf2: reset globlal position uncertainty when GNSS is fused
There is no reason to keep an uncertainty on the origin as it is then
already contained in the local position estimate when GNSS data is fused
in the filter.
2023-11-02 13:11:40 -04:00
Konrad 1089079a32 Figure_of_eight: Make configuration dependent on defined mavlink_message_id. 2023-10-31 15:57:59 -04:00
Konrad 8edd7ce2c1 kconfig: Add option to enable figure of eight support 2023-10-31 15:57:59 -04:00
Konrad e5e66370e7 FixedwingPositionControl: Add support for figure 8 loitering.
The command is sent by a dedicated mavlink command and forwarded to the fixed wing position controller.

The pattern is defined by the radius of the major axis, the radius of the minor axis and the orientation. The pattern is then defined by:
The upper part of the pattern consist of a clockwise circle with radius defined by the minor axis. The center of the circle is defined by the major axis minus the minor axis away from the pattern center.
The lower part of the pattern consist of a counter-clockwise circle with the same definitions as above.
In between, the circles are connected with straight lines in a cross configuration. The lines are always tangetial to the circles.
The orientation rotates the major axis around the NED down axis.

The loitering logic is defined inside its own class used by the fixed wing position control module. It defines which segment (one of the circles or lines) is active and uses the path controller (npfg or l1-control) to determine the desired roll angle.

A feedback mavlink message is send with the executed pattern parameters.
2023-10-31 15:57:59 -04:00
Mathieu Bresciani 0d6c2c8ce9 EKF2: Error-State Kalman Filter (#22262)
* ekf derivation: change to error state formulation
* ekf2: update auto-generated code for error-state
* ekf2: adjust ekf2 code for error state formulation
* ekf2_tests: adjust unit tests for error-state EKF
* update change indicator for error-state EKF
* ekf2_derivation: allow disabling mag and wind states

---------

Co-authored-by: bresch <[brescianimathieu@gmail.com](mailto:brescianimathieu@gmail.com)>
2023-10-31 10:02:18 -04:00
Peter van der Perk fee6d250f3 zenoh: fix sitl ci compile warning 2023-10-31 09:55:51 -04:00
Konrad a4d05085a7 Navigator: Don't switch to RTL if already in landing phase of mission. 2023-10-31 14:16:02 +01:00
Konrad c1214c847f rtl+mission: remove do_need_move_to_land and handleLanding duplicated code to reduce flash 2023-10-31 14:16:02 +01:00
Konrad 698c57c5f8 [RTL] Add VTOL land approach for home with designated loiter points in the RTL mode. 2023-10-31 14:16:02 +01:00
Konrad e2cbf5be94 [RTL] Update MAVLINK Mission logic to send optional loiter points to mission rally points. 2023-10-31 14:16:02 +01:00
Matthias Grob 2ef807eaa0 sdcardCheck: shorten hardfault log message
To make sure it's showing correctly in the output.
2023-10-25 16:43:06 -04:00
bresch eed2870fd8 ekf2: fix optical_flow_vel publication
We should otherwise call this publication before the aid_src publisher
that sets the timestamp. Having it separate avoids this ordering
constraint.
2023-10-25 09:59:56 -05:00
Roman Bapst ecb78ca207 new library for atmosphere calculations
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-10-21 12:25:45 -05:00
Julian Oes f120ebcdc0 mavlink: properly set mission_type
This was defaulted to 0 before which messed with transmitting geofence
and rally items.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-10-19 21:20:14 -05:00
Daniel Agar 27f9b1b65a ekf2: move zero gyro update to aid source class 2023-10-18 20:23:56 -04:00
Daniel Agar e79737a38d ekf2: create simple estimator aid source base class and extract zero velocity update 2023-10-18 20:23:56 -04:00
Peter van der Perk 019d232911 Add Zenoh pico support 2023-10-18 15:30:36 -04:00
Daniel Agar 408c30de13 ekf2: delete redundant aid src status getters 2023-10-18 15:21:51 -04:00
Daniel Agar bdaf0acfca ekf2: fully disable yaw estimator EKFGSF_yaw with CONFIG_EKF2_GNSS (#22233) 2023-10-18 13:30:17 -04:00
Julian Oes fefdad83bf mavlink: fix MAVLink message forwarding
This switches from the horribly intertwined ringbuffer implementation to
the new VariableLengthRingbuffer implementation.

By ditching the previous implementation, we fix MAVLink message
forwarding, which didn't work reliably. The reason it didn't work is
that multiple mavlink messages could be added but only one of them was
sent out because the buffer didn't keep track of the messages properly
and only read the first one.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-10-18 12:26:47 -04:00
Daniel Agar 3d238b0275 ekf2: add kconfig to disable gravity fusion (#22231) 2023-10-18 10:50:51 -04:00
Daniel Agar 6eae9fb371 ekf2: fix barometer kconfig 2023-10-18 09:43:27 -04:00
KonradRudin 988705831d Check mission climb always on current mission item (#22230)
* mission_base: reset inactivation index when user set a new mission index, or mission is reset.

* mission_base: check Climb required always on current mission item
2023-10-18 07:59:20 +02:00
Niklas Hauser f45b960eee [mavlink] Use separate mutex for event buffer
This prevents the mavlink transmit loop from waiting on the module mutex
thus not stopping transmissions when the mutex is already taken.

This can happen when calling `mavlink status` from the mavlink shell,
where `Mavlink::get_status_all_instances()` takes the mutex and then
prints the status via pipes to the mavlink transmit buffer.
If that pipe cannot be emptied a deadlock happens.

Since the MavlinkReceiver thread also waits on the module mutex, both
reception and transmission of Mavlink packets are then prevented thus
disabling communications entirely.
2023-10-17 10:05:46 -04:00
Daniel Agar 48e09a4dea ekf2: move predict covariance IMU inhibit check to function 2023-10-17 09:58:10 -04:00
Daniel Agar 0b44852094 ekf2: move accel bias check out of fixCovarianceErrors 2023-10-17 09:58:10 -04:00
bresch 1c9373e83b update baro static pressure compensation tuning script
Field name changed in vehicle_gps_position
2023-10-16 09:45:28 -04:00
Daniel Agar 9676af2fe6 ekf2: predict covariance avoid explicit temporary nextP 2023-10-13 20:57:33 -04:00
Daniel Agar d2b3e7fe16 ekf2: new kconfig to enable/disable GNSS (enabled by default) 2023-10-11 14:02:34 -04:00
jmackay2 2d78383296 Add the capability to use Gazebo Harmonic if it is installed 2023-10-11 10:21:09 -04:00
vlad-serbanica af84c2ca7f mavlink_main: increase raw gps latency 2023-10-11 09:53:59 -04:00