gpt4 book ai didi

swift - 利用任务控制

转载 作者:可可西里 更新时间:2023-11-01 01:09:05 24 4
gpt4 key购买 nike

最近我开始尝试使用 DJI Mobile SDK 作为我的一个小项目。我一直在 Swift 中使用 DJI 在他们的 Github 上提供的示例,但我一直在使用 missionControl 时遇到问题,老实说,我什至不确定 missionControl 是否是最好的方法。

目标:简单地说,我想要实现的是我只想让无人机飞到指定的高度并拍摄下方的视频片段。我现在甚至不关心水平运动,只关心垂直运动。

我所做的:利用他们的样本,我让无人机录制了视频片段,但我无法让它真正飞行。我的第一个方法是使用 flightController,我已经成功地让它起飞和降落,但我不相信它们是 goToLocation() 之类的方法。这是起飞和降落的功能方法。

@IBAction func takeOffPressed(_ sender: Any) {
if let aircraft = DJISDKManager.product() as? DJIAircraft {
aircraft.flightController?.startTakeoff(completion: nil)
}else{
self.showAlertViewWithTitle(title:"Action", withMessage: "Product Connection Not Found")
}
}

@IBAction func landPressed(_ sender: Any) {
if let aircraft = DJISDKManager.product() as? DJIAircraft {
aircraft.flightController?.startLanding(completion: nil)
}else{
self.showAlertViewWithTitle(title:"Action", withMessage: "Product Connection Not Found")
}
}

虽然我让无人机起飞,但这并不是真正的飞行,所以我开始研究 missionControl 类,其中似乎有任务来实现我想要的功能,但是我的代码似乎不正确,因为它确实不会导致无人机执行任何操作。如果这里有人对 DJI SDK 更有经验,我将不胜感激。我的非功能代码如下。

@IBAction func doMission(_ sender: Any) {
var elements = [DJIMissionControlTimelineElement]()
elements.append(DJITakeOffAction())
elements.append(DJIGoToAction(altitude: 1)!)
elements.append(DJIGoHomeAction())
DJISDKManager.missionControl()?.scheduleElements(elements)
DJISDKManager.missionControl()?.startTimeline()
}

最佳答案

时间线任务需要进行一些调整,包括开始行动的高度和添加 DJIRecordVideoAction 以录制所需持续时间的视频。试试下面修改后的代码:

@IBAction func doMission(_ sender: Any) {
var elements = [DJIMissionControlTimelineElement]()
elements.append(DJITakeOffAction())
elements.append(DJIGoToAction(altitude: 5)!)
elements.append(DJIRecordVideoAction(duration: 10)!) // this assumes a desired duration of 10 seconds
elements.append(DJIGoHomeAction())
DJISDKManager.missionControl()?.scheduleElements(elements)
DJISDKManager.missionControl()?.startTimeline()
}

您还可以使用 DJIMissionControl addListener:toTimelineProgressWithBlock: 方法为您的代码添加额外的诊断,因为它会为每个时间线事件调用,包括开始和结束所有元素。

关于swift - 利用任务控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49615601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com