Commit Graph

169 Commits

Author SHA1 Message Date
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 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
Daniel Agar b1d3bb0403 stop ignoring Wmissing-field-initializers and fix (#9912) 2018-07-22 12:45:52 -04:00
Daniel Agar d0bde9ab2a replace geo _wrap_pi with matrix::wrap_pi 2018-06-12 09:00:52 +02:00
Daniel Agar 222a91c6be mathlib delete Matrix, Quaternion, Vector 2018-05-23 17:27:09 -04:00
Beat Küng d99b72ea41 attitude_estimator_q: set mag weight to 0 if SYS_HAS_MAG is not set 2018-05-20 11:54:17 +02:00
Beat Küng 12436c1d64 fix attitude_estimator_q: swap quaternion multiplication & fix from_dcm init
Quaterion::from_dcm does not set *this, but just returns the resulting
Quaterion.
2018-05-11 09:34:26 +02:00
Daniel Agar 421b01e677 attitude_estimator_q move to matrix lib 2018-05-11 09:34:26 +02:00
Beat Küng 9e24875131 attitude_estimator_q: fuse accel data only if close to 1g if GPS velocity not used
This reduces attitude drift on vehicles w/o GPS. The default behavior is
unchanged, to use it, disable ATT_ACC_COMP.
2018-05-11 09:34:26 +02:00
Beat Küng f77b8d9aa8 attitude_estimator_q: remove double initialization 2018-05-11 09:34:26 +02:00
Beat Küng 54fac26327 attitude_estimator_q: allow it to be used on boards w/o a mag
By setting ATT_W_MAG to 0
2018-05-11 09:34:26 +02:00
Beat Küng 13ab5ed0d0 px4_main_t: fix method declaration throughout the code base
px4_main_t is defined as:
typedef int (*px4_main_t)(int argc, char *argv[]);
which matches with the definition in NuttX, given to task_create
2018-05-09 07:59:46 +02:00
Daniel Agar 2e92484325 ecl update to latest master with separate libraries (#9406) 2018-05-03 23:48:09 -04:00
Daniel Agar ea3acb7121 cmake remove circular linking and reorganize
- px4_add_module now requires MAIN
 - px4_add_library doesn't automatically link
2018-04-29 21:48:54 -04:00
Daniel Agar 3b5b12e1d1 move baro and magnetometer data out of sensor_combined 2018-04-11 23:26:58 -04:00
Daniel Agar 29b3950747 move geo and geo_lookup to PX4/ecl 2018-03-26 23:16:55 -04:00
Daniel Agar c47cd972a8 attitude_estimator_q remove unused (#8106) 2017-10-13 00:54:52 -04:00
Daniel Agar b4755297ec delete control_state and cleanup vehicle_attitude (#7882) 2017-09-21 16:24:53 -04:00
Daniel Agar 70a485826d attitude_estimator_q remove unused and small publish cleanup 2017-06-08 22:03:08 -04:00
Daniel Agar 4b8bedef48 avoid double promotions 2017-04-01 20:19:28 +02:00