Как написать код в 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 ответ
Я не совсем уверен, чего вы пытаетесь достичь, но я вижу некоторые возможные ошибки в вашем коде.
Используйте последнюю версию dronekit-android. Текущая версия 2.7.0. Вы можете быть в курсе версий здесь https://bintray.com/3drobotics/maven/dronekit-android/view
Вы создаете миссию с 38 предметами (19 путевых точек и 19 рысканий). Вы делаете очень небезопасную вещь, устанавливая координаты путевой точки в 1,1,1 ... 19,19,19. Твой автомобиль куда-то полетит, я полагаю, ты не собирался.
Я не уверен, почему у вас есть
generateDronie()
, Согласно документамСоздайте действие, чтобы создать миссию дрони, и загрузите его на подключенный дрон.
Дрони - это миссия особого типа, которая пролетит путь селфи.
setMission()
верно. Тем не менее, последний шаг в вашем коде - это вооружить автомобиль. Вам нужно будет сказать дрону, чтобы он действительно управлял миссией. Вы можете сделать это сstartMission()
метод вMissionApi
учебный класс.Будьте внимательны при настройке и запуске миссии с тем же взаимодействием с пользователем. Всегда есть шанс, что
setMission()
не удастся загрузить в автомобиль. Если это так,startMission()
выполнит последнюю миссию, которая была успешно загружена в автомобиль.
Вы можете проверить успешность загрузки, прослушав трансляциюAttributeEvent.MISSION_SENT
,
Вы всегда можете внести свой вклад в документацию, добавив javadoc в API, которые, по вашему мнению, отсутствуют или нуждаются в пояснениях.