Commit Graph
100 Commits
Author SHA1 Message Date
Daniel Agar f8a8675e2d ORB queue depth completely static 2024-03-08 10:47:43 -05:00
Daniel Agar 600b0e6704 Merge remote-tracking branch 'px4/main' into pr-modalai-muorb-updates 2024-03-08 10:08:36 -05:00
Daniel Agar 1c741836c0 sensors/vehicle_imu: sensor update loop limit iterations 2024-03-06 21:19:38 -05:00
Daniel Agar 8b6c70e0f2 sensors/vehicle_angular_velocity: sensor update loop limit iterations 2024-03-06 21:19:38 -05:00
Daniel Agar 1fc38aab92 sensors/vehicle_air_data: sensor update loop limit iterations 2024-03-06 21:19:38 -05:00
Daniel Agar 2bf1eeb003 sensors/vehicle_acceleration: sensor update loop limit iterations 2024-03-06 21:19:38 -05:00
Daniel Agar 87960c04d8 mag_bias_estimator: sensor update loop limit iterations 2024-03-06 21:19:38 -05:00
Daniel Agar d96970a2b9 sensor/vehicle_magnetometer: sensor update loop limit iterations
- place upper bound to prevent looping indefinitely (high publish rate, etc)
2024-03-06 21:19:38 -05:00
Daniel Agar 8001132d33 ekf2: ZeroGyroUpdate move to fuseDirectStateMeasurement 2024-02-26 12:32:59 -05:00
Daniel AgarandMatthias Grob b2b7439060 ROMFS: respect kconfig for including romfs files (airframes, etc) (#22571)
* ROMFS: respect kconfig for including romfs files (airframes, etc)

* ROMFS: only add R1 airframe with differential drive control

* ROMFS: adapt to differential drive module renaming

---------

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2024-02-23 15:40:00 +01:00
Daniel Agar 506c60c471 ekf2: declination fusion don't use uninitialized parameter (EKF2_MAG_DECL) 2024-02-21 09:45:44 -05:00
Daniel Agar 8243b4f474 ekf2: move vel/pos reset helpers 2024-02-20 13:16:24 -05:00
Daniel Agar 22b957696d ekf2: velocity/position fusion helper minor consistency cleanup 2024-02-20 13:16:24 -05:00
Daniel Agar c338891677 ekf2: split vel_pos_fusion.cpp 2024-02-20 13:16:24 -05:00
Daniel Agar c4c41c49e5 ekf2: move fuseVelPosHeight() -> fuseDirectStateMeasurement()
- don't bother keeping bad_vel_{N,E,D} and bad_pos_{N,E,D} fault status bits
2024-02-20 13:16:24 -05:00
Daniel Agar 021dd0d0af ekf2: fix EV height bias predict call
- needs to be called every iteration
2024-02-20 11:47:53 -05:00
Daniel Agar 1032dd3470 ekf: fix measurementUpdate comment typo 2024-02-19 09:41:49 +01:00
Daniel Agar 8dc3975456 ekf2: only populate gnss pos aid src status if ref initialized
- this is a minor logging improvement when plotting the position from the beginning of the log (often a replay session)
2024-02-15 13:13:10 -05:00
Daniel Agar b8714f8980 ROMFS: rc.simulator EKF2 setup specific to gazebo classic 2024-02-13 11:14:44 -05:00
Daniel AgarandPX4 BuildBot 5f589bdda3 Update submodule GPSDrivers to latest Mon Feb 12 12:39:19 UTC 2024
- GPSDrivers in PX4/Firmware (17ff40898c683e1fe96ff9e2d2790594d188f872): https://github.com/PX4/PX4-GPSDrivers/commit/3393191fbb842f8e13a3f296218efec832640112
    - GPSDrivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/f48cc01d31607baa4963bde090f530b44df3de12
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/3393191fbb842f8e13a3f296218efec832640112...f48cc01d31607baa4963bde090f530b44df3de12

    f48cc01 2024-02-08 Julian Oes - ubx: separate config for jamming monitor
bc72f55 2024-02-08 Julian Oes - sbf: simplify odd define

Co-authored-by: PX4 BuildBot <bot@px4.io>
2024-02-12 08:58:21 -05:00
Daniel AgarandPX4 BuildBot 1d70e32551 Update world_magnetic_model to latest Wed Jan 24 11:14:20 UTC 2024
Co-authored-by: PX4 BuildBot <bot@px4.io>
2024-01-26 09:08:51 -05:00
Daniel Agar 4e0967889c ekf2: add verbose print status (moved out of DEBUG_BUILD) 2024-01-24 21:49:26 -05:00
Daniel AgarandPX4 BuildBot bc9ea95359 Update submodule GPSDrivers to latest Thu Jan 25 00:39:33 UTC 2024
- GPSDrivers in PX4/Firmware (12af7ff9904b2fdde39513c56a3e084eb23bcc7a): https://github.com/PX4/PX4-GPSDrivers/commit/63990d218ec35ea965d634af6a79d3155561b743
    - GPSDrivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/836b24c10e0ccd0067500f367686acac6d34882d
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/63990d218ec35ea965d634af6a79d3155561b743...836b24c10e0ccd0067500f367686acac6d34882d

    836b24c 2023-12-11 bedaberner - ubx: fixed wrong mapping of ubx-sat-nav used parameter

Co-authored-by: PX4 BuildBot <bot@px4.io>
2024-01-24 21:48:40 -05:00
Daniel Agarandbresch 51155f7a29 ekf2: treat inhibited states as "consider states" and remove conservative covariance matrix fixes (#22597)
When a state stops to be estimated it becomes a "consider state". Its value and variance are frozen but its covariance with other states continue to evolve normally.

 - removes conservative accel bias variance limiting
 - force symmetry is skipped after fusion of NED vel/pos (a direct measurement)

---------

Co-authored-by: bresch <brescianimathieu@gmail.com>
2024-01-24 14:14:09 -05:00
Daniel Agar 2c81c9fdea boards: px4/fmu-{v5*,v6*} add dedicated rover board variants (eg px4_fmu-v6x_rover) 2024-01-24 14:06:49 -05:00
Daniel Agar bf7da6430d ekf2: consolidate LPOS & GPOS accuracy methods 2024-01-22 12:34:08 -05:00
Daniel Agarandbresch ed0d26de8a ekf2: improve attitude estimation without horizontal aiding
- fake_pos only if at rest or tilt variances becomes large
 - fake pos: don't run when grav fusion is enabled
 - gravity fusion enabled by default
 - gravity: only fuse when accel norm and lpf norm are consistent

Co-authored-by: bresch <brescianimathieu@gmail.com>
2024-01-17 10:27:25 -05:00
Daniel Agar c3ae7b28c0 matrix: adjust printing for if symmetric (lower triangular only) 2024-01-16 10:20:21 -05:00
Daniel Agar 64f28c4c07 ekf2: delete unused gps error norm field 2024-01-12 10:14:32 -05:00
Daniel Agar 8a031677d5 ekf2: verbose debug print status include state variances 2024-01-11 11:53:20 -05:00
Daniel Agar 4cb293020a ekf2: remove sensor sample uORB::Subscription missed perf counters
- these served their purpose, but are no longer useful
 - still worth keeping the IMU subscription missed perf count to catch any scheduling issues
2024-01-11 11:52:29 -05:00
Daniel Agar 855bf8f0d2 .gitmodules set gz submodule branch 2024-01-11 11:07:33 -05:00
Daniel Agar 8bcba6128a ekf2: fix resetGlobalPosToExternalObservation whitespace 2024-01-11 10:59:56 -05:00
Daniel Agarandbresch d45c3d3407 ekf2: verbose (DEBUG_BUILD) print status with Matrix improved print
* ekf2: verbose print status
 * matrix/Matrix improve print output
 * bold diagonal elements, print ring buffer entry size
 * print in scientific notation when >= 10 to respect max size

---------

Co-authored-by: bresch <brescianimathieu@gmail.com>
2024-01-10 09:46:04 -05:00
Daniel Agar 6495f40ee4 delete old top level config files (dot files, CI, etc) 2024-01-04 11:18:56 -05:00
Daniel Agar b0566cd8aa posix: cmake INSTALL make new GZ models/worlds optional for now
- the entire posix install package needs to be reviewed and tested
2023-12-18 11:49:53 -05:00
Daniel Agar 4b25fad862 lib/timesync: relax warnings
- double required max consecutive counts
 - don't continuously complain about round trip time (RTT) unless
   there's been at least one acceptable round trip (latency < 100 ms)
2023-12-16 16:36:36 -05:00
Daniel Agar 7fa6f4e32f boards: px4/fmu-v6x add dedicated multicopter build 2023-12-16 16:29:52 -05:00
Daniel Agar 808fd67fcb Tools/setup: macos.sh add python-tk for kconfig gui (boardguiconfig) 2023-12-16 16:29:07 -05:00
Daniel Agar dba2d76321 systemcmds/i2c_launcher: fix USER_I2C_LAUNCHER kconfig warning 2023-12-16 16:28:11 -05:00
Daniel Agar f703f07399 drivers/distance_sensor: update kconfig common sensors
- mappydot is EOL
 - LL40LS_PWM is a fairly special case that's not common
2023-12-08 13:32:23 -05:00
Daniel AgarandPX4 BuildBot a9213e3862 Update world_magnetic_model to latest Tue Nov 28 11:14:14 UTC 2023
Co-authored-by: PX4 BuildBot <bot@px4.io>
2023-11-28 11:04:02 -05:00
Daniel AgarandPX4 BuildBot 5af6cf1889 Update submodule GPS Drivers to latest Tue Nov 28 00:39:22 UTC 2023
- GPS Drivers in PX4/Firmware (5ef3ae3f1ec5aecea5842306a63aec054eb599a9): https://github.com/PX4/PX4-GPSDrivers/commit/6e452c2c5b6a718dddc1df2a13eba4a7c729d9f2
    - GPS Drivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/63990d218ec35ea965d634af6a79d3155561b743
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/6e452c2c5b6a718dddc1df2a13eba4a7c729d9f2...63990d218ec35ea965d634af6a79d3155561b743

    63990d2 2023-11-22 Daniel Agar - nmea fix astyle whitespace

Co-authored-by: PX4 BuildBot <bot@px4.io>
2023-11-27 21:05:23 -05:00
Daniel Agar 56bfe41f10 drivers/ins/vectornav: publish estimator_status (only in VN_MODE 1) 2023-11-22 21:42:27 -05:00
Daniel Agar 0dbd7b9176 Jenkins compile remove obsolete target nxp_fmurt1062-v1_default 2023-11-22 11:16:22 -05:00
Daniel AgarandPX4 BuildBot 58d6d03da3 Update submodule devices to latest Sun Nov 19 12:39:11 UTC 2023
- GPS drivers in PX4/Firmware (0f7a34a64dd69ad074b47726eedeef147fe0f700): https://github.com/PX4/PX4-GPSDrivers/commit/b443b79f57c5e89353430940af9e4511ea8eb0b8
 - GPS drivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/6e452c2c5b6a718dddc1df2a13eba4a7c729d9f2
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/b443b79f57c5e89353430940af9e4511ea8eb0b8...6e452c2c5b6a718dddc1df2a13eba4a7c729d9f2

    6e452c2 2023-10-27 Robbie Drage - move NO_MKTIME compilation flags - removes dependency on tm struct being defined without MKTIME - removes unnecessary operations

Co-authored-by: PX4 BuildBot <bot@px4.io>
2023-11-19 11:49:39 -05:00
Daniel Agar 62027b0965 ekf2: remove EKF2_HGT_MODE VerifyParams() transition helpers
- in theory these are helpful to ensure EKF2_HGT_MODE configuration is
   consistent with the relevant aid source (GPS, baro, etc), but it can
   be a little awkward with users having to fight manual parameter
   changes in the right order
2023-11-16 15:02:43 -05:00
Daniel Agar 3b2d766573 ekf2: purge remaining EKF2_AID_MASK references 2023-11-16 09:36:58 +01:00
Daniel Agar 1592aedc11 gitmodules add heatshrink branch 2023-11-10 17:45:47 -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
Daniel Agar d7f388e590 boards: ARK CAN node NuttX flash savings 2023-10-31 09:59:15 -04:00
Daniel Agar 71b9e31005 drivers/osd/msp_osd: use proper EKF status flags instead of solution status bits 2023-10-18 20:55:12 -04: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
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
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
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
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
Daniel Agar 5352a64042 ekf2: symforce derivation allow optionally disabling mag and wind states 2023-10-10 17:31:11 -04:00
Daniel Agar b5f3d089c4 ekf2: mag_fusion remove direct state index usage 2023-10-10 09:18:04 -04:00
Daniel Agar cf4c565e4a ekf2: mag_fusion.cpp cleanup includes 2023-10-10 09:18:04 -04:00
Daniel Agar c85840c4dd ekf2: mag_fusion only set fault status flags if mag_3D updating all states
- other parts of the system are blanket checking for any fault status
   flag
2023-10-10 09:18:04 -04:00
Daniel Agar e58ceba4b1 ekf2: mag_fusion consolidate duplicate error handling 2023-10-10 09:18:04 -04:00
Daniel Agar 28d58a947f ekf2: cleanup more optional mag (CONFIG_EKF2_MAGNETOMETER) 2023-10-09 10:18:02 -04:00
Daniel Agar 5f87f3a046 ekf2: drag fusion add aid source status topic 2023-10-09 09:26:28 -04:00
Daniel Agar 028733e1c7 ekf2: add kconfig to disable wind estimation (off by default) 2023-10-09 09:22:29 -04:00
Daniel Agar 745709717e drivers/imu/analog_devices/adis16507: use bad CRC perf count 2023-10-03 18:06:33 -04:00
Daniel Agar b817eb0370 ekf2: collect_gps() don't throttle updates until WMM set initially 2023-09-29 09:37:30 +02:00
Daniel Agar 1e594747ab ekf2: fix WMM NAN checks
- if any of the stored WMM is NAN then it should be updated
2023-09-29 09:37:30 +02:00
Daniel Agar 14a967e2ca ekf2: remove aid src status fusion_enabled flag 2023-09-26 10:30:16 -04:00
Daniel Agar 619616b9f0 vscode add Makefile extension to recommended and devcontainer.json 2023-09-25 12:26:29 -04:00
Daniel Agar aa97ef9d50 EKF: covariance remove extra semicolon 2023-09-25 12:26:12 -04:00
Daniel Agar 61aee73b91 boards: px4_fmu-v5_stackcheck disable common RC to save flash 2023-09-22 11:19:29 -04:00
Daniel Agar 8a9a303354 ekf2: update include guards 2023-09-19 09:37:50 -04:00
Daniel Agar d351f16d04 drivers/optical_flow/paa3905: backup scheduling to fetch 0 flow
- this sensor provides a MOTION interrupt used for default scheduling, but we also need to publish
   zero flow information
2023-09-18 12:46:39 -04:00
Daniel Agar efbed3bfc1 sensors/vehicle_optical_flow: don't publish interval lower than configured rate 2023-09-18 12:46:39 -04:00
Daniel Agar 380a42fcbf drivers/optical_flow/paw3902: backup scheduling to fetch 0 flow
- this sensor provides a MOTION interrupt used for default scheduling, but we also need to publish
   zero flow information
2023-09-18 12:46:39 -04:00
Daniel Agar 6bd13c5514 boards/cubepilot: cubeorange and cubeorangeplus include VectorNav INS 2023-09-15 16:32:40 -04:00
Daniel Agar b2f258f7a4 drivers/ins/vectornav: add new VN_MODE parameter for full INS support 2023-09-15 16:32:40 -04:00
Daniel Agar 153f7bbced ekf2: update all copyright headers 2023-09-15 10:02:09 -04:00
Daniel Agar 1e9f0ad2c6 ekf2: add kconfig for barometer support (enabled by default) 2023-09-15 10:02:09 -04:00
Daniel Agar f0224c5104 boards: bitcraze crazyflie21 disable ekf2 magnetometer support 2023-09-15 10:02:09 -04:00
Daniel Agar 7589ee00e8 boards: holybro kakutef7 switch to ekf2 2023-09-15 10:02:09 -04:00
Daniel Agar 10b54d08fc ekf2: add dedicated EKF2_CONFIG_TERRAIN in kconfig
- new estimator_aid_src_terrain_range_finder for HAGL RNG
2023-09-15 10:02:09 -04:00
Daniel Agar 845b01a00d ekf2: add kconfig for magnetometer support (enabled by default) 2023-09-15 10:02:09 -04:00
Daniel Agar 36010a9a7c ROMFS: rc.fw_defaults set more conservative range finder requirements
- for FW the primary range finder usage is estimating the distance to
   the ground (terrain estimate) to guide the landing approach and initiate flare
 - increase EKF2_RNG_QLTY_T default 1->3 seconds
2023-09-13 12:14:13 -04:00
Daniel Agar 016db84d69 ekf2: covariance update use IMU sample dt (#22032)
- usually the delta angle and delta velocity dt is the same, but they can be slightly different
2023-09-13 09:58:56 -04:00
Daniel Agar 7d497d4959 msg: set all ORB_QUEUE_LENGTH to actual rounded value 2023-09-08 15:28:16 -04:00
Daniel Agar 892d507ca7 integrationtests: MAVROS mission_test.py relax yaw estimate STD check for now (#22061)
- ekf2 heading first initializes to 0 degrees, then immediately resets to mag heading once a few samples are accumulated
 - the yaw standard deviation check could be adjusted to exclude this brief (<1s) initial period
2023-09-08 15:27:39 -04:00
Daniel Agar 3476831246 dataman: explicitly check file existence to init
- on NuttX if the SD card was just cleared (quick format) it's possible for the newly created uninitialized dataman file to still have the previous compatibility key, which causes the initialization to be skipped
2023-09-08 10:16:24 -04:00
Daniel Agar 14ef376721 drivers/uwb/uwb_sr150: don't enable by default 2023-09-08 09:20:01 -04:00
Daniel Agar de9dfb6b74 .vscode: settings.json default ros.distro 2023-09-07 18:57:37 -04:00
Daniel Agar 0f260fc26c ekf2: gravity fusion don't use any accel samples that are clipping 2023-08-28 14:35:13 -04:00
Daniel Agar 2c76109a94 ekf2: drag fusion don't use any accel samples that are clipping 2023-08-28 14:35:13 -04:00
Daniel Agarandbresch d75bb62a65 ekf2: separate mag and mag heading control logic (#21212)
- split mag_3d into new standalone mag fusion and mag fusion allowed to update all states (full mag_3d)
 - new dedicated control logic for mag/mag_3d fusion and standalone mag heading fusion
 - if WMM available use for mag_I and mag_B init
 - mag states reset if external yaw reset (yaw estimator, GPS yaw, etc)
 - mag reset if declination changed (eliminate _mag_yaw_reset_req)
 - mag fusion (but not mag_hdg or mag_3d) can be active during gps_yaw or ev_yaw (if yaw aligned north)

Co-authored-by: bresch <brescianimathieu@gmail.com>
2023-08-04 10:39:16 -04:00
Daniel Agar 95b3005679 lib/world_magnetic_model: add constants for min/max/mean/median field strength
- add geo_magnetic_tables.hpp comments for blackout zone warnings
 - reduce unnecessary precision in generated tests (should reduce future update noise)
 - update copyright year
2023-07-28 17:14:25 -04:00