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
Matthias Grob
f2bca92221
Fix duplicate newlines at the end of files
2024-07-19 14:33:36 +02:00
Daniel Agar
157f7cf40b
simplify world_magnetic_model interface (degrees in, degrees out)
...
- this hopefully helps avoid accidental mis-use
- try to clarify units everywhere
2024-06-04 09:14:36 -04:00
Daniel Agar
78bbb66568
delete SYS_MC_EST_GROUP
...
- introduce per module parameters (EKF2_EN, LPE_EN, ATT_EN)
- add basic checks to prevent EKF2 + LPE running simultaneously
2024-04-15 16:06:08 -04:00
Beat Küng
ae70f9c640
attitude_estimator_q: disable ATT_ACC_COMP by default
...
Improves tracking in the CI test, and I always disabled it on my vehicles
as well.
2023-08-08 12:28:52 -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
Matthias Grob
5ca28dd6dc
Use isAllFinite() in all places that check finiteness on entire vectors or matrices
2022-10-19 19:09:20 +02: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
15223009d2
combine sensor_gps + vehicle_gps_position msgs (keeping separate topics)
2022-07-07 10:24:11 -04:00
Mark Sauder
c19e74784a
attitude_estimator_q: Run() method refactoring ( #19526 )
...
* Refactor attitude_estimator_q_main.cpp Run() method by breaking apart into separate method calls:
* update_vehicle_local_position()
* update_motion_capture_odometry()
* update_visual_odometry()
* update_magnetometer()
* update_vehicle_attitude()
* update_sensors()
* Rename init_attitude_q()
* Standardize whitespace formatting
* Add remaining c++ style initializers.
2022-06-01 13:41:42 -04:00
Daniel Agar
6135bb384b
cleanup module callback registration failed errors
2022-03-23 20:44:50 -04:00
Matthias Grob
68a0414622
Quaternion: rename function to rotate vectors
2022-03-07 20:03:54 -05:00
Jukka Laitinen
9449ed6e66
Add support for protected build in drivers, systemcmds and modules Kconfig
...
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae >
2022-02-18 07:58:58 +01:00
Peter van der Perk
d5e3e9a7bc
[Kconfig] Decompose Kconfig, now each module has its own Kconfig
...
Which is better for versioning and decomposability
2021-10-07 10:09:01 -04:00
Daniel Agar
883624d915
lib/geo: move from ecl
2021-07-15 10:38:24 -04:00
Daniel Agar
fedf8f0266
world_magnetic_model: move from ecl
2021-07-15 10:38:24 -04:00
Daniel Agar
dbaed99626
cmake remove git_ecl target
2021-07-13 10:03:06 -04:00
Beat Küng
629f7ba15b
params: ensure short description is only a single line
...
So a UI can display it properly
2021-03-23 12:55:11 -04:00
Daniel Agar
967d35a6b6
rate limit most parameter_update subscriptions
...
- parameter updates can be quite expensive because they trigger nearly all modules to reload all of their parameters immediately
- limit modules from updating faster than once per second
2021-01-10 21:09:15 -05:00
Daniel Agar
98cff94702
px4_work_queue: directly support SITL lockstep
...
- the purpose is to ensure that every WorkItem (and WorkItems scheduled
by WorkItems) is allowed to run to completion every step
- per workqueue register a lockstep component whenever a work item is
added (if not already registered)
- once the work queue is empty unregister component
2021-01-04 09:38:05 +01:00
Daniel Agar
20c2fe6d28
estimator messages add explicit timestamp_sample
...
- timestamp is uORB publication metadata
- this allows us to see what the system saw at publication time plus the latency in estimation
2020-09-04 10:48:26 -04:00
Daniel Agar and Matthias Grob
1191a0efe6
Update ecl to geo_lookup, SymPy covariance, bugfixes
...
Co-authored-by: Matthias Grob <maetugr@gmail.com >
2020-08-02 12:26:48 -04:00
Daniel Agar
fa44cd5cd5
px4_work_queue: rename navigation_and_controllers -> nav_and_controllers
...
- keep the thread within the current NuttX max length
2020-07-14 09:48:47 -04:00
Beat Küng
71dcf8d619
sitl: use lockstep components API
...
- avoids the need for ekf2_timestamp publications by q and lpe
- adds logger to the lockstep cycle and makes it poll on ekf2_timestamps
or vehicle_attitude. This avoids dropped samples (required for replay).
2020-06-23 11:53:55 -04:00
Mohammed Kabir
5ffe88672e
vehicle_odometry: add timestamp_sample field for latency monitoring
2020-04-28 13:58:43 -04:00
Daniel Agar
326d8efc16
move attitude controllers to new wq:attitude_ctrl
2020-04-27 21:34:35 -04:00
Daniel Agar
a89b69b0ea
vehicle_global_position: remove velocity fields (duplicates of local vx, vy, vz)
...
* attitude_estimator_q: get velocity from local position (if available)
2020-03-11 23:57:43 -04:00
Julian Oes
581b92dd3f
attitude_estimator_q: enable lockstep without LPE
...
When lockstep is enabled and LPE is not running, the
attitude_estimator_q needs to publish ekf2_timestamps in order to signal
to the simulator module that it has fully run.
This essentially fixes flying in lockstep when SYS_MC_EST_GROUP is 3.
2020-03-03 09:31:52 +01:00
Daniel Agar
21a8d7db7f
WorkItem modules: Run() shouldn't be public
2020-01-22 12:03:03 -05:00
Daniel Agar
db69ff0a6e
attitude_estimator_q: move to WQ, module base and module params
2019-11-22 16:02:54 -05:00
Beat Küng
3198610f85
src/platforms: move all headers to platforms/common/include/px4_platform_common
...
and remove the px4_ prefix, except for px4_config.h.
command to update includes:
for k in app.h atomic.h cli.h console_buffer.h defines.h getopt.h i2c.h init.h log.h micro_hal.h module.h module_params.h param.h param_macros.h posix.h sem.h sem.hpp shmem.h shutdown.h tasks.h time.h workqueue.h; do for i in $(grep -rl 'include <px4_'$k src platforms boards); do sed -i 's/#include <px4_'$k'/#include <px4_platform_common\/'$k/ $i; done; done
for in $(grep -rl 'include <px4_config.h' src platforms boards); do sed -i 's/#include <px4_config.h/#include <px4_platform_common\/px4_config.h'/ $i; done
Transitional headers for submodules are added (px4_{defines,log,time}.h)
2019-10-30 11:48:47 +01:00
Daniel Agar
c8e59c4e39
parameter_update use uORB::Subscription consistently
2019-09-29 10:49:03 -04:00
Julian Kent
2d4ecab3b0
Remove unsafe access to .data() and _data in Matrix
2019-09-18 22:01:36 -04:00
Daniel Agar
78ef8aab2d
STACK_MAIN increase default 1024 -> 2048
2019-08-30 19:11:51 -07:00
Daniel Agar
2ad12d7977
sensors: create vehicle_angular_velocity module ( #12596 )
...
* split out filtered sensor_gyro aggregation from mc_att_control and move to wq:rate_ctrl
2019-08-06 12:55:25 -04:00
Daniel Agar
c165a6f71b
attitude_estimator_q: move most orb subscriptions to uORB::Subscription
2019-06-29 15:51:49 -04:00
ArkadiuszNiemiec
556ac5547b
attitude_estimator_q: fix newline at end of file
2019-02-13 08:51:41 -05:00
ArkadiuszNiemiec
d93c3da172
q_estimator: correctly handle loss of external yaw estimation
2019-02-13 08:51:41 -05:00
ArkadiuszNiemiec
6257037924
Revert "q_estimator: correctly handle loss of external yaw estimation"
2019-02-13 08:51:41 -05:00
Arkadiusz Niemiec
075c836dfb
q_estimator: correctly handle loss of external yaw estimation
2019-02-13 08:51:41 -05:00
Daniel Agar
2ffb49b734
delete px4_includes.h header and update boards/ to use syslog
2019-01-23 18:25:18 -05:00
Daniel Agar
60f2a92e3d
replace <cfloat> with <float.h>
...
- <cfloat> isn't available in the NuttX c++ library
2019-01-06 19:20:57 -05:00
Julian Oes
5b9dea5604
Replacing usleep with px4_usleep
...
This is a step towards isolating time from the system.
2018-12-22 10:32:18 +01:00
TSC21
20b3adebf4
attitude_estimator_q_main: remove epsilon comparison; fix logic
2018-11-21 12:21:16 +01:00
TSC21
cc73f214d1
add covariance matrices index aliases
2018-09-18 09:52:33 +02:00
TSC21
8325724079
general fixes on VIO data access
2018-09-18 09:52:33 +02:00
TSC21
5865a40bf3
attitude_estimator_q: add attitude data validation check
2018-09-18 09:52:33 +02:00
TSC21
6b2fb54963
attitude_estimator_q: use vehicle_visual_odometry topic to get the heading
2018-09-18 09:52:33 +02:00
TSC21
440ebfde02
remove att_pos_mocap uORB topics
2018-09-18 09:52:33 +02:00
Beat Küng
f4fef5efc8
attitude_estimator_q: cleanup output, remove unnecessary topic init
2018-07-23 22:32:17 +02:00