Чтобы добавить систему захвата в фотограмметрическую цепочку, мы изучили некоторые решения, предложенные в документации DJI Mobile SDK.Мы проверили следующие функциональные возможности:
- WaypointMission с функцией shootPhotoTimeInterval класса Waypoint
- TimelineElement с newShootSinglePhotoAction класса shootPhotoAction
Первый способсостоят из загрузки WaypointMission на дрон.Основным недостатком этого решения является ограничение количества путевых точек (путевые точки ограничены до 99 на одну миссию).Это означает, что количество изображений, которые мы можем сделать, ограничено 99. Если, как мы хотим, мы берем одно изображение на путевую точку.
Изучение второго метода показывает, что между выполнением существует задержкаиз 2 последовательных действий временной шкалы.Например, если мы сделаем временную шкалу с 5-ю использованием класса GotoAction (5 баллов), чтобы сделать прямоугольную замкнутую форму.Затем мы запускаем временную шкалу.Мы видим, что как только целевая точка достигнута, перед тем, как дрон перейдет к следующей точке, будет задержка.
Вот код для иллюстрации примера:
final List<TimelineElement> elements = new ArrayList<>();
//Takeoff from the ground
elements.add(new TakeOffAction());
//Go 5 meters from home point
elements.add(new GoToAction(5));
//Go to places different from home point to make a rectangular form and take pictures
elements.add(new GoToAction(new LocationCoordinate2D(x1, y1), 10));
elements.add(ShootPhotoAction.newShootSinglePhotoAction());
elements.add(new GoToAction(new LocationCoordinate2D(x2, y2), 10));
elements.add(ShootPhotoAction.newShootSinglePhotoAction());
elements.add(new GoToAction(new LocationCoordinate2D(x3, y3),10));
elements.add(ShootPhotoAction.newShootSinglePhotoAction());
elements.add(new GoToAction(new LocationCoordinate2D(x4, y4), 10));
elements.add(ShootPhotoAction.newShootSinglePhotoAction());
elements.add(new GoToAction(new LocationCoordinate2D(x5, y5), 10));
//Go home
elements.add(new GoHomeAction());
Чтобы найти решение, соответствующее нашим потребностям, мы хотели бы знать, почему происходит задержка.Это потому, что следующее действие будет загружено на дрон только после завершения предыдущего действия?
Спасибо за вашу помощь!