我试图使用Drone-Kit android创建简单的任务。
Mission myMission = new Mission();
myMission.clear();
Takeoff to = new Takeoff();
ReturnToLaunch rtl = new ReturnToLaunch();
//set Altitude in meters
rtl.setReturnAltitude(2);
to.setTakeoffAltitude(2);
myMission.addMissionItem(to);
myMission.addMissionItem(rtl);
MissionApi.getApi(this.drone).setMission(myMission,true);
问题在于它有时会起作用,有时候它并没有...... 我不知道为什么它不起作用......我没有在代码中收到任何错误。
我正在听
AttributeEvent.MISSION_UPDATED
AttributeEvent.MISSION_SENT
AttributeEvent.MISSION_RECEIVED
但运行代码时只触发AttributeEvent.MISSION_UPDATED
。
即使它被解雇,这并不意味着任务正确更新。
我正在使用Mission Planer检查任务。
我只是不明白为什么它有时会工作,有时候不会。
我确实确保无人机连接到应用程序。 我还确保无人机可以并且可以携带。 我真的卡在这里......任何帮助都会受到赞赏。
答案 0 :(得分:0)
我之前没有尝试过dronekit-android,但我认为最好打开一个问题here。
Android项目的源代码已更新超过两年了!
通常,有一个上传/下载任务的协议。实现起来并不容易,但您可以实现它。我是用c ++做的。在进入下一步之前,您应该始终检查无人机的确认。检查协议here。
答案 1 :(得分:0)
我会回答我的问题,以防有人遇到同样的问题。
我联系了开发人员,似乎我并不是唯一有这个BUG的人。
似乎当您将ReturnToLaunch
添加到Mission
API中发生的事情时,任务不会发送到无人机。只要我从ReturnToLaunch
移除了Mission
对象,就会正常工作。
解决方法:为了解决这个问题,我在RTL
完成Mission
时将无人机置于mhoSheet.UsedRange.AutoFilter field:=21, Criteria1:=Affiliate & " " & "Recon"
If mhoSheet.UsedRange.rows.SpecialCells(xlCellTypeVisible).rows.count = 1 Then
'--- none of the rows passed the filter, so just exit
Exit Sub
End If
模式。