java怎么做摇杆_DJI虚拟摇杆控制未正确应用
我正在構建一個無人機應用程序,它將發送用于室內飛行的飛行命令 . 我正在實施DJI Mobile SDK的虛擬棒,描述為here .
在嘗試了DJI的模擬器教程here后,我為我的應用程序實現了一個精簡的非模擬版本 . 當我在戶外測試我的應用程序時,控件一致且正確地工作 .
然而,當我進入室內時,無論發出什么命令,無人機只執行1次動作:無人機沿其左后方螺旋槳的方向飛行 . 即使命令僅用于轉動無人機,無人機也將始終朝這個方向飛行 .
有什么想法會發生什么?由于我的代碼在室外工作,我不確定要發布什么代碼 .
UPDATE #1
這是我的飛行控制器設置(在Swift中實現):
self.flightController = (DJISDKManager.product() as? DJIAircraft)?.flightController
self.flightController?.rollPitchControlMode = DJIVirtualStickRollPitchControlMode.velocity
self.flightController?.yawControlMode = DJIVirtualStickYawControlMode.angle
self.flightController?.rollPitchCoordinateSystem = DJIVirtualStickFlightCoordinateSystem.body
UPDATE #2
改變偏航的代碼(帶有一些硬編碼的數字) . 基本上用于使無人機完全轉向 .
private var turnTime = 0
private var turnTimer: Timer? = nil
func turn() {
self.turnTimer = Timer.scheduledTimer(timeInterval: 0.2, target: self, selector: (#selector(turnDroneCommand)), userInfo: nil, repeats: true)
}
@objc func turnDroneCommand() {
self.turnTime += 1
let data = DJIVirtualStickFlightControlData(pitch: 0, roll: 0, yaw: Float(180), verticalThrottle: 0)
self.flightController.send(data, withCompletion: { (error) in
if error != nil {
// Fire custom error callback
}
})
if self.turnTime >= 7 {
self.turnTimer?.invalidate()
self.turnTime = 0
// Fire custom success callback
}
}
我已經實現了一種改變音高的幾乎相同的方法 . 如前所述,目前的結果對于任何一個命令都沒有區別 .
總結
以上是生活随笔為你收集整理的java怎么做摇杆_DJI虚拟摇杆控制未正确应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自然环境资源数据集分享——资源环境数据云
- 下一篇: 批量更改图片文件的格式有什么方法?