• <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就沒有...

    Java單例模式在多線程環境下的性能測試對比實驗分析

    Java設計模式之單例模式 單例模式顧名思義就是在內存只有一個實例,是一個比較常用的設計模式,在很多的應用場景都有使用。關于他的UML圖,應用場景,優點和缺點我就不介紹了,可以參考別人的文章或者文獻等。 實驗目標: - 驗證幾種單例模式是否線程安全 - 多線程條件下:傳統技術實例化類的時間性能問題 - 多線程條件下:單例模式實例化類的時間性能問題 - 模擬場景進行實驗的對比,用數據說話 單例模式模...

    猜你喜歡

    Spring:Bean的生命周期

    文章目錄 Spring Bean的生命周期 1、示例引入 1、定義bean 2、后置處理器1 3、后置處理器2 4、beans.xml的配置 5、注冊兩個后置處理器 2、BeanFactory中bean的生命周期 3、ApplicationContext中bean的生命周期 Spring Bean的生命周期 1、示例引入 1、定義bean 2、后置處理器1 3、后置處理器2 4、beans.xml...

    Mybatis框架復習總結

    Mybatis框架復習總結 基本操作 小優化: #{}和${}的區別 parameterType和resultType 插入后返回主鍵id Mysql使用uuid()函數實現主鍵 總結:Mapper接口開發需要遵循以下規范: mybatis支持別名 關于resultMap 基本操作 框架搭建步驟: 導入jar包 拷貝配置文件,根據所需修改 根據對應數據庫表寫pojo類 定義mapper接口中的方法...

    Quartz入門

    Quartz入門 Quartz簡介及應用場景 Quartz簡單觸發器 SimpleTrigger介紹 Quartz表達式觸發器CronTirgger介紹 Quartz中參數傳遞 Spring task Vs Quartz Quartz簡介及應用場景 Quartz介紹 任務調度框架“Quartz”是OpenSymphony開源組織在Job scheduling領域又一個開源項...

    EWS java api 向Exchange 服務器中創建日歷會議

    通過會議管理系統將客戶會議信息發送到Exchange 服務系統日歷中. 我寫了個工具類如下: pom.xml 工具類 /** * Exchange 發送一條會議郵件 */ 歡迎大家留言討論 如有轉載請標明出處...

    關于cocoapods的安裝和使用的一些問題

    cocoapods 基本上是iOS項目中必備的第三方庫管理工具. 三方庫以及cocoapods的版本信息都存在Podfile.lock的.為了統一團隊的開發環境,lock文件都會加入git或者svn管理.當lock有變化是,運行項目時,就會提示 pod install. 升級cocoapod出現問題 在嘗試更新gem:sudo gem update --system 和升級cocoapods:su...

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