PX4-ECL
PX4-ECL copied to clipboard
Estimation & Control Library for Guidance, Navigation and Control Applications
Multi-EKF in SITL (3 identical IMUs, 2 identical mags) All estimators experienced a baro hgt timeout, but due to timing some reset to GPS, some to baro. Of the 4...
In ecl ekf code, there are so many calling of reset position and vel. But in reset position and reset velocity function,the related control status flag in them.Their code as...
For now baro data is essential to initialize height in Ekf::initialiseFilter() before switching to another source (GPS, etc.) https://github.com/PX4/ecl/blob/5356077a3244a9a29adfae4aeaaab900cd28e9e8/EKF/ekf.cpp#L193 But it looks not really adoptable because filters will never get...
Overall test coverage is looking good, but there are still a number of gaping holes.  - airspeed_fusion.cpp 68.67% https://codecov.io/gh/PX4/ecl/src/master/EKF/airspeed_fusion.cpp - drag_fusion.cpp 0% https://codecov.io/gh/PX4/ecl/src/master/EKF/drag_fusion.cpp - mag_control.cpp 78.15%...
Can we work on minimizing console output for the estimator? It gets a little absurd when running multiple instances of ecl/EKF (https://github.com/PX4/Firmware/pull/14650). ``` Console INFO [ecl/EKF] reset position to last...
As [documentation](https://docs.px4.io/master/en/advanced_config/tuning_the_ecl_ekf.html#yaw_from_gps_velocity) says: `This also makes it possible to operate without any magnetometer data or dual antenna GPS receiver for yaw provided some horizontal movement` **after takeoff** `can be performed...
The logic that handles height sensor fallback is implemented in more than one place, eg Ekf::controlHeightFusion() and Ekf::controlHeightSensorTimeouts() This should be centralised.
If a reset to optical flow velocity is performed for the first time, the velocity will be always reset to zero. Even if we are in air and get reasonable...
This https://github.com/PX4/ecl/blob/066392ef0247e010d8d10fb33fc6b5da21476227/EKF/gps_checks.cpp#L119-L119 Can never be true because `collect_gps()` only runs if fix_type > 2 https://github.com/PX4/ecl/blob/066392ef0247e010d8d10fb33fc6b5da21476227/EKF/estimator_interface.cpp#L214-L214
From ekf2_main in PX4 firmware https://github.com/PX4/Firmware/blob/38da0f95aad2068645213d783e49663ab4105dbf/src/modules/ekf2/ekf2_main.cpp#L1296-L1301 ``` // Acceleration of body origin in local NED frame float vel_deriv[3]; _ekf.get_vel_deriv_ned(vel_deriv); lpos.ax = vel_deriv[0]; lpos.ay = vel_deriv[1]; lpos.az = vel_deriv[2]; ``` But...