【大疆無人機OnboardSDK(二)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串口問題以及可能遇到報錯問題參考上一篇博客中的解決方法,大同小異。
另可參考官網: