• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • 【大疆無人機OnboardSDK-ROS系統搭建(二)】

    【大疆無人機OnboardSDK-ROS系統搭建(二)】

    硬件軟件參考平臺及設置參考上一篇博客。

    不同之處,使用了OnboardSDK-ROS版本。區別于OnboardSDK,需要創建ROS工作空間,并將SDK源碼放入catkin_ws工作空間進行編譯執行。

    • 具體步驟如下:

    1.編譯djiosdk-core模塊library并安裝到系統。

    安裝上一篇博客下載完成OnboardSDK之后需要對djiosdk-core模塊進行編譯,不然執行ROS版本時會報錯,找不到DJIOSDK之類。

    git clone https://github.com/dji-sdk/Onboard-SDK/releases 
    cd Onboard-SDK
    mkdir build
    cd build
    cmake ..
    make djiosdk-core
    sudo make install djiosdk-core

    2.Onboard-SDK-ROS版本安裝

    下載源碼:https://github.com/dji-sdk/Onboard-SDK-ROS/releases 

    git clone https://github.com/dji-sdk/Onboard-SDK-ROS/releases 

    3.創建ROS下的 catkin workspace工作空間并初始化。

    mkdir -p ~/catkin_ws/src
    cd src
    catkin_init_workspace

    4.編譯Onboard-SDK-ROS。

    把第二步下載的Onboard-SDK-ROS版本解壓,并將整個解壓包文件放入~/catkin_ws/src下。

    文件結構如下圖:

    接著編譯:

    cd ~/catkin_ws
    catkin_make 

    即可將dji_sdk和dji_sdk_demo編譯安裝成功。

    5.注冊開發者賬號:

    開發者官網:https://developer.dji.com/

    注冊一個開發者賬號并成為開發者,創建OnboardSDK的app獲取app_di和app_key

     rosed dji_sdk sdk.launch配置文件或者直接進去該文件夾內文本方式編輯將app_di和key以及波特率設置和Assistant2中一致即可:

    <launch>
        <node pkg="dji_sdk" type="dji_sdk_node" name="dji_sdk" output="screen">
        <!-- node parameters -->
        <param name="serial_name" type="string" value="/dev/ttyUSB0"/>
        <param name="baud_rate" type="int" value="230400"/>
        <param name="app_id" type="int" value="your_id"/>
        <param name="app_version" type="int" value="1"/>
        <param name="align_time" type="bool" value="false"/>
        <param name="enc_key" type="string" value="your_key"/>
        <param name="use_broadcast" type="bool" value="false"/>
        </node>
    </launch>

    6.執行ROS飛行控制實例案例:

    • 在這之前注意A3+Ubuntu連接(USB-TTL)連接正確。A3+Windows(Micro-USB)用來使用Assistant2設置波特率和上面一致。每次調整完波特率之后需要重啟一下A3。并將SDK調整至API控制。遙控器打開并撥到F檔位。

    roslaunch dji_sdk sdk.launch

    打開新的終端并執行飛行控制demo(在demo中有不同的示例都可以試試效果):

    source devel/setup.bash
    rosrun dji_sdk_demo demo_flight_control

    示意圖:

    再打開一個終端查看ROS消息傳遞圖:

    rosrun rqt_graph rqt_graph

     

    • 注意:USB串口問題以及可能遇到報錯問題參考上一篇博客中的解決方法,大同小異。

     

     

    另可參考官網:

    https://developer.dji.com/onboard-sdk/documentation/development-workflow/environment-setup.html#ubuntu-linux

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

    智能推薦

    大疆無人機二次開發進階-DJI mobile SDK和DJI onboard SDK聯合開發行業應用項目

    上一篇文章講到了怎么使用DJI mobile SDK,這次主要講解DJI mobile SDK和DJI onboard SDK聯合開發。 android APP那端向DJI onborad SDK端發數據和收數據我就不做詳細介紹了,調一個函數即可,無需封裝和解析協議,如下:下面詳細介紹DJI onborad SDK的使用,以M600 PRO為例: 1、首先申請DJI onborad SDK&nbs...

    E:大疆M300二次開發PSDKV2.1.0。無法識別無人機型號。一直出現 aircraft type 0

    連接好設備后(M300無人機,開發套件2.0,選用樹莓派4B),可以運行示例程序,但是一直打印 [35.664][module_core]-[Info]-[PsdkCore_Init:134]PSDK is connecting aircraft, aircraft type 0, PSDK adapter type&...

    無人機抓捕

    無人機開發(基于Dji onboard SDK) 目前成果 仿真:發現物體能向大致方向飛行,沒檢測到飛機會停住。 實驗:飛機沒檢測到無人機無法懸停,跟蹤不穩定。 1.很容易出現檢測不到無人機的情況,后面需要在新的場景中訓練數據集,并且需要在數據集中加入遠處的無人機的照片。 2.需要加入uav的probability閾值。 3.記錄寫下的所發點的坐標,寫入log文件,以便后面分析。 4.加入跟蹤算法...

    ROS 無人機仿真系統3 —— 驗證仿真系統

    1、平臺驗證          前面文檔搭建的仿真平臺是否正常,可以馬上允許一個launch文件進行驗證:    當你在終端運行該指令時,會不斷彈出信息,當出現報錯時說明平臺搭建有問題。我在這個過程中出現gazebo運行異常的問題,因為之前使用的是gazebo5,別人建議下使用了gazebo7就沒有...

    利用MQTT協議與阿里云數據交互的python程序

    利用MQTT協議與阿里云數據交互的python程序 設計目的 功能要求和關鍵問題 環境配置問題 本地程序如何連接云上設備 云上的數據交互問題 界面設計問題 阿里云相關操作 本地程序 設計目的 設計開發一個py應用程序,實現對阿里云數據的雙向傳輸和訪問。 功能要求和關鍵問題 環境配置問題 本地程序通過MQTT協議與阿里云相連,首先我們需要下載一個模塊,可以使用pip命令進行安裝,pip instal...

    猜你喜歡

    《Leetcode of November》英雄聯盟:495.提莫攻擊

      如果上一次攻擊和下次攻擊時間之差是大于中毒時間的,那就說明上次中毒時間是滿狀態 如果上一次攻擊時間和下次攻擊時間之差是小于中毒時間的,那就說明上次中毒時間不是滿狀態 遍歷整個數組最后加上最后一次攻擊敵人時滿狀態 總結:主要看準題目的要求,攻擊的中毒狀態是不能無線重疊的,上一次的攻擊和下一次的攻擊之差最好大于duration,這樣才能保證每一次的中毒狀態是滿狀態的。  &nb...

    00017.00線程相關的概念

    系列文章目錄 多線程比較難又比較基礎 文章目錄 系列文章目錄 前言 一、多線程相關的一些概念: 1、程序 2、軟件 3、 進程: 4、線程 5、并行 6、并發 7、CPU 總結 前言 這里不是單單指Java中的概念,而是操作系統的概念,每一個編程語言都會涉及到這些東西 1、JavaSE:多線程基礎 這一段時間我們只講基礎 2、后面:多線程高級 juc(后面的高級部分再詳細說明講解) 一、多線程相關...

    leetcode 64. 最小路徑和

    題目地址:https://leetcode-cn.com/problems/minimum-path-sum/ 題目簡介: 給定一個包含非負整數的 m x n 網格 grid ,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。 說明:每次只能向下或者向右移動一步。  題目解:  ...

    Apollo 源碼解析 —— 客戶端 API 配置(一)之一覽

    1. 概述 老艿艿:本系列假定胖友已經閱讀過 《Apollo 官方 wiki 文檔》 ,特別是 《Java 客戶端使用指南》 。 本文,我們來一覽 Apollo 客戶端配置的 Java API 的實現,從而對它有整體的認識。再在之后的文章,我會寫每個組件的具體代碼實現。 涉及類如下圖:   2. ConfigService co...

    YOLOV3剪枝方法匯總

    1. 前言 上一篇推文如何讓你的YOLOV3模型更小更快? 給大家介紹了一下利用BN層的γ\gammaγ參數對YOLOV3檢測模型進行剪枝,最終獲得了2倍的速度增漲。但需要注意的是,這個剪枝有一些缺點,例如剪枝剪得不夠極限,可能還有一些冗余通道存在,另外和shortcut層相鄰的卷積層以及上采樣層前的卷積層并沒有剪枝。并且剪枝之后模型的通道數會變成一些奇怪的數字例如2323...

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