Commit Graph
100 Commits
Author SHA1 Message Date
Daniel Agar 4d318ebd30 mavlink: add initial mavlink OPEN_DRONE_ID_SYSTEM stream 2022-12-13 19:39:27 -05:00
Daniel Agar 696eeb9a49 ekf2: update EV height state machine (small piece of EV overhaul)
- respect new EKF2_EV_CTRL parameter for VPOS usage
  - EV hgt rotate EV position before usage (there's often a small offset in frames)
  - EV hgt reset use proper EV velocity body frame
  - try to keep EV hgt and EV vel state machines consistent
  - small incremental piece of https://github.com/PX4/PX4-Autopilot/pull/19128
2022-12-13 13:29:18 -05:00
Daniel Agar 805ffa9d0b ekf2: push mag cal reset to delayed time horizon 2022-12-13 10:24:02 -05:00
Daniel Agar dc0823062e github actions: disable vtol_standard address sanitizer test
- unfortunately this is often too slow for github actions
2022-12-12 14:23:13 -05:00
Daniel Agar 61fa28c0d6 Tools/generate_board_targets_json.py exclude px4_ros2_default for now 2022-12-12 11:46:36 -05:00
Daniel Agar 8cf13d50a8 ekf2: EKFGSF_yaw minor cleanup (#20510)
- don't store unnecessary IMU copy in class, pass it through where required
 - remove custom pi constants
 - remove unused fields from ahrs_ekf_gsf (vel_NE, fuse_gps, accel_dt)
 - explicitly initialize everything in header
 - apply PX4 code style
 - set GPS velocity before yaw estimator update, not after
2022-12-09 13:24:00 -05:00
Daniel AgarandPX4 BuildBot f3884d5835 Update world_magnetic_model to latest Fri Dec 9 11:14:09 UTC 2022
Co-authored-by: PX4 BuildBot <bot@px4.io>
2022-12-09 11:40:30 -05:00
Daniel Agar 41fa53605c boards: rebuild STM32H7 bootloaders and px4-io-v2 2022-12-09 11:02:21 -05:00
Daniel Agar 8114aad983 initial minimal PX4_ROS2 platform and px4_ros2_default build (#20689)
- new ROS2 platform in PX4 intended for creating configs that build and run entirely in ROS2
 - PX4_CONFIG defaults to px4_ros2_default if no config specified and in a colcon workspace with ROS_VERSION=2
 - currently doesn't do much other than allow you to build px4 msgs interface package
2022-12-08 23:03:44 -05:00
Daniel Agar 2b1d8c1d8e mavlink switch to common dialect by default and update to latest 2022-12-07 15:46:04 -05:00
Daniel Agar 72cb4bee01 SITL gz fixes and init cleanup (#20725)
- remove broken gz version handling and remove x500-legacy
 - fix all shellcheck warnings
 - prepare for Gazebo Garden compatibility (needs more work)
2022-12-07 15:41:13 -05:00
Daniel Agar 8eb2a0a3ec ekf2: delete orientation_covariances_euler()
- usage replaced with now public calcRotVecVariances()
2022-12-07 12:41:27 -05:00
Daniel AgarandPX4 BuildBot c12d9124bd Update submodule GPS drivers to latest Wed Dec 7 12:38:31 UTC 2022
- GPS drivers in PX4/Firmware (4eb0a0598048df07c213659944b2720ee42e1cc2): https://github.com/PX4/PX4-GPSDrivers/commit/b49a6c257371abae6e26e0a3e0fc04b963b2f13d
    - GPS drivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/b76fc1df45952abbc76c7eb9f5a5ab3ae994bef2
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/b49a6c257371abae6e26e0a3e0fc04b963b2f13d...b76fc1df45952abbc76c7eb9f5a5ab3ae994bef2

    b76fc1d 2022-11-21 qst0528 - ashtech: fix position accuracy loss caused by misplaced integer cast (#118)

Co-authored-by: PX4 BuildBot <bot@px4.io>
2022-12-07 09:16:31 -05:00
Daniel Agar c1c4c96c88 boards: flywoo_gn-f405 NuttX upgrade fixes 2022-12-06 19:35:30 -05:00
Daniel Agar 4f99ac209c gitmodules update NuttX to 10.3.0+ 2022-12-06 18:40:58 -05:00
Daniel Agar f12dbb3ff7 boards: px4_fmu-v5_test disable common distance sensors to save flash 2022-12-06 11:39:25 -05:00
Daniel Agar 91a43c3bce boards: px4_fmu-v5_uavcanv0periph disable camera_feedback to save flash 2022-12-06 10:48:56 -05:00
Daniel Agar 9b20228ffb boards: modalai_voxl2-io NuttX upgrade fixes and sync with px4-io-v2 2022-12-06 10:45:30 -05:00
Daniel Agar a191509b27 boards: raspberrypi_pico NuttX upgrade fixes 2022-12-06 10:40:27 -05:00
Daniel Agar 89b81b0bd6 create Welford mean Vector with covariance and improve precision with Kahan summation (#20676)
- WelfordMeanVector now computes covariance
 - use Kahan summation for Welford mean (but continue using float32 for actual mean, etc)
 - WelfordMean and WelfordMeanVector handle initial value and count roll over
 - Welford mean count rollover at 16 bit max to prevent numerical issues and shift weight to newer samples
 - sensors/vehicle_imu: update Welford mean usage (now simplified with resets removed)
    - fix vehicle_imu_status accel var, now properly rotated with full covariance matrix
 - gyro_calibration: update Welford mean usage
2022-11-30 14:50:13 -05:00
Daniel Agar 28e1f6790f Jenkinsfile-hardware: don't run logger on stack check build
- stackcheck build is so slow it will trigger the logger watchdog (error fails Jenkins)
2022-11-22 16:07:22 -05:00
Daniel Agar 08cdb96f77 boards: px4_fmu-v5_uavcanv0periph disable systemcmds to save flash 2022-11-21 21:23:02 -05:00
Daniel Agar 16564af788 Jenkinsfile-hardware: remove px4_fmu-v3 2022-11-21 21:18:01 -05:00
2cb4ef0629 NuttX 10.3+ upgrade (#20190)
Co-authored-by: Peter van der Perk <peter.vanderperk@nxp.com>
Co-authored-by: David Sidrane <David.Sidrane@NscDg.com>
Co-authored-by: alexklimaj <alex@arkelectron.com>
2022-11-20 20:28:07 -05:00
Daniel Agar da82757bf6 ekf2: accumulate multiple vel/pos/orientation reset deltas per update
- if in a single EKF update there are multiple resets we need to track the accumulated delta so the change consumed by the controllers is correct
2022-11-15 13:20:54 -05:00
Daniel AgarandMathieu Bresciani 639d1ddca2 ekf2: update flags (in_air, at_rest, etc) on delayed time horizon (#20576)
- in a lot of cases this won't really matter, although you can see it in logs (especially with things like vehicle_at_rest), but it's something we might as well do properly

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
2022-11-14 11:35:40 -05:00
Daniel Agar 9e7db0ed54 merge vehicle_angular_acceleration into vehicle_angular_velocity (#20531)
- vehicle_angular_velocity and vehicle_angular_acceleration are produced together from the same input data, consumed together, and share the the same metadata (timestamps)
 - individually these topics each have 16 bytes of metadata (2 timestamps) for 12 bytes of data (x,y,z float32)
2022-11-14 11:03:59 -05:00
Daniel Agar bd5bc9d207 ekf2: cleanup terrain estimator init (shouldn't be valid by default)
- with Ekf::initialiseFilter() resetting _time_last_hagl_fuse the terrain estimate was technically valid regardless of any range or flow data availability and as a result optical flow fusion is able to start and stay active
 - only consider terrain estimate valid based on control status flags and recent fusion
2022-11-14 09:29:46 -05:00
Daniel Agar 84d1435880 ekf2: ensure minimum output buffer sizing
- buffer at least 2 samples for the IMU output predictor buffers
 - dropping below 2 becomes problematic for the minimum observation
interval calculation and the vertical output buffer trapezoidal
integration
2022-11-09 09:49:35 -05:00
Daniel Agar 5239993c88 ekf2: move EV vel to new state machine, introduce EKF2_EV_CTRL param 2022-11-08 11:46:41 -05:00
Daniel Agar 688dae1108 ekf2: add new EKF2_EV_QMIN parameter 2022-11-08 11:46:41 -05:00
Daniel Agar dac9f0dac4 boards: px4_fmu-v6x_default include systemcmds/gpio 2022-11-07 17:10:47 -05:00
Daniel Agar 4190353192 vehicle_magnetometer: fix standalone mag bias est factored into in flight mag cal
- preflight mag bias estimate is in the vehicle body frame and removed from the raw mag data after it's rotated, calibrated, etc
 - in flight mag bias (from ekf2) is in the vehicle body frame, but stored as a sensor frame offset immediately
2022-11-07 09:31:17 -05:00
Daniel Agar 298cc61e07 ekf2: push fuse beta config into backend 2022-11-02 10:09:26 -04:00
Daniel AgarandPX4 BuildBot d4fb1b1f8b Update submodule GPS drivers to latest Sat Oct 29 12:39:01 UTC 2022
- GPS drivers in PX4/Firmware (d67b19ac1d41b2dcfc61ed6d353ae513ac3f4a82): https://github.com/PX4/PX4-GPSDrivers/commit/1ff87868f6008f06e2033ee05dd904ec54109e52
    - GPS drivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/fa2177d690207e42e0d8c92e9663578340d44fe4
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/1ff87868f6008f06e2033ee05dd904ec54109e52...fa2177d690207e42e0d8c92e9663578340d44fe4

    fa2177d 2022-10-10 Michael Schaeuble - Return from GPSDriverUBX::receive when ready, don't wait until no data is received

Co-authored-by: PX4 BuildBot <bot@px4.io>
2022-10-29 10:55:20 -04:00
Daniel Agar a242a0210e Update world_magnetic_model to latest Mon 24 Oct 2022 09:29:11 PM EDT 2022-10-25 09:20:01 -04:00
Daniel Agar c32cf21b63 commander: estimator check shorten messages
- otherwise these are awkwardly split in mavlink
2022-10-25 08:02:47 +02:00
Daniel Agar a7b909234b commander: estimator nav test is not an arming check 2022-10-25 08:01:30 +02:00
Daniel Agar 6f861ba889 ekf2: pos/vel reset helpers pass new variance
- optical flow velocity reset use already computed _flow_vel_ne
2022-10-24 10:59:58 -04:00
Daniel Agar ed558e199f ekf2: remove realignYawGPS() (replaced with yaw estimator) 2022-10-21 09:01:30 -04:00
Daniel Agar 5030b21d2e ekf2: replace quatToInverseRotMat if only used once 2022-10-20 14:15:32 -04:00
Daniel Agarandbresch fb3adc3faa ekf2: move baro compensation to delayed time horizon and add validity check
- this removes an unnecessary virtual call and simplifies things a bit

Co-authored-by: bresch <brescianimathieu@gmail.com>
2022-10-20 09:17:55 -04:00
Daniel Agar b400b7fcc4 vehicle_angular_velocity: ESC RPM notch filters minimize filter resets (#20449)
- vehicle_angular_velocity: ESC RPM notch filters minimize filter resets
 - only allow one filter init per axis per cycle
 - "park" ESC notch filters at min frequency instead of full disable
 - relax timeout before a notch filter is disabled
 - add new parameter IMU_GYRO_DNF_MIN for configuring the minimum notch filter frequency
2022-10-20 09:05:23 -04:00
Daniel Agar fe80e7aa46 commander: respect COM_CPU_MAX for overload and adjust default threshold 2022-10-19 20:25:06 -04:00
Daniel Agar 309465858a commander: elapsed time checks avoid subtracting unsigned integers
- avoid the possibility of unsigned underflow from subtracting two HRT timestamps (uint64_t)
 - most of these aren't problematic, but people tend to replicate the pattern, so it's better to be safe
 - likely wasn't a problem when people were using hrt_absolute_time() in place, but if using an existing timestamp there's the possibility it's older than a more recent topic update
2022-10-19 20:21:36 -04:00
Daniel Agar cea185268e msg ROS2 compatibility, microdds_client improvements (timesync, reduced code size, added topics, etc), fastrtps purge
- update all msgs to be directly compatible with ROS2
 - microdds_client improvements
   - timesync
   - reduced code size
   - add to most default builds if we can afford it
   - lots of other little changes
 - purge fastrtps (I tried to save this multiple times, but kept hitting roadblocks)
2022-10-19 19:36:47 -04:00
Daniel Agar e211e0ca0e commander: limit some estimator checks to prearm 2022-10-19 19:06:56 -04:00
Daniel Agar f9509b442c ekf2: height aid source consistency (#20405)
- working towards keeping all height source (baro/ev/gnss/rng) handling as consistent as possible, possibly refactoring these out into separate classes later
2022-10-19 15:35:07 -04:00
Daniel Agar b71fc63162 ekf2: fix sideslip timeout (typo) 2022-10-18 18:38:25 -04:00
Daniel Agar 0d2ff6e224 ekf2: test ekf_logger further reduce std::precision to minimize false positives 2022-10-18 14:19:16 -04:00
Daniel Agar 535415a537 ekf2: add OF estimator aid src status 2022-10-18 14:19:16 -04:00
Daniel Agar 7c237fca74 boards: px4_sitl use Mavlink development dialect 2022-10-17 16:16:36 -04:00
Daniel Agar 743200df22 mavlink: move mavlink dialect selection to kconfig 2022-10-17 16:16:36 -04:00
Daniel Agar d792a3ff5b simulator_mavlink: use existing development/common mavlink generation if available 2022-10-17 16:16:36 -04:00
Daniel Agar 0d6766d14d limit vehicle_command subscription updates per cycle
- this is a precaution to eliminate the possibility of getting stuck in
a loop trying to keep up with a high rate publication that could be
coming from a higher priority task
2022-10-17 16:10:51 -04:00
Daniel Agar 677f3e9294 sensors/vehicle_optical_flow: limit gyro updates and generation lost error per cycle
- in the worst case scenario printing the error message can take longer than the next gyro publication, so combined with an infinite loop you could get stuck here
2022-10-17 13:45:04 -04:00
Daniel Agar 116bb6049f ekf2: fusion helper consistency
- yaw fusion use measurementUpdate()
 - fuseVelPosHeight() respect _accel_bias_inhibit (like measurementUpdate())
2022-10-17 10:17:31 -04:00
Daniel Agar 2de990fd4b estimator_aid_source split GNSS pos (3d) -> pos (2d) + hgt
- per estimator air source status only keep a single set of flags and
timestamp that applies to the entire source
2022-10-13 11:28:50 -04:00
Daniel Agar ce609144b0 simulation/gz_bridge: fix implicit floating-point conversions 2022-10-09 14:11:19 -04:00
Daniel Agar 9010029e0d lib/drivers/device: Device.hpp fully init devid
- constructor use available setters
2022-10-09 13:49:39 -04:00
Daniel Agar f3964513c7 sensors: fix accel/gyro/mag calibration offset units 2022-10-09 13:02:38 -04:00
Daniel Agar ee4821ed0a commander: relax COM_ARM_MAG_ANG default to minimize false positives
- this check is mainly intended for catching blatant setup problems like a magnetometer that's mounted 90 or 180 degrees off
2022-10-09 12:41:06 -04:00
Daniel Agar 8cc39096cb load_mon: NuttX cpuload use system times for calculation
- this is to minimize the impact of any load_mon scheduling jitter in the sampled load percentage
2022-10-05 14:21:38 -04:00
Daniel Agar 5f0a539633 gps_blending: fix blending init to best instance
- output GPS publication defaults to best input instance
 - blended states are explicitly cleared and then populated with
weighted blend
2022-10-05 10:26:48 -04:00
Daniel Agar 41cda14126 ekf2: add symforce code generation helper target 2022-10-03 10:59:42 -04:00
Daniel Agar c9441bb48a boards: px4_fmu-v2/v3 allow optional mpu9250 probe to fail without error 2022-10-02 21:40:18 -04:00
Daniel Agar 2bd1ac005f .gitmodules update branches master -> main 2022-10-01 12:22:22 -04:00
Daniel Agar a27aeb30bf mc_pos_control: fix trajectory setpoint copy
- trajectory_setpoint and vehicle_local_position_setpoint used to be
the same data type
 - we got extremely lucky here that this didn't cause any issues due to
all the fields still aligning
2022-09-29 14:17:00 -04:00
Daniel Agar d4e5876d4c vehicle_imu: only reset raw accel/gyro Welford mean periodically
- vehicle_imu_status can publish immediately on any measured sample
rate change or sensor error increment, but the windowed mean/variance
shouldn't necessarily reset that often
2022-09-29 14:14:16 -04:00
Daniel Agar 1f7080a710 ekf2: extend sensor bias stability requirement
- for accel/gyro/mag estimated bias only consider them stable (valid
for calibration updates) if the value isn't changing (10% of limit) over
the validity period
2022-09-28 10:40:52 -04:00
Daniel Agar 16f8adb4b3 hysteresis: avoid subtracting unsigned integers
- avoid potential errors with timestamp passed in from different sources
2022-09-28 09:51:16 -04:00
Daniel Agar 7bc79b491f sensors/vehicle_magnetometer: more granular in flight mag cal reset on parameter changes
- if mag calibration parameters change only reset any inflight mag cal
for the corresponding magnetometer
2022-09-26 12:42:32 -04:00
Daniel Agar 462d0af384 uORB: fix static orb_exists call for protected build
- unify ORBSet to maximum code coverage
2022-09-26 12:38:58 -04:00
Daniel Agar 57bdac2b26 cmake: px4_parse_function_args re-enable failure on unparsed (invalid) arguments 2022-09-24 13:48:51 -04:00
Daniel Agar ca0465aeca Tools/generate_board_targets_json.py: properly exclude VOXL2 for now 2022-09-24 11:27:31 -04:00
Daniel Agar e58275e6f5 platforms/posix: restore none SITL helper target for replay 2022-09-23 19:20:01 -04:00
Daniel Agar b7fab39165 icm20948_i2c_passthrough: PX4_ERR is reset/configure fails and check temperature for validity 2022-09-23 19:16:10 -04:00
Daniel Agar eb2a714aa5 ak09916: PX4_ERR if reset/configure is failing after 5s 2022-09-23 19:16:10 -04:00
Daniel Agar 16b4149492 Tools/generate_board_targets_json.py exclude VOXL2 for now (dev environment not yet available to github) 2022-09-23 16:40:56 -04:00
Daniel Agar 38d332a553 ekf2: inhibit accel bias dynamically when fake position/height fusion active
- inhibit accel bias learning dynamically depending on the angle between an accelerometer and the vertical axis when fake position fusion is active
2022-09-22 20:32:20 -04:00
Daniel Agar 1806f0d2b4 boards: delete broken flywoo_gn-f405_rtps 2022-09-22 17:44:24 -04:00
Daniel Agar ed16354413 boards: px4_fmu-v6x_default remove gyro_fft to save flash (will be restored later) 2022-09-22 11:36:16 -04:00
Daniel Agar 54c97db8b2 ekf2: fix covariance comment typo 2022-09-21 15:29:07 -04:00
Daniel Agar a96187cb18 drivers/optical_flow: paw3902/paa3905 refactor into simple state machine for reset/configure/read 2022-09-20 18:59:00 -04:00
Daniel Agar a47895e809 [DO NOT MERGE] px4_i2c_device_external hacks 2022-09-20 10:31:26 +12:00
Daniel Agar 0a5c9d4951 position_setpoint delete unused landing_gear 2022-09-19 11:16:45 -04:00
Daniel Agar 11dd924bd4 position_setpoint delete unused SETPOINT_TYPE_FOLLOW_TARGET 2022-09-19 11:16:45 -04:00
Daniel Agar 87815d8869 simulator_ignition_bridge: add simple esc_status publication
- ideally we'd get this from the actual joint velocity, but this is
good enough to start
2022-09-19 09:49:12 -04:00
Daniel Agar 3440f543f1 simulator_ignition_bridge: wait for first clock set before returning successfully 2022-09-16 21:37:09 -04:00
Daniel Agar 98036f93c5 msp_osd: fix module documentation 2022-09-16 18:54:14 -04:00
Daniel Agar 07c34f7446 boards: px4_fmu-v6x update bootloader 2022-09-16 12:11:25 -04:00
Daniel Agar eaa9eae472 simulator_ignition_bridge: fix double promotions 2022-09-16 11:36:35 -04:00
Daniel Agar 085ec0e8ef flight_mode_manager: StickAccelerationXY minimize setpoint oscillations around 0 2022-09-16 07:54:12 +02:00
Daniel Agar ff196a7363 crsf_rc: trivial compile fixes for updated vehicle_gps_position and removed NAVIGATION_STATE_AUTO_LANDENGFAIL 2022-09-15 21:01:53 -04:00
Daniel Agar 97f239d3ab boards/flywoo/gn-f405: fix code style 2022-09-15 20:06:01 -04:00
Daniel Agar 05850e2fc0 mavlink: eliminate timestamped_list dynamic allocation 2022-09-15 19:27:39 -04:00
Daniel Agar 5fcdffc8c0 drivers/device/nuttx/I2C: only issue I2C_RESET() if retrying, and only before the next retry 2022-09-15 18:42:30 -04:00
Daniel Agar 54b5d4c5b8 drivers/rc_input: don't allow starting on the px4io serial port 2022-09-14 21:23:30 -04:00
Daniel Agar b8fb5dfa51 merge px4_sitl_ign into px4_sitl_default (#20188)
- for convenience merge px4_sitl_ign into px4_sitl_default, but allow simulator_ignition_bridge to quietly skip inclusion if ignition-transport isn't available
 - simulator_ignition_bridge only try setting the system clock in
lockstep builds
 - this simplifies usage and CI system dependencies
2022-09-10 16:18:02 -04:00
Daniel Agar 8f25acd428 sih remove gps and use standalone sensor_gps_sim 2022-09-09 18:00:50 -04:00