Простой взлет DroneKit не работает

Я пытаюсь сделать простой Takeoff команда.

Вот код ниже:

ControlApi.getApi(this.drone).takeoff(10, new AbstractCommandListener() {
            @Override
            public void onSuccess() {

            }

            @Override
            public void onError(int executionError) {
                alertUser("Error: " + executionError);
            }

            @Override
            public void onTimeout() {

                alertUser("timeout");

            }
        });

Хотя я управляю коптером ARM, команда взлета всегда возвращает ошибку, с executionError 3 или 4 и я не знаю, что это значит? У любого есть executionError коды значения? Или, может быть, знаете, в чем проблема?

1 ответ

Решение

[Решено]. Вот шаги, которые необходимо предпринять, чтобы код работал:

1.

VehicleApi.getApi(this.drone).arm(true, new AbstractCommandListener() {
            @Override
            public void onSuccess() {

            }

            @Override
            public void onError(int executionError) {

            }

            @Override
            public void onTimeout() {

            }
        });

Убедитесь, что вы получите правильный ответ в onSuccess метод.

2.

VehicleApi.getApi(drone).setVehicleMode(VehicleMode.COPTER_GUIDED);

Вот где была моя проблема. Мне как-то удалось поставить вертолет в Guided_NoGps Согласно документации Arducopter, этот режим можно поставить без достаточного количества спутников GPS. Также вам нужно 3DFix в GPS, чтобы переключиться на Guided Режим. Вы должны убедиться, что у вас есть более 9 стабильных блокировок спутников, или этот код просто не будет работать.

3.

Запустите код ниже

ControlApi.getApi(this.drone).takeoff(10, new AbstractCommandListener() {
            @Override
            public void onSuccess() {

            }

            @Override
            public void onError(int executionError) {
                alertUser("Error: " + executionError);
            }

            @Override
            public void onTimeout() {

                alertUser("timeout");

            }
        });

Я проверил это на реальном квадрокоптере на базе контроллера PX4. Также вам нужен ArduCopter версии 3.4 (или выше)

Другие вопросы по тегам