Jacob Dahl
ce3e62841f
module_base: remove CRTP template pattern to reduce flash bloat ( #26476 )
...
* module_base: claude rewrite to remove CRTP bloat
* module_base: apply to all drivers/modules
* format
* fix build errors
* fix missing syntax
* remove reference to module.h in files that need module_base.h
* remove old ModuleBase<T>
* add module_base.cpp to px4_protected_layers.cmake
* fix IridiumSBD can_stop()
* fix IridiumSBD.cpp
* clang-tidy: downcast static cast
* get_instance() template accessor, revert clang-tidy global
* rename module_base.h to module.h
* revert changes in zenoh/Kconfig.topics
2026-02-19 15:17:17 +13:00
Jacob Dahl
d5ddc9135d
clang-tidy: fix issues ( #26498 )
2026-02-17 14:09:43 -09:00
86e1356e0a
Extend SENS_GPS_PRIME usage for UAVCAN GNSS devices ( #26126 )
...
* UAVCAN: extent SENS_GPS_PRIME usage to UAVCAN GNSS devices
* use convenience function
Co-authored-by: Matthias Grob <maetugr@gmail.com >
* Update src/drivers/uavcan/sensors/gnss.cpp
Co-authored-by: Øyvind Taksdal Stubhaug <o_github@oystub.com >
* Apply suggestion from @MaEtUgR
Co-authored-by: Matthias Grob <maetugr@gmail.com >
* Fix type casting in GPS prime range check
* reverted parameter default
* UAVCAN: fix and improve device_id logic (#26135 )
* UAVCAN: extent SENS_GPS_PRIME usage to UAVCAN GNSS devices
* use convenience function
Co-authored-by: Matthias Grob <maetugr@gmail.com >
* Update src/drivers/uavcan/sensors/gnss.cpp
Co-authored-by: Øyvind Taksdal Stubhaug <o_github@oystub.com >
* Apply suggestion from @MaEtUgR
Co-authored-by: Matthias Grob <maetugr@gmail.com >
* Fix type casting in GPS prime range check
* UAVCAN: fix and improve device_id logic
* Added bus information to more UAVCAN drivers
* Fix device_id registration in UavcanBarometerBridge
---------
Co-authored-by: Matthias Grob <maetugr@gmail.com >
Co-authored-by: Øyvind Taksdal Stubhaug <o_github@oystub.com >
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com >
---------
Co-authored-by: Matthias Grob <maetugr@gmail.com >
Co-authored-by: Øyvind Taksdal Stubhaug <o_github@oystub.com >
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com >
2026-01-07 10:19:07 -09:00
Silvan
a3694c84f4
PPS: remove redundant boolean literal to silence clang-tidy
...
Signed-off-by: Silvan <silvan@auterion.com >
2025-11-17 12:02:31 -09:00
5eab16c17c
PPS time corection capability for GNSS measurements ( #25838 )
...
** add PPS time corection capability for GNSS measurements
* * add documentation
* add comment for 'future check'
* replace url with relative link
* Update docs/en/advanced/pps_time_sync.md
Co-authored-by: Silvan Fuhrer <silvan@auterion.com >
* Subedit and add to sidebar
* Apply suggestions from code review
* Update docs/en/SUMMARY.md
* remove offset jump check, clean up
* add comment pps_compensation activation condition. move documentation to hardware integration
---------
Co-authored-by: Hamish Willee <hamishwillee@gmail.com >
Co-authored-by: Silvan Fuhrer <silvan@auterion.com >
2025-11-11 20:56:56 +01:00
Jukka Laitinen
d5eea0dd92
sensors/VehicleImu: Don't set _backup_schedule_timeout_us shorter than normal scheduling interval
...
With IMUs of higher report rate (e.g. ADIS16470), setting backup schedule timeout simply
to half of the ORB queue length may cause the backup firing before required updates are received.
Set backup schedule to queue length - 1 instead. Additionally, double-check that the backup
doesn't get too short after finding the largest integer multiple of gyro_integral_samples.
Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae >
2025-10-31 16:21:08 -08:00
Marco Hauswirth
a755dfa07f
enable baro-gnss autocalibration by default ( #25196 )
2025-07-15 10:53:04 +02:00
Silvan Fuhrer and Ramon Roche
e0663cd6ad
Sensor params: improve board rotation parameter description and meta data ( #25037 )
...
* Sensor params: add @decimals and @min, @max to SENS_BOARD_ params
Signed-off-by: Silvan <silvan@auterion.com >
* Sensor params: Improve parameter description
Signed-off-by: Silvan <silvan@auterion.com >
---------
Signed-off-by: Silvan <silvan@auterion.com >
Co-authored-by: Ramon Roche <mrpollo@gmail.com >
2025-06-16 14:59:03 -08:00
Matthias Grob
6b2b20bd6e
imu_gyro_parameters: lower default angular acceleration filter from 30Hz to 20Hz
...
to avoid noise getting into the derivative term of the PID rate control loop on integration flights.
2025-06-12 17:15:12 +02:00
Marco Hauswirth
8d3c94c947
Baro offset calibration based on GNSS height ( #24859 )
...
* apply offset to baro sensors based on gnss measurements when gnss is selected as hgt-ref
* always calibrate baro with gnss if new param SENS_BAR_AUTOCAL is set accordingly
* always do baro-gnss calibration when AUTOCALIB is set, but ensure epv is small enough and gnss data is consistent with baro
* avoid update and reset in the same step
* minor change of constexpr usage
2025-06-02 08:38:11 +02:00
Silvan
180658c5f9
sensors: display one decimal for params
...
Signed-off-by: Silvan <silvan@auterion.com >
2025-04-25 15:21:19 +02:00
bresch
49624a6457
mag: synchronize calibration count with newly calibrated data
...
The data contained a mix between the old and new calibration. This
caused the EKF to reset to an incorrect (intermediate) heading.
2025-03-26 22:32:51 -04:00
Andy Wheatley
ca2ed655b8
Allow negative differential pressure if parameter enabled ( #24434 )
2025-03-24 09:42:36 +01:00
Marco Hauswirth
c6c0f2228b
clean up
2025-03-12 08:52:39 +01:00
Marco Hauswirth
6112d59e58
do relative calibration of baros with 1s delay
2025-03-12 08:52:39 +01:00
Beniamino Pozzan
9198125ec5
Remove reboot_required from IMU_GYRO_* parameters ( #24435 )
...
* fix: IMU_GYRO_* parameters do not requires reboot
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com >
* restore IMU_GYRO_RATEMAX reboot_required to true
---------
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com >
2025-03-03 12:33:02 -09:00
Marco Hauswirth
d2cbe10243
Clean up temperature msg fields ( #24272 )
...
* remove temp field from airspeed.msg, adjust temp selection
* temp-sensor hirarchy: airspeed, ext. baro, default value
* directly use diff-press or baro temp in true-airspeed calc
* improve clarity
* add enum for temperature source in VehicleAirData.msg
2025-02-18 13:23:10 +01:00
bresch
e3fd50667d
Mag cal: automatically disable internal mags if external ones are available
2025-02-14 16:12:20 +01:00
Marco Hauswirth
de1ade8eb8
sensors/vehicle_air_data: only trigger the sensor fallback when the baro_fault flag switches from 0 -> 1
2025-02-06 23:47:32 -05:00
Marco Hauswirth
4df65c133e
add cs_baro_fault to switch to fallback baro if available ( #24260 )
2025-01-28 10:37:16 +01:00
ee150a15b4
Optical Flow: add unit testes for only using downward distance sensor ( #23266 )
...
* Test for Optical Flow checks correct camera position
* Formatting fixed
* Update src/modules/sensors/vehicle_optical_flow/test/CMakeLists.txt
Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com >
* Update src/modules/sensors/vehicle_optical_flow/test/VehicleOpticalFlowTest.cpp
Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com >
* Update src/modules/sensors/vehicle_optical_flow/test/VehicleOpticalFlowTest.cpp
Co-authored-by: Silvan Fuhrer <silvan@auterion.com >
* For test GIVEN/WHEN/THEN added
---------
Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com >
Co-authored-by: Silvan Fuhrer <silvan@auterion.com >
2025-01-22 11:58:07 +01:00
RomanBapst
f36b45b2ff
VehicleOpticalFlow: use 32bit integer for dt
...
Signed-off-by: RomanBapst <bapstroman@gmail.com >
2025-01-21 16:48:33 +03:00
RomanBapst
25e76883b7
Integrator: use 32bit integer to store dt to avoid overflow
...
Signed-off-by: RomanBapst <bapstroman@gmail.com >
2025-01-21 16:48:33 +03:00
Marco Hauswirth
a191e1e14e
always allow disabling uncalibrated baro ( #23782 )
...
* always set baro calibration id and prio param
* change to ParametersSave
* only save baro calib param if not calibrated
2024-11-20 14:05:46 +01:00
Silvan Fuhrer
f9c4c8b22c
VehicleIMU: move setting of _notify_clipping from constructor to ParametersUpdate()
...
Signed-off-by: Silvan Fuhrer <silvan@auterion.com >
2024-11-13 12:10:48 -05:00
bresch
ea1a6a327c
flow: add scale factor parameter
2024-11-13 10:28:29 -05:00
Nicolas MARTIN and Nicolas Martin
d269ddfb49
sensors/vehicle_air_data: fix air data publication rate ( #23717 )
...
Co-authored-by: Nicolas Martin <n.martin@elistair.com >
2024-09-24 09:49:47 -04:00
Claudio Chies
1a4e8a7341
FLOW: PARAM: GCS Parameter readability
2024-08-26 16:09:21 +02:00
Marco Hauswirth
39abd87949
set best sensor to -1 after last sensor fails ( #23425 )
2024-07-24 11:24:07 +02:00
Daniel Agar
c64104e9f1
sensors/vehicle_angular_velocity: silence gyro selection fallback warning (PX4_WARN -> PX4_DEBUG)
...
- this warning was to catch any potential errors in sensor selection
relative to what's actually available, we don't need to complain
about initial selection before the EKF selector is available
2024-05-02 11:53:31 -04: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
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
Julian Oes
88b3316409
sensors/vehicle_imu: fix gyro clipping publication
...
The IMU topic is not zeroed, and the clipping information was not
copied, so this field ended up being garbage.
Signed-off-by: Julian Oes <julian@oes.ch >
2024-01-09 10:20:40 -05:00
bresch
b8c81f6281
gps_blending: fallback to secondary if primary has no fix
2023-12-20 16:35:30 -05:00
bresch
094048ed04
gps_blending: fix selection rapid switching
...
Once a timeout of the primary instance is detected, a fallback is only
allowed until the primary receiver is regained.
2023-12-20 16:35:30 -05:00
oystub
24cee81279
gps_blending: output valid time_utc_usec
...
Before this fix, the time_utc_usec output from blending was always 0.
This means that you wouldn't get a valid vehicle_gps_position/time_utc_usec
With this commit, UTC timestamps are blended according to weights for
all GPSes with a nonzero UTC timestamp value.
It would be possible to simply use the first valid UTC timestamp instead
of blending, but since the system timestamps are blended, it seems
suitable to blend UTC timestamps as well.
2023-12-13 11:14:00 -05:00
marcojob
cf62dad28d
sensors/VehicleAngularVelocity: fix force SensorSelectionUpdate
...
- This fixes the force call on SensorSelectionUpdate
- In contrary to the rest of the codebase, this method also takes a timestamp: When you call SensorSelectionUpdate(true), time_now_us is actually set to 1 and force stays false, as this is the default value for in the method.
2023-12-12 20:56:59 -05:00
Matthias Grob
1c25d65a1e
Add missing newline at the end of files
2023-12-01 13:11:00 -05:00
alexklimaj
59abab8379
sensors: add parameter to silence imu clipping
2023-11-28 11:57:14 -05:00
bresch
1c3a1183c8
ekf2-flow: refactor control logic
...
Use flow rates instead of integrals in backend. This allows us to delay
the data to the mitpoint integration time and simplifies the code in
general.
Gyro compensation can still be done in EKF2 if needed, but the
flow module normally already appends the correct gyro data to the flow
message.
2023-11-21 21:56:34 -05:00
Roman Bapst and Thomas Stastny
dd2322d622
Added PerformanceModel for fixed wing ( #22091 )
...
* created a Performance Model for fixed wing vehicle
- added compensation for maximum climbrate, minimum sinkrate, minimum airspeed and trim airspeed based on weight ratio and air density
- added atmosphere lib to standard atmosphere calculations
---------
Signed-off-by: RomanBapst <bapstroman@gmail.com >
Co-authored-by: Thomas Stastny <thomas.stastny@auterion.com >
2023-11-21 17:13:50 +01:00
Roman Bapst
ecb78ca207
new library for atmosphere calculations
...
Signed-off-by: RomanBapst <bapstroman@gmail.com >
2023-10-21 12:25:45 -05:00
d61743412c
ekf2: fix flow gyro bias corrections ( #22145 )
...
* ekf2-flow: fix flow gyro bias compensation
* ekf2-flow: apply flow gyro bias when used
* ekf2: log optical flow gyro bias
* ekf2: optical flow control always use provided flow gyro (with bias applied)
* ekf2-flow: log flow gyro and gyro reference
* ekf2-flow: support senrors with XY flow gyro
---------
Co-authored-by: Daniel Agar <daniel@agar.ca >
Co-authored-by: bresch <[brescianimathieu@gmail.com ](mailto:brescianimathieu@gmail.com )>
2023-10-05 10:51:30 -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
6a58f6c7dc
Enable arbitrary euler angle for Mag rotation CAL_MAGx_{ROLL,PITCH,YAW}
...
- Enable arbitrary euler angle for Mag rotation
- new CUSTOM rotation enum out of the normal enum range
- mag_rot: automatically change to custom if euler rot is set
- sensor_calibration: Magnetometer save custom rotation parameters
- mag_cal: cross mention rotation parameters
- This allows the user to see the RPY options when searching for the rotation parameter
---------
Co-authored-by: Junwoo Hwang <junwoo@auterion.com >
Co-authored-by: bresch <[brescianimathieu@gmail.com ](mailto:brescianimathieu@gmail.com )>
Co-authored-by: Daniel Agar <daniel@agar.ca >
2023-08-26 14:52:39 -04:00
Daniel Agar
82962acd5c
sensors/vehicle_magnetometer: add mag calibration PX4_DEBUG output
2023-07-26 12:42:51 -04:00
Sergei Grichine
f000238987
SensorGps.msg: switch to double precision for lat/lon/alt
...
To match https://github.com/PX4/PX4-GPSDrivers/pull/132 - adding high precision RTK lat/lon/alt components
2023-07-13 07:50:09 +02:00