日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java怎么做摇杆_DJI虚拟摇杆控制未正确应用

發布時間:2023/12/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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虚拟摇杆控制未正确应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。