【大疆無人機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串口問題以及可能遇到報錯問題參考上一篇博客中的解決方法,大同小異。
另可參考官網:
智能推薦
大疆無人機二次開發進階-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就沒有...
猜你喜歡
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...