Как написать код в Android для отправки путевых точек на мой дрон 3DRobotics?

Добрый день.

В данный момент я пытаюсь написать код в "Основном действии", чтобы отправить некоторые путевые точки моему дрону IRIS, но он работает только тогда, когда очков пять. Не могли бы вы проверить мой код и дать мне советы о том, что происходит, и как я могу отправить больше точек на мой дрон? Я очень ценю вашу помощь, потому что я новичок в Android:

Код:

public void onBtnConnectTap3(View view) {

        if (this.drone.isConnected()) {
        this.drone.disconnect();
         } else {
        Spinner connectionSelector = (Spinner) findViewById(R.id.selectConnectionType);
        int selectedConnectionType = connectionSelector.getSelectedItemPosition();

        Bundle extraParams = new Bundle();
        if (selectedConnectionType == ConnectionType.TYPE_USB) {
            extraParams.putInt(ConnectionType.EXTRA_USB_BAUD_RATE, DEFAULT_USB_BAUD_RATE); // Set default baud rate to 57600
        } else {
            extraParams.putInt(ConnectionType.EXTRA_UDP_SERVER_PORT, DEFAULT_UDP_PORT); // Set default baud rate to 14550
        }
        ConnectionParameter connectionParams = new ConnectionParameter(selectedConnectionType, extraParams, null);
        this.drone.connect(connectionParams);
        }

        currentMission = new Mission();
        currentMission.clear();

        for (int i = 1; i < 20; i++) {

        waypoint2=new Waypoint();
        yaw=new YawCondition();
        waypoint2.setCoordinate(new LatLongAlt( i, i, i));
        yaw.setAngle(i);
        missionI3 = waypoint2;
        currentMission.addMissionItem(missionI3);
        missionI2=yaw;
        currentMission.addMissionItem(missionI2);
        }

         this.drone.generateDronie();
         this.drone.setMission(currentMission, true);
         this.drone.arm(true);

        }

Dependencies in Build.gradle:
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.1'
    compile 'com.o3dr.android:dronekit-android:2.3.11'
    }

Я хотел бы знать, если вы также знаете, где я могу узнать о том, как разрабатывать приложения для Android для дронов 3DRobotics, учитывая, что мои основные источники: http://android.dronekit.io/first_app.html и http://android.dronekit.io/javadoc/

Заранее спасибо за ваш ответ.

1 ответ

Я не совсем уверен, чего вы пытаетесь достичь, но я вижу некоторые возможные ошибки в вашем коде.

  1. Используйте последнюю версию dronekit-android. Текущая версия 2.7.0. Вы можете быть в курсе версий здесь https://bintray.com/3drobotics/maven/dronekit-android/view

  2. Вы создаете миссию с 38 предметами (19 путевых точек и 19 рысканий). Вы делаете очень небезопасную вещь, устанавливая координаты путевой точки в 1,1,1 ... 19,19,19. Твой автомобиль куда-то полетит, я полагаю, ты не собирался.

  3. Я не уверен, почему у вас есть generateDronie(), Согласно документам

    Создайте действие, чтобы создать миссию дрони, и загрузите его на подключенный дрон.

Дрони - это миссия особого типа, которая пролетит путь селфи.

  1. setMission() верно. Тем не менее, последний шаг в вашем коде - это вооружить автомобиль. Вам нужно будет сказать дрону, чтобы он действительно управлял миссией. Вы можете сделать это с startMission() метод в MissionApi учебный класс.

  2. Будьте внимательны при настройке и запуске миссии с тем же взаимодействием с пользователем. Всегда есть шанс, что setMission() не удастся загрузить в автомобиль. Если это так, startMission() выполнит последнюю миссию, которая была успешно загружена в автомобиль.

    Вы можете проверить успешность загрузки, прослушав трансляцию AttributeEvent.MISSION_SENT,

Вы всегда можете внести свой вклад в документацию, добавив javadoc в API, которые, по вашему мнению, отсутствуют или нуждаются в пояснениях.

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