Daniel Agar
e3309b9f87
ekf2: rng don't allow bad measurement in bad_acc_vertical ( #25636 )
...
- if bad vertical acceleration is detected there's an emergency case
where rejected range finder observations are allowed to be used, but
this still can't happen if the sample itself is known to be bag
2025-09-30 11:14:04 -08:00
Daniel Agar and Jacob Dahl
900a5ede01
ekf2: range height skip "unhealthy" samples, but respect timeout ( #25634 )
...
* ekf2: range height skip "unhealthy" samples, but respect timeout
- we should never directly use an "unhealthy" range finder sample for
state corrections or resets, but we also shouldn't immediately abort
active rng_hgt until the timeout has passed
* check starting_conditions_passing once
---------
Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com >
2025-09-29 11:23:37 -08:00
Daniel Agar
7eec4c9814
ekf2: fix gravity aid src fused flag
2025-09-26 11:45:54 -04:00
Daniel Agar
469fe62166
logger: cleanup crypto defines
2025-09-25 15:10:21 -04:00
Daniel Agar
6f4e873bce
logger: only include crypto params if enabled
2025-09-25 15:10:21 -04:00
Daniel Agar
a6f8b00a6a
ekf2: SensorRangeFinder purge unused Sensor interface
2025-09-25 14:07:43 -04:00
Daniel Agar
2347cb9e50
ekf2: SensorRangeFinder delete unused faulty flag
2025-09-25 11:29:54 -04:00
Daniel Agar
e342640698
drivers/gps: warn if gps_inject_data publications have been missed
2025-09-24 22:11:49 -04:00
d3f912ad25
platforms: Serial new dedicated writeBlocking method ( #25537 )
...
* platforms: Serial new dedicated writeBlocking method
* finish writeBlocking()
* add back fsync
* updated posix, added string constant for port not open error
* format
* fix build
* remove fsync
* actually remove fsync
* remove fsync from write
* review feedback
---------
Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com >
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com >
2025-09-15 15:22:49 -08:00
Daniel Agar
41d3403ec7
drivers/gps: prioritize non-blocking reads over injection ( #25535 )
2025-09-15 15:18:45 -08:00
Daniel Agar
f161a32c55
ekf2: revert minor baro ctrl check change from 078e4c9 (ekf: always publish baro and gnss bias even if zero ( #25385 ))
2025-08-11 21:38:22 -04:00
Daniel Agar
fb8c43efc3
gitmodules specificy branch for fuzztest and tflite_micro
2025-08-07 20:40:05 -04:00
Daniel Agar
1b3c6f7fd2
drivers/magnetometer: remove Vtrantech VCM1193L from common magnetometer set
2025-06-18 11:56:13 -04:00
Daniel Agar
38d67f5a93
drivers/ins/vectornav: bump cmake minimum to 3.5
2025-04-30 18:12:33 -04:00
Daniel Agar
00d6bef6a9
cmake/gtest: bump cmake minimum to 3.5
2025-04-30 18:12:33 -04:00
Daniel Agar
45bdf20481
lockstep_scheduler: bump cmake minimum to 3.5
2025-04-30 18:12:33 -04:00
Daniel Agar
90b2290700
Tools: docker_run.sh fix entrypoint as user
...
- modern docker can specify the user at runtime (--user)
2025-02-18 00:26:06 -05:00
Daniel Agar
38de04a53a
Tools/setup/ubuntu.sh: add curl for NXP mr-canhubk3 build ( #24346 )
2025-02-17 20:06:24 -08:00
Daniel Agar
e12c3c00a4
control_allocator: param update avoid temporary
...
- this is a harmless workaround for a GCC warning (-Wdangling-pointer) false positive
2025-02-17 14:35:15 -05:00
Daniel Agar
bd2a009217
commander: remove MC nav test
2025-02-05 11:58:04 -05:00
Daniel Agar
6322ebc3db
rcS: shift sensors + EKF startup earlier
...
- we want the drivers, sensors hub, and estimator running as soon as possible to initialize and avoid commander false positives complaining about missing data
2025-01-22 15:27:56 -05:00
Daniel Agar
b1ca0495e2
ekf2: yaw estimator additional validity checks
2025-01-20 09:45:41 +01:00
Daniel Agar
81552fc036
uavcan: relax UAVCAN_RNG_MIN/UAVCAN_RNG_MAX defaults ( #24140 )
...
- this is optional sensor metadata that can be set if actually needed
2024-12-26 19:10:31 -07:00
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