国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

搭建DJI 無人機(jī)Onboard SDK ROS開發(fā)環(huán)境及測試

這篇具有很好參考價值的文章主要介紹了搭建DJI 無人機(jī)Onboard SDK ROS開發(fā)環(huán)境及測試。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

功能包簡介

ROS功能包名稱:dji_sdk

功能包功能:用于DJI 板載SDK的ROS版本

OSDK 是一個用于開發(fā)無人機(jī)應(yīng)用程序的開發(fā)工具包,基于OSDK 開發(fā)的應(yīng)用程序能夠運行在機(jī)載計算機(jī)上(如Manifold 2),開發(fā)者通過調(diào)用OSDK 中指定的接口能夠獲取無人機(jī)上的各類數(shù)據(jù),經(jīng)開發(fā)者設(shè)計的軟件邏輯和算法框架,執(zhí)行相應(yīng)的計算和處理,生成對應(yīng)的控制指令控制無人機(jī)執(zhí)行相應(yīng)的動作,實現(xiàn)如自動化飛行、負(fù)載控制和視頻圖像分析等功能。
大疆osdk,無人機(jī),無人機(jī),DJI,SDK,ROS
主要優(yōu)勢

  • 兼容廣泛的軟硬件平臺
    使用OSDK 開發(fā)的應(yīng)用程序能夠運行在主流的嵌入式硬件平臺上,如STM32等,也可運行在主流的嵌入式操作系統(tǒng)和軟件架構(gòu)中,如Linux、ROS及RTOS,開發(fā)者按照跨平臺移植中的步驟執(zhí)行所需的工作后,即可在不同版本的軟硬件平臺上運行基于OSDK 開發(fā)的應(yīng)用程序。

  • 滿足復(fù)雜的控制需要
    通過調(diào)用OSDK 開放的接口,即可使無人機(jī)按照指定的控制邏輯在極端環(huán)境中實現(xiàn)自主飛行、負(fù)載控制及圖像感知等應(yīng)用功能。

  • 支持豐富的拓展方案
    OSDK 提供了豐富的接口,方便開發(fā)者使用第三方應(yīng)用程序和算法框架,使用圖像識別、自主巡航及SLAM 等技術(shù)開發(fā)出專業(yè)的應(yīng)用軟件,此外,還方便開發(fā)者接入第三方傳感器、相機(jī)或檢測設(shè)備,采集所需的數(shù)據(jù)信息,滿足用戶個性化的應(yīng)用功能和控制需求。

該功能包為 DJI 機(jī)載 SDK 提供了 ROS 接口,使用戶能夠使用 ROS 消息和服務(wù)完全控制無人機(jī)。
目前支持的無人機(jī)平臺有:

  • DJI M300
  • DJI M100
  • M600
  • M210
  • 配備 A3/N3 飛控的無人機(jī)。

功能包依賴DJI SDK 核心庫,鏈接地址為:DJI SDK 核心庫

注意:功能包有很多的版本,要根據(jù)自己的平臺,選擇正確的版本
大疆osdk,無人機(jī),無人機(jī),DJI,SDK,ROS
其中4.0和4.1是能夠支持M300無人機(jī)飛行平臺的
對于 A3/N3 飛控的無人機(jī),最新的支持版本是3.8版本

ROS WIKI地址:http://wiki.ros.org/dji_sdk

開發(fā)環(huán)境搭建

下載 Onboard-SDK-ROS
git地址:https://github.com/dji-sdk/Onboard-SDK-ROS

下載指定分支命令
git clone -b 分支名+倉庫地址

具體指令如下:

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

大疆osdk,無人機(jī),無人機(jī),DJI,SDK,ROS
放到ROS的工作空間中,進(jìn)行編譯

catkin_make

編譯的時候,會檢測依賴庫,檢測到?jīng)]有Onboard-SDK的時候會自動下載,這時候會花費些時間
大疆osdk,無人機(jī),無人機(jī),DJI,SDK,ROS
自動下載完成后,會在功能包里,出現(xiàn)兩個文件夾:Onboard-SDK-3.8.1、Onboard-SDK-3.8.1-build
大疆osdk,無人機(jī),無人機(jī),DJI,SDK,ROS
中間還會安裝一些依賴的庫,所以會慢些,等到最后報了一個這樣的錯誤:

CMake Error at /home/jk-jone/jone_ws/devel/share/dji_sdk/cmake/dji_sdkConfig.cmake:197 (find_package):
Could not find a package configuration file provided by “nmea_msgs” with
any of the following names:
nmea_msgsConfig.cmake
nmea_msgs-config.cmake
Add the installation prefix of “nmea_msgs” to CMAKE_PREFIX_PATH or set
“nmea_msgs_DIR” to a directory containing one of the above files. If
“nmea_msgs” provides a separate development package or SDK, be sure it has
been installed.
Call Stack (most recent call first):
/opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:76 (find_package)
Onboard-SDK-ROS/dji_sdk_demo/CMakeLists.txt:10 (find_package)

這個好辦,就是缺少nmea_msgs包的依賴,下載就行,指令如下:

sudo apt-get install ros-noetic-nmea-msgs

其中的noetic需要根據(jù)自己ros的版本進(jìn)行替換

然后再次編譯

編譯成功!
大疆osdk,無人機(jī),無人機(jī),DJI,SDK,ROS

測試功能包

dji_sdk 的 launch 文件夾中有一個 sdk.launch 文件
原文件如下:

<launch>
    <node pkg="dji_sdk" type="dji_sdk_node" name="dji_sdk" output="screen">
    <!-- node parameters -->
    <param name="acm_name" type="string" value="/dev/ttyACM0"/>
    <param name="serial_name" type="string" value="/dev/ttyUSB0"/>
    <param name="baud_rate" type="int" value="921600"/>
    <param name="app_id" type="int" value="your app id here"/>
    <param name="app_version" type="int" value="1"/>
    <param name="align_time" type="bool" value="false"/>
    <param name="enc_key" type="string" value="your app key here"/>
    <param name="use_broadcast" type="bool" value="false"/>
    </node>
</launch>

注意這里默認(rèn)配置的串口設(shè)備是 /dev/ttyUSB0 ,這里可以做一個設(shè)備修改和綁定,到時候也要增加串口的訪問權(quán)限
波特率默認(rèn)是921600,與上位機(jī)的設(shè)置要一致
app_id enc_key 需要從官網(wǎng)上申請,申請下來后,填入,即可。

連接設(shè)備

用一個USB轉(zhuǎn)TTL模塊,將TTL端的接口與無人機(jī)API接口連接,USB端插入電腦。

通過dji 上位機(jī),設(shè)置API串口波特率為921600(ROS 默認(rèn)訂閱的主題相對較多,為保證ROS 與基于OSDK 開發(fā)的應(yīng)用程序間有足夠的通信帶寬,UART 的波特率應(yīng)大于921600,修改完上位機(jī),需要重新啟動飛機(jī))

啟動SDK

增加串口權(quán)限

添加用戶組,可長期使用

sudo usermod -aG dialout ${USER}

指定串口單次有效

sudo chmod 777 /dev/ttyUSB0

啟動sdk

roslaunch dji_sdk sdk.launch 

運行會返回一個錯誤

ERRORLOG/1 @ AdvancedSensing, L58: Please make sure the connected drone is a M210 and firmware version is supported.
[ERROR] [1675676083.363339870]: drone activation error
[ERROR] [1675676083.363366996]: Vehicle initialization failed

程序默認(rèn)是用于M210飛機(jī)的,當(dāng)不是該飛機(jī)的時候,程序開著避障傳感器的功能,沖突了,所以需要修改程序,將避障傳感器功能關(guān)閉。


大疆osdk,無人機(jī),無人機(jī),DJI,SDK,ROS
這幾個文件內(nèi)

#ifdef ADVANCED_SENSING
  enable_advanced_sensing = true;
  ROS_INFO("Advanced Sensing is Enabled on M210.");
#endif

改為:

#ifdef ADVANCED_SENSING
  enable_advanced_sensing = false;
  ROS_INFO("Advanced Sensing is Enabled on M210.");
#endif

編譯后,再次運行,會出現(xiàn)程序die掉的情況,很明顯是訪問了非法地址。
大疆osdk,無人機(jī),無人機(jī),DJI,SDK,ROS
可能還是因為ADVANCED_SENSING的原因,將dji_sdk_node.cpp中的關(guān)于ADVANCED_SENSING這個宏里的內(nèi)容,全部注釋掉再次運行

NODES
/
dji_sdk (dji_sdk/dji_sdk_node)
auto-starting new master
process[master]: started with pid [28159]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to d899f17a-a604-11ed-8bc2-87af082c8f87
process[rosout-1]: started with pid [28169]
started core service [/rosout]
process[dji_sdk-2]: started with pid [28176]
STATUS/1 @ init, L55: Attempting to open device /dev/ttyUSB0 with baudrate 921600…
STATUS/1 @ init, L65: …Serial started successfully.
STATUS/1 @ parseDroneVersionInfo, L727: Device Serial No. = 0670169082
STATUS/1 @ parseDroneVersionInfo, L729: Hardware = A3
STATUS/1 @ parseDroneVersionInfo, L730: Firmware = 3.3.8.47
ERRORLOG/1 @ initVirtualRC, L1103: Virtual RC is not supported on this platform!
STATUS/1 @ activate, L1313: version 0x303082F
STATUS/1 @ activate, L1326: Activation successful
STATUS/1 @ verify, L244: Verify subscription successful.
STATUS/1 @ initGimbal, L890: Checking if gimbal is connected …
STATUS/1 @ startPackage, L350: Start package 0 result: 0.
STATUS/1 @ startPackage, L352: Package 0 info: freq=50, nTopics=1.
STATUS/1 @ removePackage, L468: Remove package 0 successful.
STATUS/1 @ initGimbal, L934: Gimbal not mounted!
[ INFO] [1675677533.046816131]: drone activated
[ INFO] [1675677533.060621911]: Use data subscription to get telemetry data!
[ INFO] [1675677533.060638745]: align_time_with_FC set to false. We will use ros time to time stamp messages!
STATUS/1 @ verify, L244: Verify subscription successful.
STATUS/1 @ startPackage, L350: Start package 2 result: 0.
STATUS/1 @ startPackage, L352: Package 2 info: freq=100, nTopics=3.
STATUS/1 @ startPackage, L350: Start package 1 result: 0.
STATUS/1 @ startPackage, L352: Package 1 info: freq=50, nTopics=14.
STATUS/1 @ startPackage, L350: Start package 0 result: 0.
STATUS/1 @ startPackage, L352: Package 0 info: freq=5, nTopics=1.
STATUS/1 @ removePackage, L468: Remove package 0 successful.
STATUS/1 @ startPackage, L350: Start package 0 result: 0.
STATUS/1 @ startPackage, L352: Package 0 info: freq=5, nTopics=12.
STATUS/1 @ startPackage, L350: Start package 3 result: 0.
STATUS/1 @ startPackage, L352: Package 3 info: freq=400, nTopics=1.

運行成功!

并且可以通過日志輸出的信息看到訂閱了很多的topic
這里總結(jié)下:

  • 400hz的1個
  • 100hz的3個
  • 50hz的14個
  • 5hz的1個和12個

訂閱的初始功能在 dji_sdk_node.cpp
例如

  std::vector<Telemetry::TopicName> topicList5hz;
  topicList5hz.push_back(Telemetry::TOPIC_GPS_DATE);
  topicList5hz.push_back(Telemetry::TOPIC_GPS_TIME);
  topicList5hz.push_back(Telemetry::TOPIC_GPS_POSITION);
  topicList5hz.push_back(Telemetry::TOPIC_GPS_VELOCITY);
  topicList5hz.push_back(Telemetry::TOPIC_GPS_DETAILS);
  topicList5hz.push_back(Telemetry::TOPIC_BATTERY_INFO);

之后可以根據(jù)使用情況,將沒有用到的信息關(guān)閉,或者減少頻率。減少通信和計算壓力。

默認(rèn)的ROS topic 有
大疆osdk,無人機(jī),無人機(jī),DJI,SDK,ROS文章來源地址http://www.zghlxwxcb.cn/news/detail-635300.html

到了這里,關(guān)于搭建DJI 無人機(jī)Onboard SDK ROS開發(fā)環(huán)境及測試的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【ROS&GAZEBO】多旋翼無人機(jī)仿真(一)——搭建仿真環(huán)境

    【ROS&GAZEBO】多旋翼無人機(jī)仿真(一)——搭建仿真環(huán)境

    【ROSGAZEBO】多旋翼無人機(jī)仿真(一)——搭建仿真環(huán)境 【ROSGAZEBO】多旋翼無人機(jī)仿真(二)——基于rotors的仿真 【ROSGAZEBO】多旋翼無人機(jī)仿真(三)——自定義無人機(jī)模型 【ROSGAZEBO】多旋翼無人機(jī)仿真(四)——探索控制器原理 【ROSGAZEBO】多旋翼無人機(jī)仿真(五)——位置

    2023年04月17日
    瀏覽(161)
  • 【ROS+gazebo】無人機(jī)開發(fā)一:安裝ros+gazebo+創(chuàng)建并初始化ros工作空間

    Hello,大家好!最近由于課題需要開始摸索ros+gazebo內(nèi)容,主要做多無人機(jī)的協(xié)同仿真,準(zhǔn)備寫成一個系列,想要學(xué)習(xí)的朋友可以訂閱我的頻道。 我的電腦配置:ubuntu20.04 目標(biāo)安裝:ROS noetic版本+gazebo11 好的,下面讓我們一起開始吧! 先用幾句話介紹一下,首先,gazebo 是仿真

    2024年02月13日
    瀏覽(30)
  • DJI RTK無人機(jī)采集后的文件分析:nav、bin、event、MRK文件

    DJI RTK無人機(jī)采集后的文件分析:nav、bin、event、MRK文件

    NAV文件: NAV文件是導(dǎo)航數(shù)據(jù)文件。它們通常存儲有關(guān)飛行路徑、GPS坐標(biāo)、高度和其他相關(guān)數(shù)據(jù)的信息。這些數(shù)據(jù)可用于圖像的地理參照、飛行分析或故障排除。 EVENT文件: EVENT文件記錄了飛行過程中發(fā)生的各種事件,如無人機(jī)何時起飛,何時拍攝到圖像,或何時到達(dá)某個航點

    2024年02月16日
    瀏覽(127)
  • 0基礎(chǔ)學(xué)習(xí)VR全景平臺篇第137篇:720VR全景,DJI無人機(jī)遙控器調(diào)參

    0基礎(chǔ)學(xué)習(xí)VR全景平臺篇第137篇:720VR全景,DJI無人機(jī)遙控器調(diào)參

    上課!全體起立~ 大家好,歡迎觀看蛙色官方系列全景攝影課程! 這節(jié)課以御2為例?介紹的是無人機(jī)調(diào)參 步驟一:下載DJI Go 4并注冊賬號 步驟二:拿下遙桿并裝好,展開遙控天線。將無人機(jī)與遙控器相連,選擇相應(yīng)的連接線,將手機(jī)連接至遙控器上。 步驟三:啟動DJI GO4 AP

    2024年01月21日
    瀏覽(31)
  • 快訊 | 大疆發(fā)布首款三攝航拍無人機(jī)DJI Mavic 3 Pro;文心一言推出內(nèi)測專用獨立App

    快訊 | 大疆發(fā)布首款三攝航拍無人機(jī)DJI Mavic 3 Pro;文心一言推出內(nèi)測專用獨立App

    地平線人事大調(diào)整:引入芯片研發(fā)負(fù)責(zé)人,聯(lián)創(chuàng)將被派駐合資公司 文心一言推出內(nèi)測專用獨立App 空地機(jī)器人值守在雪域高原 大疆發(fā)布首款三攝航拍無人機(jī)DJI Mavic 3 Pro,航拍正式進(jìn)入多焦段時代 OpenAI稱將在未來幾個月推出ChatGPT企業(yè)版訂閱服務(wù) 米哈游和《星穹鐵道》團(tuán)隊已開

    2024年02月15日
    瀏覽(24)
  • (無人機(jī)方向)ros小白之鍵盤控制無人機(jī)(終端方式)

    (無人機(jī)方向)ros小白之鍵盤控制無人機(jī)(終端方式)

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 ubuntu 18.04 pycharm ros melodic 做一個在終端中鍵盤輸入指令,控制飛機(jī)起飛以及進(jìn)入offbaord File-Settings-Project Interpreter-右邊小齒輪Show All-選中正在使用的python 點擊右邊最下面的圖標(biāo),打開Interpreter Path 添加/

    2024年02月15日
    瀏覽(24)
  • 超維空間S2無人機(jī)使用說明書——61、ROS無人機(jī)4G遠(yuǎn)程控制

    超維空間S2無人機(jī)使用說明書——61、ROS無人機(jī)4G遠(yuǎn)程控制

    一、4G通信方案 我們的4G通信主要通過兩種方式實現(xiàn),一種是使用終端模擬器,比如Xshell、putty,另一種是使用遠(yuǎn)程軟件,如nomachine。具體使用教程如下:機(jī)載電腦的相關(guān)環(huán)境已經(jīng)配置完成,直接使用即可。 二、檢查指示燈是否正常 出現(xiàn)兩個藍(lán)色燈,一個慢閃,表明當(dāng)前網(wǎng)絡(luò)

    2024年01月21日
    瀏覽(52)
  • 超維空間M1無人機(jī)使用說明書——61、ROS無人機(jī)物體識別與精準(zhǔn)投放

    超維空間M1無人機(jī)使用說明書——61、ROS無人機(jī)物體識別與精準(zhǔn)投放

    一、視頻演示: 二、源代碼下載鏈接 三、使用說明 1、啟動二維碼識別與降落程序 未出現(xiàn)紅色報錯,表明程序運行正常 2、launch文件詳解 launch文件啟動了四個節(jié)點,節(jié)點作用如下

    2024年02月01日
    瀏覽(24)
  • 超維空間M1無人機(jī)使用說明書——41、ROS無人機(jī)使用yolo進(jìn)行物體識別

    超維空間M1無人機(jī)使用說明書——41、ROS無人機(jī)使用yolo進(jìn)行物體識別

    一、啟動darknet_ros物體識別 當(dāng)終端無報錯出現(xiàn)以上界面,表示物體識別正常運行 1、bringup_darknet.launch文件分別啟動了USB攝像頭和darknet_ros節(jié)點,其中攝像頭節(jié)點主要是發(fā)布圖像話題,提供給darknet_ros節(jié)點訂閱,相反,darknet_ros訂閱圖像話題,根據(jù)訂閱到的圖像數(shù)據(jù)進(jìn)行識別處理

    2024年01月22日
    瀏覽(29)
  • 從ROS1到ROS2無人機(jī)編程實戰(zhàn)指南

    從ROS1到ROS2無人機(jī)編程實戰(zhàn)指南

    親愛的讀者們,我今天非常榮幸地向大家推薦一本本人的全新力作——《從ROS1到ROS2無人機(jī)編程實戰(zhàn)指南》。這本書站在初學(xué)者的角度,從入門到進(jìn)階,再到實戰(zhàn),循序漸進(jìn),是學(xué)習(xí)ROS1和ROS2的最佳選擇。如今已在全國范圍內(nèi)上市,購書即可享受次日達(dá)的快捷服務(wù)! 本書的創(chuàng)

    2024年02月10日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包