mavsdk_tests: add multicopter alt hold test (#24396)

* mavsdk_tests: add multicopter alt hold test

* fix test filter

* increase altitude tolerance to 10m as a test

* reduce to 1m tolerance

* increase to 5m tolerance

* increase to 2m tolerance

* reduce back to 1m

* delay 60 seconds

* fix log upload

* fix ulog upload path

* make altitude tolerance in tester.wait_until_altitude configurable

* fix lambda

* default arg in declaration

* tighten up tolerance
This commit is contained in:
Jacob Dahl
2025-03-21 14:21:10 -08:00
committed by GitHub
parent a048a8e8a0
commit 4c0a63f679
5 changed files with 71 additions and 5 deletions

View File

@@ -210,13 +210,13 @@ void AutopilotTester::wait_until_hovering()
wait_for_landed_state(Telemetry::LandedState::InAir, std::chrono::seconds(45));
}
void AutopilotTester::wait_until_altitude(float rel_altitude_m, std::chrono::seconds timeout)
void AutopilotTester::wait_until_altitude(float rel_altitude_m, std::chrono::seconds timeout, float delta)
{
auto prom = std::promise<void> {};
auto fut = prom.get_future();
_telemetry->subscribe_position([&prom, rel_altitude_m, this](Telemetry::Position new_position) {
if (fabs(rel_altitude_m - new_position.relative_altitude_m) <= 0.5) {
_telemetry->subscribe_position([&prom, rel_altitude_m, delta, this](Telemetry::Position new_position) {
if (fabs(rel_altitude_m - new_position.relative_altitude_m) <= delta) {
_telemetry->subscribe_position(nullptr);
prom.set_value();
}