mavsdk_tests: add manual RTL after mission

This commit is contained in:
Julian Oes
2019-10-03 11:29:22 +02:00
committed by Lorenz Meier
parent 50892cec9c
commit 64fa7e3fdc
3 changed files with 26 additions and 8 deletions
+5
View File
@@ -127,4 +127,9 @@ std::shared_ptr<MissionItem> AutopilotTester::_create_mission_item(
mission_item->set_position(pos_north.latitude_deg, pos_north.longitude_deg);
mission_item->set_relative_altitude(mission_options.relative_altitude_m);
return mission_item;
}
void AutopilotTester::execute_rtl()
{
REQUIRE(Action::Result::SUCCESS == _action->return_to_launch());
}
+1
View File
@@ -30,6 +30,7 @@ public:
void wait_until_hovering();
void prepare_square_mission(MissionOptions mission_options);
void execute_mission();
void execute_rtl();
private:
mavsdk::geometry::CoordinateTransformation _get_coordinate_transformation();
+20 -8
View File
@@ -11,7 +11,7 @@
#include "autopilot_tester.h"
TEST_CASE("We can takeoff and land", "[multicopter]")
TEST_CASE("Takeoff and land", "[multicopter]")
{
AutopilotTester tester;
tester.connect(connection_url);
@@ -23,17 +23,29 @@ TEST_CASE("We can takeoff and land", "[multicopter]")
tester.wait_until_disarmed();
}
TEST_CASE("We can fly a square mission and do RTL", "[multicopter]")
TEST_CASE("Fly a square missions", "[multicopter]")
{
AutopilotTester tester;
tester.connect(connection_url);
tester.wait_until_ready();
AutopilotTester::MissionOptions mission_options;
mission_options.rtl_at_end = true;
tester.prepare_square_mission(mission_options);
SECTION("Mission including RTL") {
AutopilotTester::MissionOptions mission_options;
mission_options.rtl_at_end = true;
tester.prepare_square_mission(mission_options);
tester.arm();
tester.execute_mission();
tester.wait_until_disarmed();
}
tester.arm();
tester.execute_mission();
tester.wait_until_disarmed();
SECTION("Mission with manual RTL") {
AutopilotTester::MissionOptions mission_options;
mission_options.rtl_at_end = false;
tester.prepare_square_mission(mission_options);
tester.arm();
tester.execute_mission();
tester.wait_until_hovering();
tester.execute_rtl();
tester.wait_until_disarmed();
}
}