AlphaFilter: move from ecl -> mathlib

This commit is contained in:
Daniel Agar
2021-07-14 16:44:55 -04:00
parent 645fb2ff8c
commit b5430c22c4
14 changed files with 25 additions and 14 deletions
+1 -1
View File
@@ -52,7 +52,7 @@
#include <drivers/drv_hrt.h>
#include <lib/parameters/param.h>
#include <lib/ecl/AlphaFilter/AlphaFilter.hpp>
#include <lib/mathlib/math/filter/AlphaFilter.hpp>
#include <uORB/PublicationMulti.hpp>
#include <uORB/topics/battery_status.h>
+5
View File
@@ -95,6 +95,11 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
add_custom_target(prebuild_targets)
# temporary
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../mathlib/math/filter/AlphaFilter.hpp ${CMAKE_CURRENT_BINARY_DIR}/mathlib/math/filter/AlphaFilter.hpp COPYONLY)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
if(MSVC)
add_compile_options(
/W4
+1 -1
View File
@@ -44,7 +44,6 @@
#include <ecl.h>
#include "common.h"
#include "RingBuffer.h"
#include <AlphaFilter/AlphaFilter.hpp>
#include "imu_down_sampler.hpp"
#include "sensor_range_finder.hpp"
#include "utils.hpp"
@@ -52,6 +51,7 @@
#include <geo/geo.h>
#include <matrix/math.hpp>
#include <mathlib/mathlib.h>
#include <mathlib/math/filter/AlphaFilter.hpp>
using namespace estimator;
-1
View File
@@ -42,7 +42,6 @@ set(SRCS
test_EKF_ringbuffer.cpp
test_EKF_measurementSampling.cpp
test_EKF_imuSampling.cpp
test_AlphaFilter.cpp
test_EKF_fusionLogic.cpp
test_EKF_initialization.cpp
test_EKF_gps_yaw.cpp
+4 -3
View File
@@ -38,7 +38,8 @@ px4_add_library(mathlib
math/filter/NotchFilter.hpp
)
px4_add_unit_gtest(SRC math/filter/LowPassFilter2pVector3fTest.cpp LINKLIBS mathlib)
px4_add_unit_gtest(SRC math/filter/MedianFilterTest.cpp)
px4_add_unit_gtest(SRC math/filter/NotchFilterTest.cpp)
px4_add_unit_gtest(SRC math/test/LowPassFilter2pVector3fTest.cpp LINKLIBS mathlib)
px4_add_unit_gtest(SRC math/test/AlphaFilterTest.cpp)
px4_add_unit_gtest(SRC math/test/MedianFilterTest.cpp)
px4_add_unit_gtest(SRC math/test/NotchFilterTest.cpp)
px4_add_unit_gtest(SRC math/FunctionsTest.cpp)
@@ -41,7 +41,7 @@
#include <cmath>
#include <matrix/math.hpp>
#include "AlphaFilter/AlphaFilter.hpp"
#include <lib/mathlib/math/filter/AlphaFilter.hpp>
using matrix::Vector3f;
@@ -63,9 +63,11 @@ TEST(AlphaFilterTest, runZero)
{
AlphaFilter<float> filter_float{};
const float input = 0.f;
for (int i = 0; i < 10; i++) {
filter_float.update(input);
}
ASSERT_EQ(filter_float.getState(), input);
}
@@ -147,6 +149,7 @@ TEST(AlphaFilterTest, convergenceVector3f)
// THEN the state of the filter should have converged to the input (1% error allowed)
Vector3f output = filter_v3.getState();
for (int i = 0; i < 3; i++) {
ASSERT_NEAR(output(i), input(i), fabsf(0.01f * input(i)));
}
@@ -168,6 +171,7 @@ TEST(AlphaFilterTest, convergenceVector3fAlpha)
// THEN the state of the filter should have reached 65% (2% error allowed)
Vector3f output = filter_v3.getState();
for (int i = 0; i < 3; i++) {
ASSERT_NEAR(output(i), 0.63f * input(i), fabsf(0.02f * input(i)));
}
@@ -184,12 +188,14 @@ TEST(AlphaFilterTest, convergenceVector3fTauDt)
// WHEN we run the filter (1 * time constant)
const float n = tau / dt;
for (int i = 0; i < n; i++) {
filter_v3.update(input);
}
// THEN the state of the filter should have reached 65% (2% error allowed)
Vector3f output = filter_v3.getState();
for (int i = 0; i < 3; i++) {
ASSERT_NEAR(output(i), 0.63f * input(i), fabsf(0.02f * input(i)));
}
@@ -40,7 +40,7 @@
#include <matrix/matrix/math.hpp>
#include <px4_platform_common/defines.h>
#include "LowPassFilter2p.hpp"
#include <lib/mathlib/math/filter/LowPassFilter2p.hpp>
using matrix::Vector3f;
@@ -40,7 +40,7 @@
#include <matrix/matrix/math.hpp>
#include <mathlib/mathlib.h>
#include "MedianFilter.hpp"
#include <lib/mathlib/math/filter/MedianFilter.hpp>
using namespace math;
using matrix::Vector3f;
@@ -39,7 +39,7 @@
#include <gtest/gtest.h>
#include <matrix/matrix/math.hpp>
#include "NotchFilter.hpp"
#include <lib/mathlib/math/filter/NotchFilter.hpp>
using namespace math;
using matrix::Vector3f;
+1 -1
View File
@@ -41,7 +41,7 @@
#include <mathlib/mathlib.h>
#include <matrix/math.hpp>
#include <lib/ecl/AlphaFilter/AlphaFilter.hpp>
#include <lib/mathlib/math/filter/AlphaFilter.hpp>
class TECS
{
@@ -41,7 +41,7 @@
#include "FlightTask.hpp"
#include "Sticks.hpp"
#include <lib/ecl/AlphaFilter/AlphaFilter.hpp>
#include <lib/mathlib/math/filter/AlphaFilter.hpp>
#include <uORB/Subscription.hpp>
class FlightTaskManualAltitude : public FlightTask
@@ -40,7 +40,7 @@
#pragma once
#include <px4_platform_common/module_params.h>
#include <lib/ecl/AlphaFilter/AlphaFilter.hpp>
#include <lib/mathlib/math/filter/AlphaFilter.hpp>
#include <matrix/math.hpp>
#include <uORB/Subscription.hpp>
#include <uORB/topics/takeoff_status.h>
@@ -54,7 +54,7 @@
#include <uORB/topics/vehicle_status.h>
#include <uORB/topics/vehicle_land_detected.h>
#include <vtol_att_control/vtol_type.h>
#include <lib/ecl/AlphaFilter/AlphaFilter.hpp>
#include <lib/mathlib/math/filter/AlphaFilter.hpp>
#include <AttitudeControl.hpp>