DJI矩阵100的垂直起飞

问题描述 投票:0回答:2

DJI Android SDK version: 4.11

Matrice 100 / Matrice 600

我正在尝试垂直脱下无人机。

我在时间轴上尝试使用GoToAction,但是由于SDK中的某些错误而失败,(由您的支持团队[email protected]#29496确认),我已经开始使用GoToAction,但是没有进行或完成,并且根本没有记录错误。

因为我需要继续工作,所以我尝试了一种变通方法,方法是通过每秒请求的高度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);
    });
}

并且它可以工作(在适当的超时时间内),但是如果有风,无人机会漂移,这对我来说非常危险,因为现场有不止一架无人机,我不希望它们发生碰撞。

还有另一种改变无人机高度并保持其位置的方法吗?还是有一种方法可以测量风向后推呢?

dji-sdk
2个回答
1
投票

[*]垂直取下无人机:

我总是在GoToAction之前的timelineMission中使用TakeOffAction升至所需的高度。但是,我使用的是Mavic Pro,而使用无人驾驶飞机的SDK可能会表现出不同。

[将FlightControlData与VirtualSticks一起使用时,我在startPrecisionTakeoff()类中使用了FlightController方法;起飞后,连续发送飞行控制数据时,无人机将升至所需位置。

[*]稳定的悬停:

关于悬停,我看到的唯一低成本解决方案是启用FlightAssistant类中的VisionAssistedPositioning,我不知道Matrice是否支持此功能,因为文档在受支持的飞机上未说明任何内容。


0
投票

好,解决方案是使用功能:setVirtualStickAdvancedModeEnabled(true)

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

当我将其降低到5.0时,它可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.