Daniel Agar
8a18e5b00c
commander: accelerometer calibration respect rotation
...
- accel cal use Accelerometer calibration class to fully respect
rotation (both internal and external sensors)
2024-12-17 22:26:01 -05:00
Daniel Agar
990b067b25
uxrce_dds_client: update cmake requirements to match Micro-XRCE-DDS-Client submodule
2024-11-27 14:09:13 -08:00
Daniel Agar
68cbbaab92
Tools/astyle: check_code_style_all.sh skip pre-commit hook if non-interactive
2024-11-27 13:51:10 -08:00
Daniel Agar
e194a52907
ekf2: derivation.py remove sideslip small angle approximation
2024-11-25 08:53:57 +01:00
Daniel Agar
233cf17fa7
Jenkins: delete Jenkinsfile-compile/Jenkinsfile-hardware
...
- Jenkinsfile-compile is now redundant with github actions
- Jenkinsfile-hardware will be migrated to github actions once new test
rack hardware is available (old test rack server died)
2024-11-21 12:31:02 -05:00
Daniel Agar
cad2de228c
.github/workflows/clang-tidy.yml - clang-tidy checks retry if failed
...
- this clang tidy runner occasionally fails intermittently
2024-11-20 18:14:33 -05:00
Daniel Agar
7288d16855
mavsdk_tests set nice levels for px4/gzclient/mavsdk_tests
2024-11-20 14:45:11 -05:00
Daniel Agar
ada2bb4c42
uORB_tests: relax latency threshold on non-realtime SITL
2024-11-20 14:10:39 -05:00
Daniel Agar
1d2ed28966
init.d-posix/rcS: relax default COM_RC_LOSS_T/COM_OF_LOSS_T with speed factor (0.5->1.0)
2024-11-20 09:36:06 -08:00
Daniel Agar
635e162a0c
test/mavsdk_tests: continue sending manual control between steps in fly_forward_in_posctl()/fly_forward_in_altctl()
2024-11-20 09:36:06 -08:00
Daniel Agar
a2156244d3
uxrce_dds_client: CMakeLists.txt cleanup
...
- common variable for Micro-XRCE-DDS-Client
- don't mix tabs and spaces
- px4 module include all dependencies
2024-11-12 21:20:54 -05:00
Daniel Agar
371a99c322
drivers/uavcan: subtree merge last working libuavcan (preserving history) ( #23819 )
...
- fully absorb the libuavcan submodule (renamed libdronecan to deconflict) up to our last good working commit and preserve all history (upstream libuavcan was broken and then marked deprecated)
- fixes https://github.com/PX4/PX4-Autopilot/issues/23727
- this puts us in a much better position to be able to evolve the library going forward ow that we have full control in tree
2024-10-17 16:20:19 -04:00
Daniel Agar
e59cc9afeb
drivers/uavcan: subtree merge last working libuavcan (preserving history)
...
- upstream libuavcan was broken and then marked deprecated, this fully absorbs the submodule (renamed libdronecan to deconflict) up to our last good working commit and all commit history is kept
- fixes https://github.com/PX4/PX4-Autopilot/issues/23727 (regression introduced in #23113 )
- this puts us in a much better position to evolve the library as needed now that we have full control
2024-10-16 13:31:17 -04:00
Daniel Agar
f971c0e617
ekf2: reduce bad acc probation time 10s->3s
2024-10-07 10:37:33 +02:00
Daniel Agar
9ddac762e3
ekf2: stricter GNSS vel rejected innovation override
...
- in the special case of bad vertical acceleration detected
(bad_acc_vertical) only allow overriding rejected GNSS 3D velocity
if horizontal innovations are accepted
2024-10-07 10:36:09 +02:00
Daniel Agar
9238656a33
ekf2: configurable velocity state constraint (EKF2_VEL_LIM)
...
- replace hardcoded 1000 m/s velocity state constraint with new EKF2_VEL_LIM parameter (default 100 m/s)
- new velocity limit also used for GPS checks and external vision velocity
2024-10-07 10:35:48 +02:00
Daniel Agar
ad28c5893b
flight_mode_manager: invalidate dist to bottom/ground on terrain reset
...
- this allows the terrain hold to simply reset on the next valid update
rather than trying to adjust the setpoints
2024-10-04 11:28:03 -04:00
Daniel Agar
34ee097f02
ekf2: tighten terrain validity requirements
...
- require valid fusion from a range finder or optical flow before
considering terrain valid again
2024-10-04 10:31:20 +02:00
Daniel Agar
e08dc400a2
Jenkinsfile-compile remove non-existant zeroone_x6_rover target
2024-10-02 12:38:54 -04:00
Daniel Agar
19441a12da
fix Jenkinsfile-compile missing comma and sort list
2024-10-01 13:12:17 -04:00
Daniel Agar
332b7bec27
commander: ignore REQUEST_CAMERA_INFORMATION
...
- add answer command logging
2024-09-27 10:33:37 -07:00
Daniel Agar
e4dd3f2871
boards/px4/fmu-v5: stackcheck remove FW modules (flash overflow)
2024-09-18 11:34:48 -04:00
Daniel Agar and Mathieu Bresciani
5b0014cb06
ekf2: remove legacy accel z bias checks ( #23341 )
...
Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com >
2024-08-29 11:51:27 -04:00
Daniel Agar
f3d58cdf10
ekf2: resetFlowFusion() pass flowSample by const ref
2024-08-27 10:38:17 -04:00
Daniel Agar
6c24413888
ekf2: filter flow vel (used for flow velocity reset)
...
- individual flow samples can be quite erratic
2024-08-27 10:38:17 -04:00
Daniel Agar
ac48b8b51d
ekf2: mag declination fusion always if there is no aiding
2024-08-27 16:16:55 +02:00
Daniel Agar
2a9e205442
ekf2: fuseDeclination respect mag update_all_states
...
- when both mag_hdg/mag_3d are inactive we should be able to continue
updating mag without any possible impact on other states
2024-08-27 16:16:55 +02:00
Daniel Agar
9d57a3c02f
ekf2: split resetMagCov() and skip mag reset if negligible change
2024-08-27 16:16:55 +02:00
Daniel Agar
bbcf741e9e
ekf2: make mag control responsible for WMM
...
- this further untangles mag control (which requires the WMM) from GPS
2024-08-27 16:16:55 +02:00
Daniel Agar
a75db1286d
logger: automatically limit buffer size to largest available free chunk (NuttX only)
2024-08-26 13:24:39 -04:00
Daniel Agar
ebbb880e92
ekf2: always use corrected accel/gyro for filtered metrics
2024-08-23 17:35:59 -04:00
Daniel Agar
56560726d3
ekf2: sensor simulator fix GPS replay scaling
2024-08-23 14:35:05 -04:00
Daniel Agar
d7b165991f
cmake: relax git tag requirements
...
- default to v0.0.0 if tag isn't available
- src/lib/px_update_git_header.py use same PX4_GIT_TAG as cmake
- update lingering master branch references to main
2024-08-23 12:05:34 -04:00
Daniel Agar
7250ee1b32
ekf2: organize gyro_bias/accel_bias param yaml
2024-08-22 10:56:16 -04:00
Daniel Agar
ebbd2c1825
ekf2: organize aid source parameters
2024-08-22 10:56:16 -04:00
Daniel Agar
f7e6e1354a
commander: power check only keep error thresholds
2024-08-15 10:06:56 -04:00
Daniel Agar
c9343ca11d
sitl_gazebo-classic update submodule to latest
2024-08-12 16:26:56 +02:00
Daniel Agar
fd72578e98
ekf2: avoid constraining parameters every iteration
2024-07-25 09:51:35 +02:00
Daniel Agar
9ff6c4bf28
remove newlines
2024-07-19 18:25:43 -04:00
Daniel Agar
85de0ff227
boards: move ARK fmu-v6x/pi6x to dedicated RC drivers
2024-07-19 15:42:05 -04:00
Daniel Agar
3a3f04c0f4
drivers/rc: new standalone ghst_rc driver
...
- extracted from monolithic drivers/rc_input which will eventually be
dropped once all drivers migrated and boards updated
2024-07-19 15:42:05 -04:00
Daniel Agar
7a6c4f0bfa
drivers/rc: new standalone sbus_rc driver
...
- extracted from monolithic drivers/rc_input which will eventually be
dropped once all drivers migrated and boards updated
2024-07-19 15:42:05 -04:00
Daniel Agar
561dceea7b
drivers/rc: new standalone dsm_rc driver
...
- extracted from monolithic drivers/rc_input which will eventually be
dropped once all drivers migrated and boards updated
2024-07-19 15:42:05 -04:00
Daniel Agar
ca9948a84d
msgs/EstimatorStatus.msg rename mag_test_ratio -> hdg_test_ratio
...
- this is used for more than just mag
2024-07-18 16:39:18 +02:00
Daniel Agar
eac14b7db2
ekf2/commander: simplify navigation filter preflight checks
...
- remove commander test ratio "tuning knobs" (COM_ARM_EKF_{HGT,POS,VEL,YAW})
- these are effectively redundant with the actual tuning (noise & gate)
in the estimator, plus most users have no idea why they'd be
adjusting these other than to silence an annoying preflight complaint
- remove ekf2 "PreFlightChecker" with hard coded innovation limits
- ekf2 preflight innovation flags are now simply if any active source
exceeds half the limit preflight
2024-07-18 16:39:18 +02:00
Daniel Agar
f8f8ddc101
ekf2: optical flow update last hor vel timestamp on success
2024-07-17 14:46:48 -04:00
Daniel Agar
691fdf713c
ekf2: airspeed update last hor vel timestamp if successfully updating all states
2024-07-17 14:46:48 -04:00
Daniel Agar
57c1ba545f
ekf2: fake_hgt don't use fuseVerticalPosition helper
...
- fake_hgt shouldn't update _time_last_hgt_fuse
2024-07-17 14:46:48 -04:00
Daniel Agar
6fe0fa6d63
ekf2: fake_pos don't use fuseHorizontalPosition helper
...
- fake_pos shouldn't update _time_last_hor_pos_fuse
2024-07-17 14:46:48 -04:00
Daniel Agar
c5c27a87f1
ekf2: track last terrain fuse time and update logic
2024-07-17 10:16:32 -04:00
Daniel Agar
f832ae688d
ekf2: require valid filter vz for GPS vspeed check
2024-07-16 10:15:19 -04:00
Daniel Agar
397ff4a102
ekf2: sideslip symforce increase epsilon to avoid 1/e^2 numerical issues
2024-07-16 11:10:58 +02:00
Daniel Agar
13b62a74d6
ekf2: optical flow adjust jacobian epsilon to avoid numerical issues
...
- in the generated code there's a 1 / eps^2 term if the height and
terrain estimates are the same
2024-07-16 11:10:58 +02:00
Daniel Agar
48f1687d3a
ekf2: cleanup legacy EKF solution_status_flags
2024-07-16 10:11:27 +02:00
Daniel Agar and Mathieu Bresciani
1cd7d54170
ekf2: consolidate GNSS yaw in gnss_yaw_control.cpp and fix naming (GPS->GNSS)
...
Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com >
2024-07-15 12:50:51 -04:00
Daniel Agar
8e5f28f834
ekf2: rng only reset vz as a last resort
2024-07-15 11:39:56 -04:00
Daniel Agar
80ee622f77
ekf2: baro only reset vz as a last resort
2024-07-15 11:39:56 -04:00
Daniel Agar
40349fa3dc
ekf2: EV velocity control should own vertical velocity reset if height failing
2024-07-15 11:39:56 -04:00
Daniel Agar
177613eb68
ekf2: GNSS velocity control should own vertical velocity reset if height faiing
...
- GNSS height control using the velocity sample directly is ignoring
potential position offsets
2024-07-15 11:39:56 -04:00
Daniel Agar
e03aef616c
ekf2: add terrain/dist_bottom reset deltas (vehicle_local_position/vehicle_global_position)
2024-07-15 10:25:42 -04:00
Daniel Agar
a5a67315fd
ekf2: optical flow magnitude check compensated
...
- additionally don't use flow for reset if magnitude isn't acceptable
2024-07-15 09:46:59 -04:00
Daniel Agar
dc5f8118b0
ekf2: range finder cleanup duplicate logic
2024-07-15 11:37:36 +02:00
Daniel Agar
9124a7b471
ekf2: add IMU delta_ang_dt/delta_vel_dt safety constrain before pushing into buffer
2024-07-10 21:20:47 -04:00
Daniel Agar
ac77049c47
ekf2: directly use IMU sample to find corresponding aid source sample
...
- I think this helps make it clear we're using a sensor sample
corresponding with a particular IMU sample
2024-07-10 21:20:47 -04:00
Daniel Agar
f93dc61770
ekf2: use bias corrected angular velocity
...
- avoid unnecessarily storing _ang_rate_delayed_raw
2024-07-10 21:20:47 -04:00
Daniel Agar
75bb339d94
ekf2: remove warning events logging
...
- some of these warning flags aren't even being used, and most of the rest we can figure out from other sources
2024-07-10 10:43:55 -04:00
Daniel Agar
c29b4ff87e
ekf2: apply astyle formatting and enforce
2024-07-10 10:43:55 -04:00
Daniel Agar
223397c20e
ekf2: always add accel/gyro bias process noise
...
- continue adding accel/gyro bias process noise even if inhibited
2024-07-10 11:49:01 +02:00
Daniel Agar
62ff39a669
ekf2: EV vel (body) update last fuse timestamps
...
- these are set by the NED fuseVelocity() helper so also need to be set in the body frame velocity case
2024-07-09 10:16:12 -04:00
Daniel Agar
5d08b97fd7
ekf2: add vehicle_local_position dist_bottom_var
2024-07-09 10:10:01 -04:00
Daniel Agar
3e3b886b5d
ekf2: add terrain estimator_status_flags
2024-07-09 10:10:01 -04:00
Daniel Agar
64a6971bdb
ekf2: only limit opt flow HAGL if range only terrain
...
- increase HALG limit from 75%->90% of sensor max
2024-07-09 10:10:01 -04:00
Daniel Agar
c56f84fe8a
ekf2: range, check if terrain valid for reset on fusion timeout
2024-07-09 10:10:01 -04:00
Daniel Agar
e52025cc20
ekf2: optical flow fusion timeout only reset if quality is good
2024-07-09 10:10:01 -04:00
Daniel Agar
6be06ecbb3
ekf2: optical flow failing also reset terrain if needed
2024-07-09 10:10:01 -04:00
Daniel Agar
ea8f14b883
ekf2: optical flow logic, timeout if bad_tilt, etc
...
- previously we could get stuck with optical flow still technically
active (_control_status.flags.opt_flow=true), but nothing being
updated due to excessive tilt, etc
2024-07-09 10:10:01 -04:00
Daniel Agar
8bf15b01c4
ekf2: optical flow don't compute innovation variance twice
...
- collapse updateOptFlow() and startFlowFusion() to avoid recomputing H
- this is a relatively expensive call we can easily avoid with the
right structure
2024-07-09 10:10:01 -04:00
Daniel Agar
f709ed409d
ekf2: optical flow stop reset all flags
2024-07-09 10:10:01 -04:00
Daniel Agar
9dfd82ab06
ekf2: optical flow remove _flow_data_ready flag
2024-07-09 10:10:01 -04:00
Daniel Agar
7047f9441c
ekf2: fix calcOptFlowBodyRateComp() gyro bias
...
- adjust flow sample gyro_rate immediately after popping from ring
buffer
- always update flow gyro bias (calcOptFlowBodyRateComp()) regardless
of flow quality or magnitude
2024-07-09 10:10:01 -04:00
Daniel Agar
4d324da9f8
ekf2: update flow aid src status every sample
2024-07-09 10:10:01 -04:00
Daniel Agar
bcd666b3f8
ekf2: fix optical flow start logic
...
- remove fallthrough that enables flow regardless of success
- add appropriate start messages for each case
2024-07-09 10:10:01 -04:00
Daniel Agar
bf4e564b23
ekf2: resetTerrainToFlow() reset aid src status appropriately
2024-07-09 10:10:01 -04:00
Daniel Agar
ced609daa8
ekf2: flow fusion start require valid fusion
2024-07-09 10:10:01 -04:00
Daniel Agar
1df8f3f9d2
ekf2: resetFlowFusion() reset aid src status appropriately
2024-07-09 10:10:01 -04:00
Daniel Agar
0742d356f5
ekf2: more conservative clipping checks for bad_acc_clipping fault status ( #23337 )
...
- track accel clipping count per axis
- only set bad_acc_clipping fault_status if at least one axis is
clipping continuously or if all have been clipping at warning level
- Note: this doesn't impact the clipping projections that boost the
accel process noise, pause bias estimation, and skip gravity fusion
on a per sample basis
2024-06-28 16:45:08 -04:00
Daniel Agar
30b854da35
ekf2: verbose logging control (new EKF2_LOG_VERBOSE)
...
- new parameter EKF2_LOG_VERBOSE to enable (currently enabled by default)
- force advertise topics immediately (based on EKF2_LOG_VERBOSE and per aid source configuration)
- logger optionally log all estimator topics at minimal rate
2024-06-27 01:10:57 -04:00
Daniel Agar
78fd9a15f8
flight_mode_manager: delete unused avoidance waypoint
2024-06-27 01:08:16 -04:00
Daniel Agar
338bcc6ca3
ekf2: disable EKF2_EV_CTRL and EKF2_AGP_CTRL by default
2024-06-26 17:10:28 -04:00
Daniel Agar
30ce560e3a
ekf2: mag control reset filtered test ratio on start (if aligning yaw)
2024-06-20 13:41:54 -04:00
Daniel Agar
dcb1103299
ekf2: move estimator_status test ratios to filtered values
2024-06-20 13:41:54 -04:00
Daniel Agar
741c7ab610
Update submodule GPS drivers to latest Wed Jun 19 00:38:26 UTC 2024
...
- GPS drivers in PX4/Firmware (e5d44cc1ba691f075bc2bce52dea7ec88af9e6cd): https://github.com/PX4/PX4-GPSDrivers/commit/0b79ec4dbe3e5ac5925c011067e7e294033a0a32
- GPS drivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/a41210ede8c2d22dd8e9fdcf388fca927c1fc5e1
- Changes: https://github.com/PX4/PX4-GPSDrivers/compare/0b79ec4dbe3e5ac5925c011067e7e294033a0a32...a41210ede8c2d22dd8e9fdcf388fca927c1fc5e1
a41210e 2024-06-18 Daniel Agar - sbf: fix code style
2024-06-18 21:03:27 -04:00
Daniel Agar
e33ba810e9
boards: px4_fmu-v5x_test disable differential_drive module to fix flash overflow
2024-06-18 18:48:13 -04:00
Daniel Agar
69a4a11c7f
boards: cuav/nora disable modules to fix flash overflow
2024-06-18 18:47:42 -04:00
Daniel Agar and PX4 BuildBot
81f26be846
Update submodule GPS drivers to latest Tue Jun 18 12:39:32 UTC 2024
...
- GPS drivers in PX4/Firmware (c29d189788090f6994e488f65789a8fe6b835d8d): https://github.com/PX4/PX4-GPSDrivers/commit/d92cf3a2b2704d5509b651bfca33cdfea3a7a18a
- GPS drivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/0b79ec4dbe3e5ac5925c011067e7e294033a0a32
- Changes: https://github.com/PX4/PX4-GPSDrivers/compare/d92cf3a2b2704d5509b651bfca33cdfea3a7a18a...0b79ec4dbe3e5ac5925c011067e7e294033a0a32
0b79ec4 2024-04-12 Thomas Frans - sbf: fix issue with automatic base config in QGC
5810dac 2024-04-12 Thomas Frans - style: add editorconfig file for consistent style
915024c 2024-03-26 Julian Oes - sbf: fix subsequent init in QGC
3ea1d76 2024-03-04 Julian Oes - sbf: don't foget to configure RTCM
c6da592 2024-03-04 Julian Oes - sbf: don't change baudrate of USB port
Co-authored-by: PX4 BuildBot <bot@px4.io >
2024-06-18 13:55:02 -04:00
Daniel Agar
8b9900cce3
mc_pos_control: new velocity low pass and notch filter (optional, disabled by default)
...
- MPC_VEL_LP: new velocity first order low pass filter (off by default)
- MPC_VEL_NF_FRQ/MPC_VEL_NF_BW: new velocity notch filter (off by default)
- MPC_VELD_LP: existing velocity derivative low pass filter, but I've dropped the remaining controllib usage
2024-06-18 11:47:19 -04:00
Daniel Agar
206488b844
ekf2: innovation sequence monitoring for all aid sources
...
- add new 'innovation_filtered' and 'test_ratio_filtered' fields to
estimator_aid_source topics
2024-06-17 15:30:42 -04:00
Daniel Agar
f9160853fa
rc_update: purge deprecated RC switch parameters
...
- these are old RC switch configuration parameters that haven't been used for
years, but were hardcoded into old versions of QGC
- RC_MAP_RATT_SW, RC_MAP_POSCTL_SW, RC_MAP_ACRO_SW, RC_MAP_STAB_SW, RC_MAP_MAN_SW deleted
-
2024-06-17 12:03:13 -04:00
Daniel Agar
c0d6b67633
matrix: Vector2/Vector4 override ops so specific Vector type is returned
...
- mirrored from Vector3
2024-06-14 10:53:27 -04:00
Daniel Agar
783cf9aede
vscode: cmake default status bar visibility
...
- this is important for setting the active PX4 configuration
2024-06-14 10:52:19 -04:00