Browse Source

AlphaFilter: move from ecl -> mathlib

master
Daniel Agar 4 years ago
parent
commit
b5430c22c4
  1. 2
      src/lib/battery/battery.h
  2. 5
      src/lib/ecl/CMakeLists.txt
  3. 2
      src/lib/ecl/EKF/estimator_interface.h
  4. 1
      src/lib/ecl/test/CMakeLists.txt
  5. 7
      src/lib/mathlib/CMakeLists.txt
  6. 0
      src/lib/mathlib/math/filter/AlphaFilter.hpp
  7. 8
      src/lib/mathlib/math/test/AlphaFilterTest.cpp
  8. 2
      src/lib/mathlib/math/test/LowPassFilter2pVector3fTest.cpp
  9. 2
      src/lib/mathlib/math/test/MedianFilterTest.cpp
  10. 2
      src/lib/mathlib/math/test/NotchFilterTest.cpp
  11. 2
      src/lib/tecs/TECS.hpp
  12. 2
      src/modules/flight_mode_manager/tasks/ManualAltitude/FlightTaskManualAltitude.hpp
  13. 2
      src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.hpp
  14. 2
      src/modules/mc_att_control/mc_att_control.hpp

2
src/lib/battery/battery.h

@ -52,7 +52,7 @@ @@ -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
src/lib/ecl/CMakeLists.txt

@ -95,6 +95,11 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) @@ -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

2
src/lib/ecl/EKF/estimator_interface.h

@ -44,7 +44,6 @@ @@ -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 @@ @@ -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
src/lib/ecl/test/CMakeLists.txt

@ -42,7 +42,6 @@ set(SRCS @@ -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

7
src/lib/mathlib/CMakeLists.txt

@ -38,7 +38,8 @@ px4_add_library(mathlib @@ -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)

0
src/lib/ecl/AlphaFilter/AlphaFilter.hpp → src/lib/mathlib/math/filter/AlphaFilter.hpp

8
src/lib/ecl/test/test_AlphaFilter.cpp → src/lib/mathlib/math/test/AlphaFilterTest.cpp

@ -41,7 +41,7 @@ @@ -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) @@ -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) @@ -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) @@ -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) @@ -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)));
}

2
src/lib/mathlib/math/filter/LowPassFilter2pVector3fTest.cpp → src/lib/mathlib/math/test/LowPassFilter2pVector3fTest.cpp

@ -40,7 +40,7 @@ @@ -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;

2
src/lib/mathlib/math/filter/MedianFilterTest.cpp → src/lib/mathlib/math/test/MedianFilterTest.cpp

@ -40,7 +40,7 @@ @@ -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;

2
src/lib/mathlib/math/filter/NotchFilterTest.cpp → src/lib/mathlib/math/test/NotchFilterTest.cpp

@ -39,7 +39,7 @@ @@ -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;

2
src/lib/tecs/TECS.hpp

@ -41,7 +41,7 @@ @@ -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
{

2
src/modules/flight_mode_manager/tasks/ManualAltitude/FlightTaskManualAltitude.hpp

@ -41,7 +41,7 @@ @@ -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

2
src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.hpp

@ -40,7 +40,7 @@ @@ -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>

2
src/modules/mc_att_control/mc_att_control.hpp

@ -54,7 +54,7 @@ @@ -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>

Loading…
Cancel
Save