• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • 大疆無人機實現目標定位

    標簽: 定位  java

    大疆無人機實現目標定位

    大疆無人機回傳的實時視頻可以幫助飛友觀察發現美景,就稱為目標吧,你偏偏對目標很感興趣,迫切想知道目標的位置,最好是經緯度坐標。你查找大疆Document,欣喜地發現大疆提供了定位機體本身的定位方法(通過FlightController.setStateCallback重寫Update函數即可),不過并沒有定位目標的現成函數。
    實際上,屏幕上的像素與實地坐標存在一一對應的關系,找到這個關系就能實現實地目標的定位。
    建模條件:①地面為水平平面;②相機視角θ(大疆Z3為94度);③飛機相對高度droneHeight,經緯度(droneLat,droneLng),機頭朝向droneHeading;④屏幕分辨率deviceWidth、deviceHeight;⑤屏幕以左上角為原點(0,0),向右向下為正;⑥相機垂直地面;⑦不考慮目標的高度和圖像形變。
    在這里插入圖片描述

    則任意屏幕的像素點(x,y),對應的實地經緯度坐標為唯一的,假設為(xLng,yLat),從而可以用大疆SDK提供的函數在地圖中標定。
    基于上述模型,得到從像素點到實地位置的計算過程:
    1、根據飛機高度和相機視角,計算屏幕中的圖像對應實地的長度(Height1)和寬度(Width1):
    Width1=droneHeighttan(Θ/2)
    Height1=deviceHeight
    Width1/deviceWidth;
    2、計算目標像素在屏幕中相對于屏幕中心點的歸一化位置(tmpX ,tmpY),其中tmpX = droneHeightx2/Width1, tmpY = -y/x*tmpX;

    3、根據飛機當前位置和機頭方向,解算實地的頂點坐標:
    xLng=droneLng+(tmpXcos(droneHeading)- tmpYsin(droneHeading))M_TO_LAT;
    yLat=droneLat+(tmpY
    cos(droneHeading)+ tmpX*.sin(droneHeading))*M_TO_LAT;
    以上可以計算屏幕像素與實地經緯度的一一對應關系。
    實現函數也很簡單:

    private DJILatLng calcTargetLatLng(LocationCoordinate3D drone3D, PointF pointF,int droneHeading){
    final double M_TO_LAT = 360.0/40000000;
            DJILatLng targetLatLng = new DJILatLng(0.0,0.0);
            double tmpX,tmpY;
            double Theta = -droneHeading*Math.PI/180;
            double Height =  drone3D.getAltitude();
            tmpX = Height*pointF.x*2/deviceWidth;
            tmpY = -pointF.y/pointF.x*tmpX;
            targetLatLng.longitude = drone3D.getLongitude() + (tmpX*Math.cos(Theta) - tmpY*Math.sin(Theta))*M_TO_LAT;
            targetLatLng.latitude  = drone3D.getLatitude() + (tmpY*Math.cos(Theta) + tmpX*Math.sin(Theta))*M_TO_LAT;
    
            return targetLatLng;
        }
    

    參數說明:drone3D是飛機的高度、經度、緯度信息,droneHeading是機頭朝向,以上兩個參數均可以通過在OnCreate函數中,用FlightController.setStateCallback重寫Update函數得到;pointF是目標像素點的位置,通過點擊屏幕獲取。
    如果需要,可以通過DJIMap.addMarker將目標標定到地圖中。測試效果,飛機在100米高度,有可能把機動車道標記到慢車道,這個誤差可以接受。

    版權聲明:本文為yangyunjun原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/yangyunjun/article/details/111414211

    智能推薦

    盤一盤 Python 特別篇 22 - 分箱之 cut

    本文含 1852 字,14 圖表截屏 建議閱讀 10 分鐘 掃碼下載本貼用到的數據 本文是 Python 系列的特別篇的第二十二篇 特別篇 1 - PyEcharts TreeMap 特別篇 2 - 面向對象編程 特別篇 3 - 兩大利「器」 特別篇 4 - 裝飾器 特別篇 5 -&nbs...

    LeetCode-47.全排列Ⅱ、深度優先搜索

    深度優先搜索 深度優先搜索(DFS)就是在每一步時對每一種可能的選擇一條道走到底,然后再回過頭嘗試另外一種選擇。 深度優先搜索的關鍵是要考慮“當前這一步”該如何做,至于“下一步”該怎么做和當前這一步的解決方法是一樣的。在進行當前步的選擇之前要確定已經做出的選擇列表,然后在剩余可供選擇的每一種可能進行遍歷,對于每一種選擇將選擇結果以及選擇狀態代入下一步...

    分母為0怎么除????---java后端處理 與 sql處理

    (一)java處理 (二)SQL處理 結果:后端處理與sql處理達到的效果一直!誰的效率更明顯,暫時未知!...

    知識點最全的數據庫面試題

    來源:https://zhuanlan.zhihu.com/p/150959652 13道sql,基本上覆蓋了所有sql的核心點。 要求寫出一下SQL語句 1、查詢位于“華東”或“華南”地區的供應商的ID、公司名稱、地區、城市和電話字段的值 a. 地區=”華東” OR a.地區=”華南”; 2、查詢&l...

    猜你喜歡

    面向切面編程(AOP)知識總結

    目錄 1.存在問題 2.AOP的概念 3.AOP應用范圍 3.AOP實現方式 4.應用舉例 5.結束語 本文在學習【老張的哲學】系列文章AOP相關章節后,自己歸納總結的筆記。 1.存在問題 最近,其它項目小組在開發的過程中遇到了一個問題,在日志記錄時,用戶明明點擊的是更新操作,可翻看記錄時卻發現是查詢操作,起初是一頭霧水,后面跟蹤該更新操作的代碼后才發現,在日志記錄時確實是寫著查詢,說到這里,大家...

    集合中出現的問題

    1.Java集合框架的長處? 2.集合框架中的泛型有什么長處? 3.Java集合框架的基礎接口有哪些? 4.為何Map接口不繼承Collection接口? 5.Iterater和ListIterator之間有什么差別? 6.fail-fast與fail-safe有什么差別? 7.在迭代一個集合的時候,怎樣避免ConcurrentModificationException?8.在Java中,Hash...

    三元運算符引起的bug

    三元運算符引起的bug 前言 延伸 總結 前言 今天測試提交了一個bug,跟蹤發現了一段代碼,初看還沒什么問題,簡易后的代碼: 這段代碼想要實現的功能是返回 細看發現后面使用的是三元運算符,這就是造成這個bug的元兇。 解決方案:使用括號括起來。 延伸 在做這個例子的時候,使用ideal,習慣性的使用sonar掃描: 這里很明顯的提醒這里表達式有問題。 總結 三元運算符格式:expression1...

    利用dom4j來生成xml

    xml比較常用,處理xml的方式也比較多。現在就聊聊如何用dom4j來生成xml吧 先看看效果。。。 上傳代碼: 大概說下主要步驟吧:   1.創建document對象,創建root根節點,然后通過根節點繼續生成節點。其中也可以給該節點添加屬性,復制等。   2.創建輸出流,將該對象輸出到xml文件中去。需要設置好路徑和文件名等。...

    Android輪播圖原理思路分析+實現方案

    來自:http://blog.csdn.net/wubihang/article/details/52512597 ListView的headerView設置為輪播圖之后結合上/下拉刷新/加載的模式成為現在大多數APP的一個必須具備的功能,對于許多初學者來說想要實現輪播圖這樣一個集線程睡眠、自動處理、替換過程中刷新UI界面的組合功能非常困難,沒有思路,感覺無從下手,去搜索各種實現方案,發現目前充斥...

    精品国产乱码久久久久久蜜桃不卡