mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-01 19:07:45 +08:00
ekf_terr: fix unit test
the flags were valid ony because they were based on timeouts and when starting the unit test, it takes a couple of seconds to actually timeout
This commit is contained in:
@@ -107,25 +107,20 @@ public:
|
|||||||
TEST_F(EkfTerrainTest, setFlowAndRangeTerrainFusion)
|
TEST_F(EkfTerrainTest, setFlowAndRangeTerrainFusion)
|
||||||
{
|
{
|
||||||
// WHEN: simulate being 5m above ground
|
// WHEN: simulate being 5m above ground
|
||||||
// By default, both rng and flow aiding are active
|
|
||||||
const float simulated_distance_to_ground = 1.f;
|
const float simulated_distance_to_ground = 1.f;
|
||||||
_sensor_simulator._rng.setData(simulated_distance_to_ground, 100);
|
runFlowAndRngScenario(simulated_distance_to_ground, simulated_distance_to_ground);
|
||||||
_sensor_simulator._rng.setLimits(0.1f, 9.f);
|
|
||||||
_sensor_simulator.startRangeFinder();
|
|
||||||
_ekf->set_in_air_status(true);
|
|
||||||
_sensor_simulator.runSeconds(1.5f);
|
|
||||||
|
|
||||||
// THEN: By default, both rng and flow aiding are active
|
// THEN: By default, both rng and flow aiding are active
|
||||||
EXPECT_TRUE(_ekf_wrapper.isIntendingTerrainRngFusion());
|
EXPECT_TRUE(_ekf_wrapper.isIntendingTerrainRngFusion());
|
||||||
EXPECT_TRUE(_ekf_wrapper.isIntendingTerrainFlowFusion());
|
EXPECT_FALSE(_ekf_wrapper.isIntendingTerrainFlowFusion());
|
||||||
const float estimated_distance_to_ground = _ekf->getTerrainVertPos();
|
const float estimated_distance_to_ground = _ekf->getTerrainVertPos();
|
||||||
EXPECT_FLOAT_EQ(estimated_distance_to_ground, simulated_distance_to_ground);
|
EXPECT_NEAR(estimated_distance_to_ground, simulated_distance_to_ground, 1e-4);
|
||||||
|
|
||||||
// WHEN: rng fusion is disabled
|
// WHEN: rng fusion is disabled
|
||||||
_ekf_wrapper.disableTerrainRngFusion();
|
_ekf_wrapper.disableTerrainRngFusion();
|
||||||
_sensor_simulator.runSeconds(0.2);
|
_sensor_simulator.runSeconds(5.);
|
||||||
|
|
||||||
// THEN: only rng fusion should be disabled
|
// THEN: rng fusion should be disabled and flow fusion should take over
|
||||||
EXPECT_FALSE(_ekf_wrapper.isIntendingTerrainRngFusion());
|
EXPECT_FALSE(_ekf_wrapper.isIntendingTerrainRngFusion());
|
||||||
EXPECT_TRUE(_ekf_wrapper.isIntendingTerrainFlowFusion());
|
EXPECT_TRUE(_ekf_wrapper.isIntendingTerrainFlowFusion());
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user