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 Agar and bresch
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
Daniel Agar and Matthias Grob
88e7452492
commander: collapse ArmStateMachine and simplify
...
- simplify vehicle_status.arming_state down to just armed and disarmed
- ARMING_STATE_INIT doesn't matter
- ARMING_STATE_STANDBY is effectively pre_flight_checks_pass
- ARMING_STATE_STANDBY_ERROR not needed
- ARMING_STATE_SHUTDOWN effectively not used (all the poweroff/shutdown calls loop forever in place)
- ARMING_STATE_IN_AIR_RESTORE doesn't exist anymore
- collapse ArmStateMachine into commander
- all requests already go through Commander::arm() and Commander::dismarm()
- other minor changes
- VEHICLE_CMD_DO_FLIGHTTERMINATION undocumented (unused?) test command (param1 > 1.5f) removed
- switching to NAVIGATION_STATE_TERMINATION triggers parachute command centrally (only if armed)
---------
Co-authored-by: Matthias Grob <maetugr@gmail.com >
2023-07-28 17:12:01 -04:00
Daniel Agar and bresch
84b6b472b4
ekf2: change delta angle and delta velocity bias states to accel and gyro bias ( #21901 )
...
* ekf2-test: remove outdated codegen comparison
The definition of states changed so the comparison with the old
derivation cannot work anymore.
---------
Co-authored-by: bresch <brescianimathieu@gmail.com >
2023-07-28 09:31:44 -04:00
Daniel Agar
444e5d2d4a
boards: px4_fmu-v5_debug readd systemcmds/sd_stress
2023-07-27 14:48:41 -04:00
Daniel Agar and PX4 BuildBot
e468798e91
Update world_magnetic_model to latest Thu Jul 27 11:14:06 UTC 2023
...
Co-authored-by: PX4 BuildBot <bot@px4.io >
2023-07-27 10:34:11 -04:00
Daniel Agar and PX4 BuildBot
d928a3a8d0
Update submodule GPSDrivers to latest Thu Jul 27 12:39:18 UTC 2023 ( #21897 )
...
- GPSDrivers in PX4/Firmware (9762316d8a0a84b5cb8563ab4c289416421d2801): https://github.com/PX4/PX4-GPSDrivers/commit/261480cb78a3ba60cdda2dcc95b874ebc2c9312c
- GPSDrivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/b94378bcbbf3339670bda1f97820d6335f6937f5
- Changes: https://github.com/PX4/PX4-GPSDrivers/compare/261480cb78a3ba60cdda2dcc95b874ebc2c9312c...b94378bcbbf3339670bda1f97820d6335f6937f5
b94378b 2023-07-26 Eric Katzfey - Fixing UBlox M10 support
Co-authored-by: PX4 BuildBot <bot@px4.io >
2023-07-27 10:33:22 -04:00
Daniel Agar
82962acd5c
sensors/vehicle_magnetometer: add mag calibration PX4_DEBUG output
2023-07-26 12:42:51 -04:00
Daniel Agar
d65ddbf810
simulation/sensor_gps_sim: lower GPS velocity variance
...
- for a multicopter EKF2 default required GPS speed accuracy is 0.5 m/s
2023-07-26 12:42:18 -04:00
Daniel Agar
56b59dc155
Revert "jenkins ci: listener topic list update"
...
This reverts commit 190371c6ee .
2023-07-25 18:39:28 -04:00
Daniel Agar
19d6e69b0b
ekf2: allow yaw estimator to perform yaw alignment
...
This can be useful if using a full EV + GNSS setup and you start indoors, then fly outside. Once GPS is good and the only missing requirement is yaw alignment the yaw estimator reset is performed and EV yaw will automatically stop itself.
2023-07-25 10:58:45 -04:00
Daniel Agar
6d4ec4e623
Jenkinsfile-compile increase timeout
2023-07-25 10:56:45 -04:00
Daniel Agar
1ef9ee7622
ekf2: simplify fuseYaw() signature and use consistently
...
- make it safe to call for other aid sources, no EKF state is changed unless fusion_enabled
2023-07-24 10:34:00 -04:00
Daniel Agar and bresch
01bcc47fb1
ekf2: apply yaw reset to vision attitude error filter
...
- set vision attitude error filter uninitialized if vision data stops
- ev error filter is only compiled when ev config is selected
Co-authored-by: bresch <brescianimathieu@gmail.com >
2023-07-24 10:32:33 -04:00
Daniel Agar
e878d0c0ef
Jenkinsfile-compile fix invalid boards
2023-07-24 09:50:54 -04:00
Daniel Agar
c8738e3a0d
ekf2: mag control cleanup mag reset
2023-07-24 09:52:52 +02:00
Daniel Agar
57b3c26ab0
Tools/simulation/gz: load ApplyLinkWrench plugin by default ( #21874 )
...
- this can be useful for applying arbitrary forces via ignition transport like hand launching a vehicle by throwing it in the air
2023-07-23 11:05:51 -04:00
Daniel Agar and PX4 BuildBot
ec9dce2e89
Update world_magnetic_model to latest Tue Jul 18 11:14:09 UTC 2023
...
* Update world_magnetic_model to latest Tue Jul 18 11:14:09 UTC 2023
* [AUTO COMMIT] update change indication
Co-authored-by: PX4 BuildBot <bot@px4.io >
2023-07-18 14:29:08 -04:00
Daniel Agar
b4687c27fe
Jenkinsfile-compile board updates
2023-07-18 13:53:32 -04:00
Daniel Agar
45968c614e
airspeed_selector: fix aspd typos
2023-07-17 20:37:46 -04:00
Daniel Agar
c0a56ce268
airspeed_selector: fix groundspeed typos
2023-07-17 20:37:46 -04:00
Daniel Agar
d9ae2ed7ac
ekf2: regenerate yaw estimator symforce
...
- remove underscore uppercase variable naming that can be problematic
2023-06-19 21:00:25 -04:00
Daniel Agar
6535cc758e
ekf2: fuse mag update last heading fuse time if updating all states
...
- handle synthetic z special case
2023-05-26 08:48:08 -06:00
Daniel Agar
bb0f2875a9
ekf2: disable multi-EKF across mags by default (H7 & SITL) for now
...
- re-enable once the estimator selector respects configured mag
priority (at least initially) or is otherwise able to automatically
prefer an external mag over internal
- for SITL disabled because the full matrix of esitmator instances
(IMUs X mags) was too many topics for logger currently
2023-05-19 18:35:57 -06:00
Daniel Agar
bcf87b4b35
Tools/HIL/test_airframes.sh remove gps stop (not present everywhere)
2023-05-19 10:35:26 -04:00
Daniel Agar
8222cbca2c
ekf2: last range sensor simple timestamp protection
...
- sanity check againist potential timestamp issues with incoming
distance_sensor data
2023-05-09 12:02:42 -04:00
Daniel Agar and PX4BuildBot
f0bea542d5
Update world_magnetic_model to latest ( #21533 )
...
* Update world_magnetic_model to latest Mon May 1 11:14:06 UTC 2023
* [AUTO COMMIT] update change indication
Co-authored-by: PX4BuildBot <PX4BuildBot@users.noreply.github.com >
2023-05-01 08:59:55 -04:00
Daniel Agar
b8b80e409f
boards: px4_fmu-v5x_test remove drivers/telemetry to save flash
2023-04-27 20:14:26 +02:00
Daniel Agar
5b0b46ff55
boards: px4_fmu-v5x_default disable LPE and ATTQ to save flash
2023-04-27 20:14:26 +02:00
Daniel Agar
a11cced4b2
drivers/ins/vectornav: fix attitude (quaternion) and GPS packet extract
2023-04-17 11:18:00 -04:00
Daniel Agar
1234aae3df
gimbal: output RC fix actuator_controls_2 -> gimbal_controls regression ( #21460 )
...
- small typo introduced in https://github.com/PX4/PX4-Autopilot/pull/20837
2023-04-11 22:03:42 +02:00
Daniel Agar
0fa0e2f583
drivers/ins/vectornav: comment out redefined and remove -Wno-error
2023-04-06 14:06:57 -04:00
Daniel Agar
cbc067f235
boards: include INS drivers by default on PX4 FMU (eg VectorNav VN-100, VN-200, VN-300)
2023-04-06 14:06:57 -04:00
Daniel Agar
13487c654d
ROMFS: add SITL generic iris airframe (SYS_AUTOSTART 10016) for backwards compatibility (airsim, etc) ( #21410 )
2023-04-01 20:41:33 +02:00
Daniel Agar
4d9369dc67
Update world_magnetic_model to latest Fri Mar 24 11:14:06 UTC 2023
2023-03-24 09:39:26 -04:00
Daniel Agar
cc2b367c0b
drivers/uavcannode: fix typo (hydrometer->hygrometer)
2023-03-23 22:06:55 -04:00
Daniel Agar
32a5bd32ad
ekf2: add kconfig option to enable/disable range finder fusion (and terrain estimator)
2023-03-21 11:25:34 -04:00
Daniel Agar
0784901a66
ekf2: add kconfig option to enable/disable optical flow fusion
2023-03-21 11:25:34 -04:00
Daniel Agar
1524bd39b5
.gitignore: ignore generate top level log/ folder (colcon)
2023-03-20 11:06:12 -04:00
Daniel Agar
4363b09421
ekf2: add kconfig option to enable/disable external vision fusion
2023-03-20 10:12:17 -04:00
Daniel Agar
d47f96f1a5
ekf2: add kconfig option to enable/disable AUX velocity fusion
2023-03-20 10:12:17 -04:00
Daniel Agar
4270a303ab
ekf2: add kconfig option to enable/disable airspeed and sideslip fusion
2023-03-20 10:12:17 -04:00
Daniel Agar
98ff1afc19
ekf2: add kconfig option to enable/disable GNSS yaw
2023-03-20 10:12:17 -04:00
Daniel Agar
8b2205810b
ekf2: add kconfig option to enable/disable baro compensation
2023-03-20 10:12:17 -04:00
Daniel Agar
fe0e3acf09
ekf2: add kconfig option to enable/disable drag fusion
2023-03-20 10:12:17 -04:00
Daniel Agar
6ec2b902cc
ROMFS: only copy bootloader binary if systemcmds/bl_update included
2023-03-16 09:43:56 -04:00
Daniel Agar
f0a95f9572
ekf2: add new kconfig option for multi-EKF
...
- disabled if flash constrained or memory constrained
2023-03-15 09:32:47 -04:00
Daniel Agar
19a2b4ec31
ekf2: GNSS yaw only reset test ratio for new samples
...
- otherwise external test ratio monitoring could trigger a false positive
2023-03-14 21:49:24 -04:00
Daniel Agar and Matthias Grob
9be8f81d75
flight_mode_manager: StickAccelerationXY protect from NAN velocity reset
...
Co-authored-by: Matthias Grob <maetugr@gmail.com >
2023-03-10 08:17:20 -05:00
Daniel Agar
435c799f57
uORB: print more decimal places for float32 and float64
2023-03-10 07:39:34 +01:00
Daniel Agar
b3cc945a5a
ekf2: merge runOnGroundYawReset() + runInAirYawReset() into unified magReset()
2023-03-09 09:08:27 -05:00
Daniel Agar
c1f244a6fd
ekf2: decrease EKF2_MAG_YAWLIM default 0.25 -> 0.2 rad/s ( #21264 )
2023-03-09 09:07:54 -05:00
Daniel Agar
60b85c2e1a
mavlink: add kconfig option to disable UAVCAN parameter bridge
...
- depends on DRIVERS_UAVCAN
2023-03-08 19:30:06 -05:00
Daniel Agar
4dda5a97d8
ekf2: mag_3d check mag bias variance before allowed to update all states (orientation)
2023-03-08 15:12:48 -05:00
Daniel Agar
d45aeae1de
ekf2: add and share centralized method to clear inhibited state Kalman gains
2023-03-07 13:27:57 -05:00
Daniel Agar
3fac85369e
ekf2: gps control use adjusted velocity and position for reset
2023-03-06 09:03:39 -05:00
Daniel Agar
74130d7f71
ucdr msg template add timestamp protections
...
- if timestamp (or timestamp_sample) unpopulated fill it with current hrt_absolute_time()
- if using provided timestamp don't allow it to exceed current hrt_absolute_time()
2023-03-02 09:52:53 -05:00
Daniel Agar
bde194fb12
simulation/gz_bridge: local_position_groundtruth include heading ( #21224 )
2023-03-01 18:44:31 +01:00
Daniel Agar
b5a6d6db0d
ekf2: fix controlEvYawFusion() yaw reset
2023-02-24 16:59:59 -05:00
Daniel Agar
a06a635da3
drivers/inv/vectornav: fix official vectornav library NuttX support
...
- vectornav library (libvnc) fixed for NuttX
- open serial port O_NONBLOCK (like __APPLE__)
- set serial port baud rate with cfsetspeed (like __APPLE__)
- vectornav backend thread increase stack and run at higher priority (SCHED_FIFO)
2023-02-24 16:59:38 -05:00
Daniel Agar
98263de17b
ekf2: move aux vel helpers to auxvel_fusion.cpp
2023-02-22 09:08:33 -05:00
Daniel Agar
a199df78cc
ekf2: move mag control helpers to mag_control.cpp
2023-02-22 09:08:33 -05:00
Daniel Agar
c20e4e4421
ekf2: move stopFlowFusion() to optical_flow_control.cpp
2023-02-22 09:08:33 -05:00
Daniel Agar
3a317ec18c
ekf2: move gps helpers to gps_control.cpp
2023-02-22 09:08:33 -05:00
Daniel Agar
9ec3f30ae1
ekf2: move gps buffer pop to controlGpsFusion()
...
- controlGpsFusion() now owns yaw estimator update
2023-02-22 09:08:33 -05:00
Daniel Agar
a867bb7d88
ekf2: let controlAirDataFusion() update yaw estimator TAS
2023-02-22 09:08:33 -05:00
Daniel Agar
60856ebe62
ekf2: move range buffer pop to controlRangeHeightFusion()
2023-02-22 09:08:33 -05:00
Daniel Agar
08f111f694
ekf2: consolidate airspeed fusion logic and helpers
...
- pass new airspeed sample around when available
- can't completely eliminate _airspeed_sample_delayed until resetWind()
called from sideslip fusion is updated
2023-02-22 09:08:33 -05:00
Daniel Agar
241cee2bb7
ekf2: move airspeed buffer pop to controlAirDataFusion
2023-02-22 09:08:33 -05:00
Daniel Agar
0711a34d0e
ekf2: move flow buffer pop to controlOpticalFlowFusion
2023-02-22 09:08:33 -05:00
Daniel Agar
ed8cef6cf0
ekf2: move controlAuxVelFusion control.cpp -> auxvel_fusion.cpp
2023-02-22 09:08:33 -05:00
Daniel Agar
b4e845d7c0
ekf2: move controlDragFusion control.cpp -> drag_fusion.cpp
2023-02-22 09:08:33 -05:00
Daniel Agar
c08a387c5a
ekf2: move controlBetaFusion control.cpp -> sideslip_fusion.cpp
2023-02-22 09:08:33 -05:00
Daniel Agar
d61b8c21b2
ekf2: move controlAirDataFusion() control.cpp -> airspeed_fusion.cpp
2023-02-22 09:08:33 -05:00
Daniel Agar
d840f7f39f
ekf2: move controlGpsYawFusion() control.cpp -> gps_control.cpp
2023-02-22 09:08:33 -05:00