Daniel Agar
baa05b2631
drivers/pwm_out: remove custom module boilerplate (dual output bank handling)
2022-09-09 09:14:09 -04:00
Daniel Agar
ce337a3d80
delete unused PWM IOCTLs
2022-09-09 09:14:09 -04:00
Daniel Agar
bcdd2203d3
delete systemcmds/motor_test and msg/test_motor.msg
2022-09-09 09:14:09 -04:00
Daniel Agar
72efe84b80
delete MOT_ORDERING
2022-09-09 09:14:09 -04:00
Daniel Agar
a7bbcd5b04
delete lib/mixer and mixer_module static mixing
2022-09-09 09:14:09 -04:00
Daniel Agar
0019ffbea6
delete drv_mixer.h
2022-09-09 09:14:09 -04:00
Daniel Agar
d3312f955f
delete systemcmds/pwm
2022-09-09 09:14:09 -04:00
Daniel Agar
5dd1e5a018
delete systemcmds/mixer
2022-09-09 09:14:09 -04:00
Daniel Agar
cac9c51ac8
ROMFS: purge old mixing system
...
- SYS_USE_IO is now off by default (enabled by default per board)
2022-09-09 09:14:09 -04:00
Daniel Agar
d996af4647
ekf2: pass gpsSample around where required
...
- this minimizes potential misuse accessing _gps_sample_delayed and
makes the dependency clear
2022-09-05 10:27:19 -04:00
Daniel Agar
7bbdc220f5
ekf2: initialiseFilter() simplify mag heading init and resetQuatStateYaw
...
- most of resetQuatStateYaw doesn't apply to initial heading init, so
removing the special case keeps it simple
2022-09-02 08:46:10 -04:00
Daniel Agar
5dfd2f39ef
boards/cubepilot/cubeorange: initialize all I2C pins immediately
2022-09-01 20:46:09 -04:00
Daniel Agar
e93a3a2a3a
ak09916: enable retries and reset perf count
2022-09-01 20:45:20 -04:00
Daniel Agar
f66b5ce204
simulation: ignition bridge allow IMU or pose callbacks to update system time if newer than clock
...
* requires HRT lockstep changes to eliminate offset (PR #20146 )
2022-09-01 20:42:21 -04:00
Daniel Agar
c52f2143d2
posix lockstep remove HRT offset and use full sim time
2022-09-01 20:40:37 -04:00
Daniel Agar
3da0293369
simulator_ignition_bridge: init error handling
2022-09-01 18:54:59 -04:00
Daniel Agar
5cb44a521c
ekf2: estimator interface handle sample time with signed integers
...
- this prevents unsigned integer overflow if the timestamp is smaller
than the configured delay (mostly a simulation edge case)
2022-09-01 09:47:29 -04:00
Daniel Agar
1948c5057a
ekf2: handle all time on delayed horizon (except for newest sample checks)
...
- a growing number of samples come into the backend with the time
already delayed (sensor's interrupt setting timestamp sample)
- if the incoming timestamp is already delayed then the new data checks
(relative to latest IMU) can be slightly wrong
- handle almost all timestamps and checks on delayed time horizon,
except for explicit checks of new samples
- isRecent() and isTimedOut() helpers use delayed time
- add new isNewestSampleRecent() used for checking the incoming
timestamp of the incoming (adjusted) data
2022-08-31 08:52:30 -04:00
Daniel Agar
9b0b0d1168
ekf2: update test change indication csv
2022-08-25 15:55:45 -04:00
Daniel Agar
2786239ca6
Jenkinsfile: HIL remove delete airframe from test
2022-08-25 09:48:49 -04:00
Daniel Agar
4040e4cdf2
simulation organization and cleanup
...
- new modules/simulation directory to collect all simulators and related modules
- new Tools/simulation directory to collect and organize scattered simulation submodules, scripts, etc
- simulation module renamed to simulator_mavlink
- sih renamed to simulator_sih (not a great name, but I wanted to be clear it was a simulator)
- ignition_simulator renamed to simulator_ignition_bridge
- large sitl_target.cmake split by simulation option and in some cases pushed to appropriate modules
- sitl targets broken down to what's actually available (eg jmavsim only has 1 model and 1 world)
- new Gazebo consistently referred to as Ignition for now (probably the least confusing thing until we fully drop Gazebo classic support someday)
2022-08-25 09:10:03 -04:00
Daniel Agar
b58f70726f
ekf2: scale delta angle and delta velocity bias to particular IMU sample
2022-08-23 21:06:13 -04:00
Daniel Agar and Jaeyoung-Lim
cfc579542e
new Ignition Gazebo simulation interface architecture ( #20057 )
...
- much simpler direct interface using Ignition Transport
- in tree models and worlds
- control allocation output configuration, no more magic actuator mapping to mavlink and back
- currently requires no custom Gazebo plugins (keeping things as lightweight and simple as possible)
Co-authored-by: Jaeyoung-Lim <jalim@ethz.ch >
2022-08-22 10:58:19 -04:00
Daniel Agar and Kabir Mohammed
1c72f86761
Update src/drivers/imu/analog_devices/adis16470/ADIS16470.cpp
...
Co-authored-by: Kabir Mohammed <kabir@corvus-robotics.com >
2022-08-16 08:40:43 -04:00
Daniel Agar
49d87f1907
adis16470: fix accel and gyro scaling
2022-08-16 08:40:43 -04:00
Daniel Agar
7f2fea1cca
mpu9250: try all I2C addresses if not manually specified
2022-08-09 13:06:40 -04:00
Daniel Agar
7c809f034d
replay: ReplayEkf2 disable parameter auto save
...
- not needed and silences a startup error
2022-08-08 21:27:47 -04:00
Daniel Agar
34dee09b74
ekf2: replay fixes, don't use HRT for timeout checks
...
- this interferes with current ekf2 replay where the latest IMU sample
is effectively the current timestamp
2022-08-08 21:27:47 -04:00
Daniel Agar
1c49a4349f
ekf2: force skip multi-EKF config if replay is enabled
2022-08-08 21:27:47 -04:00
Daniel Agar
66b55d9d0a
ekf2: fix yaw estimator velocity accuracy
...
- additionally require GPS speed accuracy is within EKF2_REQ_SACC
2022-08-08 21:27:01 -04:00
Daniel Agar
0bce1ef573
drivers/imu: new TDK IIM-42652 IMU support
2022-08-08 13:51:39 -04:00
Daniel Agar
bce4237963
move ekf2 Matrix helper utilities to mathlib
2022-08-05 09:58:07 -04:00
Daniel Agar and Mathieu Bresciani
dfdfbbfa9c
msg/vehicle_odometry.msg: simplify covariance handling and update all usage ( #19966 )
...
- replace float32[21] URT covariances with smaller dedicated position/velocity/orientation variances (the crossterms are unused, awkward, and relatively costly)
- these are easier to casually inspect and more representative of what's actually being used currently and reduces the size of vehicle_odometry_s quite a bit
- ekf2: add new helper to get roll/pitch/yaw covariances
- mavlink: receiver ODOMETRY handle more frame types for both pose (MAV_FRAME_LOCAL_NED, MAV_FRAME_LOCAL_ENU, MAV_FRAME_LOCAL_FRD, MAV_FRAME_LOCAL_FLU) and velocity (MAV_FRAME_LOCAL_NED, MAV_FRAME_LOCAL_ENU, MAV_FRAME_LOCAL_FRD, MAV_FRAME_LOCAL_FLU, MAV_FRAME_BODY_FRD)
- mavlink: delete unused ATT_POS_MOCAP stream (this is just a passthrough)
Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com >
2022-08-04 12:55:21 -04:00
Daniel Agar
41d9c3dd2a
ekf2: add AUX velocity aid src status
...
- also includes velocity and position helpers for using estimator aid
source status messages that will later be used for GPS, EV, etc
2022-07-29 12:02:31 -04:00
Daniel Agar
a397c09e59
ekf2: use estimator_aid_src for all yaw sources (mag, gnss, ev)
2022-07-29 11:20:48 -04:00
Daniel Agar
9ed861e0a3
lib/mixer_module: split functions into separate headers
...
- this arguably improves visibility/discoverability
2022-07-28 08:08:58 +02:00
Daniel Agar
38c02ea29a
wind_estimator: cmake add symforce generation helper target (wind_estimator_generate_airspeed_fusion)
2022-07-27 08:19:40 -04:00
Daniel Agar
32c6ec061e
sensors: add kconfig options to skip angular velocity and acceleration
2022-07-21 11:27:09 -04:00
Daniel Agar
70e95812e7
ekf2: reset mag_lpf (by zeroing _mag_counter) when resetting mag bias (or changing mags)
...
- so that there's new filtered data avaiable for reset
2022-07-21 09:24:28 -04:00
Daniel Agar
ecdade3638
ekf2: mag in air reset fall back to regular resetMagHeading() if realignYawGPS() fails
2022-07-21 09:24:28 -04:00
Daniel Agar
05133aed27
ekf2: clear test ratios, flags, etc when stopping mag fusion
2022-07-21 09:24:28 -04:00
Daniel Agar
65a587e56a
ekf2: mag fusion don't update all states if mag_fault or mag_field_disturbed
2022-07-21 09:24:28 -04:00
Daniel Agar
a41a0e7e80
ekf2: resetMagHeading() split out simple init case
2022-07-21 09:24:28 -04:00
Daniel Agar
9efadad06a
ekf2: move checkMagFieldStrength() to magFieldStrengthDisturbed() const method
2022-07-21 09:24:28 -04:00
Daniel Agar
a7f573e150
ekf2: delete isStrongMagneticDisturbance()
2022-07-21 09:24:28 -04:00
Daniel Agar
e6e27e694e
ekf2: delete isYawResetAuthorized()
2022-07-21 09:24:28 -04:00
Daniel Agar
0f1f6daa1a
ekf2: delete isMagBiasObservable()
2022-07-21 09:24:28 -04:00
Daniel Agar
d160229f47
ekf2: delete isYawAngleObservable()
2022-07-21 09:24:28 -04:00
Daniel Agar
b0c979f745
ekf2: add copyright header to EKFGSF_yaw and utils
2022-07-21 09:24:28 -04:00
Daniel Agar
4fee059696
ekf2: simplify mag yaw reset request when transitioning to mag enabled
2022-07-21 09:24:28 -04:00
Daniel Agar
f254b55523
ekf2: add mag fusion timestamps
2022-07-21 09:24:28 -04:00
Daniel Agar
2f3cb97872
sensors/vehicle_magnetometer: don't advertise vehicle_magnetometer instance if mag has been disable
...
- if using multi-EKF across all magnetometers then an instance of
vehicle_magnetometer is advertised immediately for every sensor_mag
instance
- this can become problematic if EKF2 multi-mag is enabled, but with
only 1 IMU (EKF2_MULTI_MAG) because you will be stuck with no magnetometer data
2022-07-20 01:18:19 -04:00
Daniel Agar
e5be0e776e
ekf2: if multi-mag disabled (EKF2_MULTI_MAG <= 1) properly re-enable sensors hub selection (SENS_MAG_MODE)
...
- this prevents potential misconfiguration if trying to disable ekf2 multi mag
2022-07-20 01:16:55 -04:00
Daniel Agar
8ccd8fbed1
px4io: minimal backup scheduling regardless of dynamic mixing
...
- even if there's no configured output we still need to run to grab RC
data
2022-07-20 01:15:36 -04:00
Daniel Agar
8f8615e6c2
delete CBRK_RATE_CTRL
2022-07-20 01:14:53 -04:00
Daniel Agar
14df1ee917
boards: px4_fmu-v5x_rtps disable systemcmds/gpio to save flash
2022-07-20 01:05:28 -04:00
Daniel Agar
2ece92abd0
sagetech_mxs: module.yaml remove invalid default
2022-07-20 01:00:15 -04:00
Daniel Agar
ace80e2b9d
fw_att_control: add simple backup scheduling if vehicle_attitude unavailable (or stops)
2022-07-20 00:53:37 -04:00
Daniel Agar
39453405a0
ekf2: cleanup zero innovation heading fusion
...
- refactor updateQuaternion() to compute the yaw jacobian directly (respecting the rotation sequence determination)
- fuseHeading()/fuseYaw321()/fuseYaw312() helpers are eliminated and now mag heading fusion and EV yaw fusion compute the innovation in place
- clear up logic for performing zero innovation heading fusion when quaternion variance exceeds threshold (no more _is_yaw_fusion_inhibited flag manipulation)
- when at rest continue fusing last static heading with very low variance even if other heading sources are active
2022-07-19 11:58:27 -04:00
Daniel Agar
1a513153be
ekf2: update range sample fix ekf2_timestamps
...
- this is necessary to use distance_sensor data in replay
2022-07-18 14:39:12 -04:00
Daniel Agar
c71cc5b815
drivers/imu/bosch: new BMI085 driver
...
- very similar to the BMI088 with minor differences in accel range
2022-07-14 18:20:13 -04:00
Daniel Agar
077547f31e
rm3100: fix trivial whitespace style failure
2022-07-14 14:44:59 -04:00
Daniel Agar
ea4a1bfb6a
sagetech_mxs: don't run by default
2022-07-14 10:20:20 -04:00
Daniel Agar
a2f83269e9
airspeed_selector: don't consider vehicle_local_position valid if dead_reckoning
2022-07-13 09:01:33 +02:00
Daniel Agar
ac209c2e78
ekf2: vehicle_local_position add dead_reckoning flag
2022-07-13 09:01:33 +02:00
Daniel Agar
e99da22cbe
delete CBRK_VELPOSERR circuit breaker
2022-07-12 13:51:13 -04:00
Daniel Agar
19b9b052ab
uavcan: GNSS optionally publish RTCMStream or MovingBaselineData
2022-07-12 08:15:15 -04:00
Daniel Agar
a73efd9c4f
NuttX carry minimal c++ cmath (replacing Matrix stdlib_imports.hpp)
2022-07-12 08:05:06 -04:00
Daniel Agar
fe22167512
differential_pressure/sdp3x: sdp3x_main fix 'keep running' regression
2022-07-12 09:11:57 +02:00
Daniel Agar
e1933f6ade
ROMFS: execute rc.autostart (airframes) before starting dataman
2022-07-07 11:37:39 -04:00
f591988f32
drivers/actuators: modalai_esc driver
...
Co-authored-by: Travis Bottalico <travis@modalai.com >
Co-authored-by: akushley <akushley>
2022-07-07 10:32:52 -04:00
Daniel Agar
fe9af6769c
commander add GPS warnings (GPS invalid if flying and jamming critical)
2022-07-07 10:24:11 -04:00
Daniel Agar
15223009d2
combine sensor_gps + vehicle_gps_position msgs (keeping separate topics)
2022-07-07 10:24:11 -04:00
Daniel Agar
efde738826
ekf2: update EKF2_EV_DELAY default to 0
2022-07-04 11:44:53 -04:00
Daniel Agar
c9b6047124
platforms/nuttx/CMakeLists.txt add STM32H743VI SVD/debug
2022-07-03 11:38:01 -04:00
Daniel Agar
7f76761657
uavcannode: schedule to run on log_message publications
...
- this is a precaution to minimize message latency and potential lost messages
2022-07-01 09:18:17 -04:00
Daniel Agar
ab4e10dc26
paa3905: update scaling from datasheet
2022-06-21 16:59:14 -04:00
Daniel Agar
07e28fda7a
paw3902: update scaling from datasheet
2022-06-21 16:59:14 -04:00
Daniel Agar
dc8ed97809
ekf2: optical flow control limits constrain speed using HAGL max
2022-06-21 12:52:25 -04:00
Daniel Agar and Matthias Grob
15747239c1
mc_pos_control: always respect position estimate vxy_max if set
...
Co-authored-by: Matthias Grob <maetugr@gmail.com >
2022-06-21 12:52:25 -04:00
Daniel Agar
5d2dfadb0e
boards: px4_fmu-v5_uavcanv0periph disable modules to save flash
2022-06-20 21:31:27 -04:00
Daniel Agar
e5f081d9ac
drivers/optical_flow/paa3905: cleanup/overhaul
...
- remove internal accumulation and publish every valid raw sample synchronized with sensor
- store timestamp_sample from motion interrupt
- improve timing requirements from datasheet (minimum delays after register read/write)
2022-06-20 20:56:56 -04:00
Daniel Agar
1fbe3c4ab3
drivers/optical_flow/paw3902: cleanup/overhaul
...
- remove internal accumulation and publish every valid raw sample synchronized with sensor
- store timestamp_sample from motion interrupt
- improve timing requirements from datasheet (minimum delays after register read/write)
2022-06-20 20:56:56 -04:00
Daniel Agar and alexklimaj
d5839e2dd5
optical flow sensor pipeline overhaul
...
- all sources of optical flow publish sensor_optical_flow
- sensor_optical_flow is aggregated by the sensors module, aligned with integrated gyro, and published as vehicle_optical_flow
Co-authored-by: alexklimaj <alex@arkelectron.com >
2022-06-20 20:56:56 -04:00
Daniel Agar
450fcca8b8
drivers/differential_pressure/Kconfig: remove ets and ms4515 from common sensors to save flash
2022-06-20 13:04:19 -04:00
Daniel Agar
8d2e8ef422
boards: px4_fmu-v5_test disable gyro_fft module to save flash
2022-06-20 13:04:19 -04:00
Daniel Agar
73f45fee6e
boards: px4_fmu-v5_test disable fake_gps module to save flash
2022-06-19 14:25:06 -04:00
Daniel Agar
902b789292
boards: px4_fmu-v5_protected disable gyro_fft module to save flash
2022-06-19 14:25:01 -04:00
Daniel Agar
b81a5b3efa
ekf2: request mag yaw reset after calibration or sensor change
2022-06-17 21:04:05 -04:00
Daniel Agar
c7cec4252c
sensors: add CONFIG_SENSORS_VEHICLE_AIRSPEED for airspeed/differential pressure
...
- disable CONFIG_SENSORS_VEHICLE_AIRSPEED on boards only used for multicopter
2022-06-17 19:31:45 -04:00
Daniel Agar
10deb7019e
enable gyro_calibration for CAN nodes
...
- allow saving initial gyro cal if very close to 0
2022-06-17 19:31:45 -04:00
Daniel Agar
db4e09d529
Tools/kconfig: delete old migration helpers
...
- people are updating this without really understanding the purpose,
and it's generally no longer useful
2022-06-17 19:31:45 -04:00
Daniel Agar
c46fa01195
sensors: add kconfig mechanism to optionally exclude sensor types
2022-06-17 19:31:45 -04:00
Daniel Agar
dea404a9a3
boards: disable modules to save flash
...
- px4_fmu-v5x_rtps disable common barometers to save flash
- px4_fmu-v6x_default disable telemetry drivers to save flash
2022-06-16 16:14:57 -04:00
Daniel Agar and PX4 BuildBot
c1c2858341
Update submodule GPSDrivers to latest Thu Jun 16 12:38:52 UTC 2022
...
- GPSDrivers in PX4/Firmware (1069570a2a90fdc7f0e081b6c2c4b418446d65d7): https://github.com/PX4/PX4-GPSDrivers/commit/016c37cd1f18c716427e2465d8daa6aa1054b0f1
- GPSDrivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/8c09c5426d23ea4db4e462c1f4e3a1de33d253cc
- Changes: https://github.com/PX4/PX4-GPSDrivers/compare/016c37cd1f18c716427e2465d8daa6aa1054b0f1...8c09c5426d23ea4db4e462c1f4e3a1de33d253cc
8c09c54 2022-06-15 Daniel Agar - sbf trivial whitespace fix
Co-authored-by: PX4 BuildBot <bot@px4.io >
2022-06-16 12:21:06 -04:00
Daniel Agar
1980b5c5e8
ekf2: setEkfGlobalOrigin() reset baro and hgt sensor offsets if necessary
...
- handle uninitalized _gps_alt_ref
- add basic lat/lon/alt sanity checks
2022-06-16 00:59:54 -04:00
Daniel Agar
ce70b6f4ac
sensors/vehicle_angular_velocity: add IMU_GYRO_RATEMAX constraints
2022-06-07 15:45:47 -04:00
Daniel Agar
01f0992f49
sensors/vehicle_imu: don't bother checking IMU_GYRO_RATEMAX
2022-06-07 15:45:47 -04:00
Daniel Agar
cb2738e187
Update submodule GPSDrivers to latest Sat Jun 4 12:38:49 UTC 2022 ( #19766 )
...
- GPSDrivers in PX4/Firmware (6e77a084cd43830c8b13018b7fd5470da9bc4ff5): https://github.com/PX4/PX4-GPSDrivers/commit/181fae1a4b5e33576d786755782adb2f195ecc48
- GPSDrivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/016c37cd1f18c716427e2465d8daa6aa1054b0f1
- Changes: https://github.com/PX4/PX4-GPSDrivers/compare/181fae1a4b5e33576d786755782adb2f195ecc48...016c37cd1f18c716427e2465d8daa6aa1054b0f1
016c37c 2022-06-01 Julian Oes - sbf: fix overrun on invalid length
2022-06-04 15:58:56 -04:00
Daniel Agar
21b1c933dc
ekf2: EKFGSF_yaw delete unnecessary internal state
2022-06-01 13:16:06 -04:00