起飞后加载后任务时间表不起作用

时间:2019-07-09 08:53:50

标签: android dji-sdk

我遇到一个问题,我执行startTakeOff()方法,并且在之前(0.5米)无人机到达他假定的高度(1.2米)之前返回了该方法的回调米)-这部分有文档记录(startTakeoff())-有点奇怪。返回回调后,我将操作加载到时间轴(获取成功的回调),然后触发startTimeline()方法,我还注册了一个侦听器,该侦听器打印所有时间轴的事件状态,我看到的是时间轴开始,然后GoToAction(时间轴的第一位)开始,但无人机什么也不做,什么也不动。

如果我清理时间轴,重新加载动作,然后再次触发startTimeline()(不调用stopTimeline()),它将按预期的方式工作。

我的问题是-是否有一种“干净”的方法来延迟takeOff的回调?还是让时间轴运行而无需重新加载? “干净”是指我可以设置一个自定义超时,该超时将加载并启动时间轴,但这不是最佳实践……

2 个答案:

答案 0 :(得分:0)

没有OSDK在离开地面时触发回调,您唯一的选择是观察并等待其达到1.2m。

答案 1 :(得分:0)

OSDK仅向您提供一些示例。它不是100%可以正常工作。您应该思考并找到解决问题的方法。

在您的情况下,他们提出的延迟没有任何保证。您需要准确的反馈使其稳定

您可以使用SVO之类的系统来实现此目的。 https://github.com/uzh-rpg/rpg_svo

SVO为您提供您当前无人机状态的反馈。所以不要使用延迟

start take off
while uav not at 1.2 meter -> (take off running) do nothing

while uav airbone -> do the thing you want

此外,您可以设置超时,以防过载和无人机无法成功起飞。

enter image description here

我以前看到人们在Android手机上使用SVO / PTAM / Vinsmono。所以我认为您也可以这样做。