DJI Matrice 100 的垂直起飞

Vertical takeoff for a DJI Matrice 100

DJI Android SDK version: 4.11

Matrice 100 / Matrice 600

我正在尝试垂直起飞无人机

我尝试在时间轴中使用 GoToAction,但由于 SDK 中的一些错误而失败,(由您的支持团队 dev@dji.com #29496 确认)我开始使用 GoToAction ,但没有 PROGRESSED 或 FINISHED,也没有记录任何错误。

由于我需要继续工作,我尝试了一种变通方法,即通过以请求的高度每秒调用以下函数 20 次,将 FlightControlData 发送到 VirtualStick:

VerticalControlMode.POSITION
FlightOrientationMode.AIRCRAFT_HEADING
VirtualStickModeEnabled = true
VirtualStickAdvancedModeEnabled = true

void sendHeightCommand(Float requestedAltitude) {
    FlightControlData data = new FlightControlData(0f, 0f, 0f, requestedAltitude);
    flightController.sendVirtualStickFlightControlData(data, djiError -> {
        log.v(djiError.getDescription);
    });
}

它可以工作(有适当的超时时间)但是如果有风,无人机就会飘走,这对我来说非常危险,因为现场有不止一架无人机,我不想他们碰撞。

有没有其他方法可以改变无人机的高度,同时保持其位置不变? 或者有没有一种方法可以测量风,然后反推?

[*]垂直起飞无人机:

我总是在 GoToAction 之前使用 timelineMission 中的 TakeOffAction 来上升到所需的高度。但是我使用的是 Mavic Pro,SDK 可能与矩阵无人机的行为不同。

在将 FlightControlData 与 VirtualSticks 一起使用时,我使用 FlightController class 中的 startPrecisionTakeoff() 方法;起飞后,飞行控制数据不断发送,无人机上升到目标位置。

[*]稳定盘旋:

对于悬停,我看到的唯一低成本解决方案是在 FlightAssistant class 中启用 VisionAssistedPositioning,我不知道 Matrice 是否支持此功能,因为文档不支持在支持的飞机上说什么。

好的,所以解决方案是使用函数:setVirtualStickAdvancedModeEnabled(true)

我没有看到任何结果的原因是因为我在模拟器中玩的是 20.0 North Wind,这显然太多了。

当我将它降低到 5.0 时,它工作得很好。