Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
169 commits
Select commit Hold shift + click to select a range
b5b13b6
move vision-based target estimator into its own module
Sep 4, 2023
f063da7
update ci with new custom px4 boards: px4_*_visionTargetEst
Sep 4, 2023
f22cc57
add vision target est custom board to enable development mavlink msgs
Sep 4, 2023
aca0a36
reduce flash if CONSTRAINED_FLASH 2
Sep 4, 2023
8cc3c9e
update orientation estimator with new params
Sep 5, 2023
6be645e
in PrecLand, control the orientation received from the VTE orientation
Sep 5, 2023
2c143d5
Mavlink receiver, fix target GNSS conversion to deg
Sep 6, 2023
f89a888
Only re-set position and bias when a secondary measurement is available
Sep 6, 2023
487b3a9
handle moving targets
Sep 6, 2023
ffed24a
require UAV velocity estimate to start the position estimator
Sep 6, 2023
93565c4
simplify orientation estimator init
Sep 6, 2023
d974d33
If est times out, wait 3 seconds before restarting it (instead of 1s)
Sep 6, 2023
dd3d366
fmu v6, Custom board, remove camera feedback and gimbal to save flash…
Sep 6, 2023
40b25be
Set Normalized Innovation Squared (NIS) test threhsold as a param.
Sep 11, 2023
c8a77f6
Refactor start/stop/set estimator to simplify its used for different …
Sep 11, 2023
1fcafac
explicitely set default modules in visionTargetEst.px4board
Sep 22, 2023
ac0b868
precLandStatus only if flash not constrained
Sep 22, 2023
42a0a00
revert slew rate change
Sep 22, 2023
a9d2e78
force an estimator reset before starting
Oct 18, 2023
a7362f3
remove fusion enabled field from esttimatorAidSource1d
Oct 30, 2023
ff16882
update prec-land status for mission base and rtl direct
Oct 30, 2023
c5eb895
make format
Oct 30, 2023
5367f25
prec land status only if not constrained flash 3
Oct 30, 2023
789ddb5
remove png from documentation
Nov 2, 2023
ed05cd2
improve starting and stopping filter logic. Now properly considers or…
Nov 7, 2023
6341f3b
move task update topics into a function to simplify run()
Nov 8, 2023
ee15738
simplify estimator's starting condition
Nov 27, 2023
8b3044a
move prec land status into prec land
Nov 27, 2023
6194bee
rename _covariance to _state_covariance
Nov 30, 2023
1417508
publish precland status
Nov 30, 2023
f04d85e
Clean VisionTargetEst
Mar 12, 2024
5be7c28
Unify AugmentedState for Orientation filter
Mar 12, 2024
66b2558
Unify AugmentedState for Position filter
Mar 12, 2024
a1e387d
Simplify fuse meas function
Mar 12, 2024
a9a7dae
Fix rebase
Mar 12, 2024
95fca77
Rename position filters
Mar 12, 2024
ed7b1e6
fix _publish_prec_land_status
Sep 23, 2024
787761f
override virtual function
Sep 23, 2024
cd3411a
Only aid ekf2 velocity if vision fused recently
Sep 23, 2024
b46a62a
replace SEC2USEC by 1_s
Sep 23, 2024
8daa5f2
Unify static and moving KF based on the symforce generation
Sep 27, 2024
aa122e7
wip use unified KF for VTEPosition
Sep 27, 2024
4f16966
delete old KF filters
Sep 27, 2024
3b1c528
Split Run() to enhance modularity and readability
Sep 29, 2024
33e79f6
remove CONFIG_VTEST_MOVING from boards
Sep 29, 2024
672d9c5
clang tidy
Sep 29, 2024
37b9618
wip add support for UWB
Sep 29, 2024
b83514a
Minor fix
Sep 29, 2024
a4bc742
Autogenerated files, remove idxDof struct
Sep 29, 2024
007279e
Unify static and moving KF for orientation
Sep 29, 2024
bd021f1
include untracked files
Sep 29, 2024
0d453ba
use math lib to convert from deg to rad
Sep 29, 2024
00324d3
Also allow to update the bias based on uwb
Sep 29, 2024
10f5e81
Use states for equation of motion derivations (python)
Oct 4, 2024
f54ea4c
Orientation filter, use states for eq of motion derivations (python)
Oct 4, 2024
7b28f25
Include a VisionTargetEstTask DEBUG which always runs the VTE
Oct 9, 2024
a63eb4a
update param names
Oct 9, 2024
55ec2ad
Position KF - use Jacobian to generate matrices
Oct 19, 2024
701176a
Only keep moving filter for orientation.
Oct 20, 2024
04aff73
Use State::size in KF_orientation.cpp
Oct 20, 2024
29000bd
remove libuavcan (now libdronecan)
Feb 24, 2025
fbaf9bf
fix bug: KF init with zero vel on consecutive restarts
May 1, 2025
ed7a960
Improve VTE support for UWB
Aug 21, 2025
65faa2a
VTE custom board for fmu-v6xrt
Aug 21, 2025
3fde6fa
wip clean up GNSS process && solve dt computation issue
Sep 9, 2025
c231e0d
Rename files
Sep 10, 2025
ad19c04
finalise update cmake to generate symforce files on build
Sep 11, 2025
74f7247
wip clean up
Sep 14, 2025
4ef61e2
Support multiple measurements in orientation filter, move common filt…
Sep 17, 2025
a05a5d8
fix missing wrap_pi
Sep 17, 2025
8b5a819
Allow to start the estimator based on uwb only
Sep 17, 2025
3cabda8
Include attitutde of the drone as input to the position filter to rot…
Sep 17, 2025
872a03d
include irlock measurement and cap the minimum obs variance for Irloc…
Sep 18, 2025
612ab94
Unify rangeSensor definition
Sep 18, 2025
e2d2617
wip 2 replace enums with unions
Sep 19, 2025
9633e0b
prevent critical param change if input is not valid
Sep 19, 2025
56e31e9
wip 2 include uwb-based yaw estimation
Sep 19, 2025
26be410
stale filtering and caching for vehicle_acceleration
Sep 19, 2025
f5af59b
Clean code
Sep 20, 2025
f73a205
Fix build with CONFIG_VTEST_MOVING=y
Sep 20, 2025
9b76a4d
wip disable modules in the custom visionTargetEst.px4board to avoid F…
Sep 21, 2025
ceaf9a8
Better stale measurements detection
Sep 21, 2025
4075393
Commit pre-generated moving target files to support build env without…
Sep 21, 2025
5b2961d
Target GNSS obs: compensate UAV motion during the latency interval
Sep 21, 2025
6de2c3e
Upgrade relevant timeout constants to PX4 parameters
Sep 21, 2025
ff5f3b6
Estimators update rate as PX4 param
Sep 21, 2025
12eea31
Finalize documentation
Sep 22, 2025
61d5789
fix VisionTargetEstOrientation.msg description
Sep 22, 2025
436b772
Update visionTargetEst.px4board config
Sep 23, 2025
7bab8ef
Attempt 2 fix the CI
Sep 23, 2025
014b5c1
Allow to disable the build of # TOPICS if the module is not enabled i…
Sep 24, 2025
af48e77
Remove extra visionTargetEst.px4board custom builds
Sep 24, 2025
4d935c0
Block the vision target estimator if CONFIG_MODULES_LANDING_TARGET_ES…
Sep 24, 2025
fc7cdba
Remove support for IRLock
Sep 24, 2025
fa9240f
remove custom visionTargetEst board for fmu-v5
Sep 24, 2025
e2d6915
Throttle recurrent warnings (every 20 seconds)
Sep 25, 2025
41f65df
Remove support for IRLock
Sep 25, 2025
36378eb
Improve docs
Sep 25, 2025
f80f62b
apply requested changes
Dec 13, 2025
3078732
allow 5ms jitter for measurements more recent than prediction because…
Dec 13, 2025
48e8fee
Clean uorb msgs, low update rate when no task active, and fix acc dow…
Dec 14, 2025
396b38a
Implement OOSM approximation
Dec 16, 2025
9a19320
protect against large dt (stale filter) and fix vision variance compu…
Dec 16, 2025
66356e4
Scale bias and acc unc by dt (noise per step to random walk)
Dec 16, 2025
fdd9c4b
New topics for vte innov log, allows to revert changes to px_generate…
Dec 16, 2025
b37aa2c
formating
Dec 16, 2025
3c73151
implement OOSM for orientation filter
Dec 16, 2025
79b89e6
remove un-used inputs from Gettransitionmatrix
Dec 16, 2025
fd0488a
Use common OOSM manager for position and orientation filters to avoid…
Dec 17, 2025
bd537c9
use temporary variables in predict wrapper functions
Dec 17, 2025
4535014
generate symforce files for moving filter
Dec 17, 2025
82da751
include process noise in orientation filter
Dec 18, 2025
5c6febf
update uorb msg doc
Dec 18, 2025
17a5fd7
update prints from INFO to DEBUG
Dec 18, 2025
4b7e9af
Move EKF2 ring buffer to lib, create a static version and use it in V…
Dec 18, 2025
1f8e8cf
unit test for VTEOosm.h
Dec 19, 2025
2bd73cc
wip unit test the VTE
Dec 19, 2025
4f3df93
include timestamp_sample into target gnss message
Dec 19, 2025
06928ee
Improve unit -test coverage
Dec 19, 2025
c978fde
wip Include unit tests for VisionTargetEst.cpp (+renaming)
Dec 20, 2025
aadde5c
Improve unit tests for VisionTargetEst.cpp
Dec 20, 2025
246b8d1
Fix rebase
Jan 16, 2026
7c293f6
KF_orientation, use symforce for predictCov
Feb 12, 2026
701d460
enable velocity fusion for moving pads
Feb 19, 2026
d10600c
precland, incalidate yaw right away if the estimator reports it invalid
Feb 19, 2026
fe0f4bd
mavlink receiver properly handle TARGET_OBS_FRAME_LOCAL_NED by conver…
Feb 19, 2026
62a337a
New Descriptor struct for modules
Feb 19, 2026
fcf0dd8
fix rebase
Feb 19, 2026
c74e41d
revert changes to paramter reference
Feb 19, 2026
cecde31
fix build for <uORB/topics/prec_land_status.h> when CONFIG_MODULES_VI…
Feb 19, 2026
128d906
remove print
Feb 19, 2026
94fed17
fix build for prec_land_status_s and CONSTRAINED_FLASH
Feb 19, 2026
842a401
Apply suggested change to optimise yaw uncertainty computation
Mar 14, 2026
61c1a69
Orientation filter, use symforce to derive state pred to have one sin…
Mar 14, 2026
20c90b8
clean includes and magic numbers
Mar 14, 2026
264cee2
Orientation filter, guard against stale data (similar to VTEPosition)
Mar 14, 2026
d0f8c93
wip clean unit tests
Mar 14, 2026
a4845ec
target_absolute mav receiver, rotate velocity using q_target
Mar 14, 2026
d620fcb
target_relative, use _vehicle_attitude_sub.copy instead of .update
Mar 14, 2026
33cd52c
populate rel_pos_valid and rel_vel_valid in _target_estimator_state_pub
Mar 14, 2026
d46e239
processObsGNSSPosTarget offset uav velocity from antenna to center of…
Mar 14, 2026
b05ca3b
findLandSetpoint: do not require an updated triplet to be robust agai…
Mar 14, 2026
58007f0
precland reset yaw on activation and inactivation
Mar 14, 2026
8b03ddc
fix _target_pose.cov_vx_rel computation
Mar 14, 2026
3a218e4
free _vte_fusion_perf
Mar 14, 2026
6f810c3
port mavlink receiver changes to simulatorMavlink
Mar 14, 2026
2f77cc2
use LPF to filter initial GNSS bias
Mar 15, 2026
b51e11f
If bias was properly estimated, init filter as GNSS - bias
Mar 15, 2026
a292de2
update docs
Mar 15, 2026
774fe93
To check how stable the bias is, use delta to average
Mar 19, 2026
42336d4
symforce, return matrices instead of passing by argument
Mar 19, 2026
371baa0
update params from EKF2_GPS_POS_X to SENS_GPS0_OFFX for https://githu…
Mar 19, 2026
dd3ae7e
use array of EstimatorState instead of matrix
Mar 19, 2026
ef7967b
follow up to https://github.com/PX4/PX4-Autopilot/pull/23726/changes/…
Mar 19, 2026
65ed2c5
minor cleaning
Mar 24, 2026
d8d2714
sitl default board add CONFIG_MAVLINK_DIALECT="development" for TARGE…
Mar 24, 2026
a96aa3b
TARGET_RELATIVE pub yaw only when q_target is non-zero
Mar 24, 2026
af5b1b0
VTEPosition use signed GNSS time compensation for bias averaging phas…
Mar 24, 2026
24022c9
precland and FlightTaskAuto, reset and republish yaw when target not …
Mar 24, 2026
3b5b8f3
advertise _vte_bias_init_status_pub
Apr 1, 2026
1bfba77
Block GNSS or vision observations until bias is averaged once observable
Apr 3, 2026
faa61ff
migrate parameters from .c to .yaml
Apr 9, 2026
6af4d0a
clean rebase
Apr 9, 2026
515c1a6
VisionTargetEst, simplify param handling
Apr 9, 2026
a5a8414
Simplify parameters handling to reduce the number of class variables
Apr 9, 2026
4de04a3
Simplification: remove support for scaled vision variance VTE_EV_NOIS…
Apr 9, 2026
4277327
Simplification: symforce derivation get state without for loop
Apr 10, 2026
df9bf04
Move PLD_YAW_EN and prec_land_status behind CONFIG_MODULES_VISION_TAR…
Apr 10, 2026
528ec6d
fix clang diagnostic
Apr 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,7 @@ param set-default PLD_HACC_RAD 0.1
param set-default RTL_PLD_MD 2

# Start up Landing Target Estimator module
landing_target_estimator start
if param compare VTE_EN 0
then
landing_target_estimator start
fi
9 changes: 9 additions & 0 deletions ROMFS/px4fmu_common/init.d/rc.mc_apps
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,15 @@ then
mc_autotune_attitude_control start
fi

#
# Start Vision Target Estimator.
#

if param greater -s VTE_EN 0
then
vision_target_estimator start
fi

#
# Start Multicopter Position Controller.
#
Expand Down
9 changes: 9 additions & 0 deletions ROMFS/px4fmu_common/init.d/rc.vtol_apps
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,15 @@ then
mc_autotune_attitude_control start
fi

#
# Start Vision Target Estimator.
#

if param greater -s VTE_EN 0
then
vision_target_estimator start
fi

fw_rate_control start vtol
fw_att_control start vtol
fw_mode_manager start
Expand Down
95 changes: 95 additions & 0 deletions boards/px4/fmu-v6c/visionTargetEst.px4board
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
CONFIG_BOARD_TOOLCHAIN="arm-none-eabi"
CONFIG_BOARD_ARCHITECTURE="cortex-m7"
CONFIG_BOARD_SERIAL_GPS1="/dev/ttyS0"
CONFIG_BOARD_SERIAL_GPS2="/dev/ttyS6"
CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS5"
CONFIG_BOARD_SERIAL_TEL2="/dev/ttyS3"
CONFIG_BOARD_SERIAL_TEL3="/dev/ttyS1"
CONFIG_DRIVERS_ADC_BOARD_ADC=y
CONFIG_DRIVERS_BAROMETER_MS5611=y
CONFIG_DRIVERS_BATT_SMBUS=y
CONFIG_DRIVERS_CAMERA_CAPTURE=y
CONFIG_DRIVERS_CAMERA_TRIGGER=y
CONFIG_COMMON_DIFFERENTIAL_PRESSURE=y
CONFIG_COMMON_DISTANCE_SENSOR=y
CONFIG_DRIVERS_DSHOT=y
CONFIG_DRIVERS_GPS=y
CONFIG_DRIVERS_HEATER=y
CONFIG_COMMON_INS=n
CONFIG_COMMON_LIGHT=y
CONFIG_COMMON_MAGNETOMETER=y
CONFIG_COMMON_OPTICAL_FLOW=y
CONFIG_DRIVERS_POWER_MONITOR_INA226=y
CONFIG_DRIVERS_POWER_MONITOR_INA228=y
CONFIG_DRIVERS_POWER_MONITOR_INA238=y
CONFIG_DRIVERS_PWM_OUT=y
CONFIG_DRIVERS_PX4IO=y
CONFIG_COMMON_TELEMETRY=y
CONFIG_DRIVERS_TONE_ALARM=y
CONFIG_DRIVERS_UAVCAN=y
CONFIG_BOARD_UAVCAN_TIMER_OVERRIDE=2
CONFIG_MODULES_AIRSPEED_SELECTOR=y
CONFIG_MODULES_BATTERY_STATUS=y
CONFIG_MODULES_COMMANDER=y
CONFIG_MODULES_CONTROL_ALLOCATOR=y
CONFIG_MODULES_DATAMAN=y
CONFIG_MODULES_EKF2=y
CONFIG_MODULES_ESC_BATTERY=y
CONFIG_MODULES_EVENTS=y
CONFIG_MODULES_FLIGHT_MODE_MANAGER=y
CONFIG_MODULES_FW_ATT_CONTROL=y
CONFIG_MODULES_FW_AUTOTUNE_ATTITUDE_CONTROL=y
CONFIG_MODULES_FW_POS_CONTROL=y
CONFIG_MODULES_FW_RATE_CONTROL=y
CONFIG_MODULES_GYRO_CALIBRATION=y
CONFIG_MODULES_GYRO_FFT=y
CONFIG_MODULES_LAND_DETECTOR=y
CONFIG_MODULES_LOAD_MON=y
CONFIG_MODULES_LOGGER=y
CONFIG_MODULES_MAG_BIAS_ESTIMATOR=y
CONFIG_MODULES_MANUAL_CONTROL=y
CONFIG_MODULES_MAVLINK=y
CONFIG_MODULES_MC_ATT_CONTROL=y
CONFIG_MODULES_MC_AUTOTUNE_ATTITUDE_CONTROL=y
CONFIG_MODULES_MC_HOVER_THRUST_ESTIMATOR=y
CONFIG_MODULES_MC_POS_CONTROL=y
CONFIG_MODULES_MC_RATE_CONTROL=y
CONFIG_MODULES_NAVIGATOR=y
CONFIG_MODULES_RC_UPDATE=y
CONFIG_MODULES_SENSORS=y
CONFIG_MODULES_SIMULATION_SIMULATOR_SIH=y
CONFIG_MODULES_TEMPERATURE_COMPENSATION=y
CONFIG_MODULES_VTOL_ATT_CONTROL=y
CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y
CONFIG_SYSTEMCMDS_BSONDUMP=y
CONFIG_SYSTEMCMDS_DMESG=y
CONFIG_SYSTEMCMDS_HARDFAULT_LOG=y
CONFIG_SYSTEMCMDS_I2CDETECT=y
CONFIG_SYSTEMCMDS_LED_CONTROL=y
CONFIG_SYSTEMCMDS_MFT=y
CONFIG_SYSTEMCMDS_MTD=y
CONFIG_SYSTEMCMDS_NSHTERM=y
CONFIG_SYSTEMCMDS_PARAM=y
CONFIG_SYSTEMCMDS_PERF=y
CONFIG_SYSTEMCMDS_REBOOT=y
CONFIG_SYSTEMCMDS_SD_BENCH=y
CONFIG_SYSTEMCMDS_SYSTEM_TIME=y
CONFIG_SYSTEMCMDS_TOP=y
CONFIG_SYSTEMCMDS_TOPIC_LISTENER=y
CONFIG_SYSTEMCMDS_TUNE_CONTROL=y
CONFIG_SYSTEMCMDS_UORB=y
CONFIG_SYSTEMCMDS_VER=y
CONFIG_SYSTEMCMDS_WORK_QUEUE=y

CONFIG_MAVLINK_DIALECT="development"
CONFIG_MODULES_VISION_TARGET_ESTIMATOR=y
CONFIG_MODULES_LANDING_TARGET_ESTIMATOR=n
CONFIG_MODULES_ROVER_POS_CONTROL=n
CONFIG_MODULES_CAMERA_FEEDBACK=n
CONFIG_MODULES_GIMBAL=n
CONFIG_MODULES_UXRCE_DDS_CLIENT=y
CONFIG_UXRCE_DDS_CLIENT_SERIAL=n
CONFIG_MODULES_SIMULATION_SIMULATOR_SIH=n
CONFIG_DRIVERS_GNSS_SEPTENTRIO=n
CONFIG_DRIVERS_IMU_BOSCH_BMI055=n
CONFIG_DRIVERS_IMU_INVENSENSE_ICM42688P=y
4 changes: 3 additions & 1 deletion boards/px4/sitl/default.px4board
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ CONFIG_MODULES_GIMBAL=y
CONFIG_MODULES_GYRO_CALIBRATION=y
CONFIG_MODULES_GYRO_FFT=y
CONFIG_MODULES_LAND_DETECTOR=y
CONFIG_MODULES_LANDING_TARGET_ESTIMATOR=y
CONFIG_MODULES_LANDING_TARGET_ESTIMATOR=n
CONFIG_MODULES_LOAD_MON=y
CONFIG_MODULES_LOCAL_POSITION_ESTIMATOR=y
CONFIG_MODULES_LOGGER=y
Expand Down Expand Up @@ -59,6 +59,7 @@ CONFIG_MODULES_TEMPERATURE_COMPENSATION=y
CONFIG_MODULES_UUV_ATT_CONTROL=y
CONFIG_MODULES_UUV_POS_CONTROL=y
CONFIG_MODULES_UXRCE_DDS_CLIENT=y
CONFIG_MODULES_VISION_TARGET_ESTIMATOR=y
CONFIG_MODULES_VTOL_ATT_CONTROL=y
CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y
CONFIG_SYSTEMCMDS_BSONDUMP=y
Expand All @@ -84,3 +85,4 @@ CONFIG_EXAMPLES_PX4_MAVLINK_DEBUG=y
CONFIG_EXAMPLES_PX4_SIMPLE_APP=y
CONFIG_EXAMPLES_WORK_ITEM=y
CONFIG_MODULES_SPACECRAFT=n
CONFIG_MAVLINK_DIALECT="development"
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions docs/en/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
- [Offboard Mode (MC)](flight_modes_mc/offboard.md)
- [Collision Prevention](computer_vision/collision_prevention.md)
- [Precision Landing](advanced_features/precland.md)
- [Vision Target Estimator](advanced_features/vision_target_estimator.md)
- [Vision Target Estimator Deep Dive](advanced_features/vision_target_estimator_advanced.md)
- [Terrain Following/Holding](flying/terrain_following_holding.md)
- [Throw Launch](flight_modes_mc/throw_launch.md)
- [Assembly](assembly/assembly_mc.md)
Expand Down
Loading
Loading