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

    jersey訪問路徑是如何匹配并訪問的(一)

    上周同事遇到了一個問題,就是明明路徑存在,但是卻報出404未找到路徑,但是不是所有的路徑都404,網上查了很多關于jersey的資料,好像也沒說全,這次就自己查看一下源碼,看看它到底是怎么去匹配的。 舉一個例子: http:127.0.0.1:8080/dsj/dsjql/v1/UnittypeCount/getList能訪問成功; http:127.0.0.1:8080/dsj/dsjql/v1...

    猜你喜歡

    MINIO分布式集群搭建

    搭建分布式集群 使用docker-compose 中文文檔:https://docs.min.io/cn/deploy-minio-on-docker-compose.html Docker Compose允許定義和運行單主機,多容器Docker應用程序。 使用Compose,您可以使用Compose文件來配置MinIO服務。 然后,使用單個命令,您可以通過你的配置創建并啟動所有分布式MinIO實...

    LINUX設備驅動模型分析之五 總線-設備-驅動模塊總結

    前面幾篇文章我們對bus-device-driver模型進行了單獨介紹,本篇文章我們對這三部分進行總結,同時對之前文章中未細化的部分進行詳細說明。 bus-device-driver相關結構體關聯 如下圖是包含bus-device-driver的關聯圖,我們根據該流程圖再次進行一下說明。   1.devices_kset集合說明 內核系統中在device模塊的初始化接口中,創建了一個ks...

    python 爬蟲實踐 (爬取鏈家成交房源信息和價格)

    簡單介紹 pi: 簡單介紹下,我們需要用到的技術,python 版本是用的pyhon3,系統環境是linux,開發工具是vscode;工具包:request 爬取頁面數據,然后redis 實現數據緩存,lxml 實現頁面數據的分析,提取我們想要的數據,然后多線程和多進程提升爬取速度,最后,通過celery 框架實現分布式爬取,并實際部署下,下面就按這個邏輯順序,進行介紹 request爬取頁面數據...

    從NIO編程到Netty的使用

    我們在網絡編程——NIO編程中,就曾介紹過直接使用NIO進行編程,這里我們介紹下如何使用Netty框架,來完成我們之前直接使用NIO完成的功能,就是一個簡單的客戶端和服務端的通信。 在這之前,我們先來簡單了解一下Netty框架的核心組件: Channel Channel 是Java NIO 的一個基本構造。它代表一個到實體(如一個硬件設備、一個文件、一個網絡套接字或者一個能...

    小魚的Pytorch撞墻到撞墻墻到撞墻墻墻的精通之路二:自動微分

    自動微分篇 autograd requires_grad && grad_fn tensor.backward && tesnor.grad 總結&&參考文獻 基于官方教程,記載小魚的個人理解,記錄些許項目,以及不斷遇到的離奇的bug及殺蟲方法。 autograd autograd是pytorch之中的一個核心計算,提供了自動計算微分、跟蹤微分過程、...

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