• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于ROS 的旋翼無人機實驗教學(xué)平臺設(shè)計

    2022-11-18 14:01:22張子明王從慶劉良勇
    電子設(shè)計工程 2022年22期
    關(guān)鍵詞:樹莓旋翼指令

    張子明,王從慶,劉良勇,汪 秒

    (1.中國人民解放軍第5720 工廠 航空設(shè)備測控與逆向工程實驗室,安徽蕪湖 241007;2.南京航空航天大學(xué)自動化學(xué)院,江蘇南京 211106;3.東南大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,江蘇南京 211189)

    旋翼無人機具有機動靈活、反應(yīng)快速、感知能力強、影像實時傳輸、能耗低、性價比高、易于操作等眾多優(yōu)點[1],能夠在三維環(huán)境下執(zhí)行任務(wù)。伴隨著相關(guān)技術(shù)的不斷發(fā)展,旋翼無人機在軍用和民用領(lǐng)域迅速普及并得到廣泛應(yīng)用,特別是通過在旋翼無人機上安裝視覺模塊,可以實現(xiàn)航拍、監(jiān)控、測繪等功能[2-3],在火災(zāi)救援[4]、氣象觀測[5]、地質(zhì)勘探[6]等方面發(fā)揮著越來越重要的作用。同時,旋翼無人機也是當(dāng)今國內(nèi)外各科研、教育機構(gòu)的關(guān)注熱點,屬于自動化、計算機、航空等相關(guān)專業(yè)的前沿領(lǐng)域,具有涉及專業(yè)多、研究內(nèi)容新、實用領(lǐng)域廣、知識體系綜合全面等眾多特點,對于培養(yǎng)學(xué)生的創(chuàng)新實踐能力、驗證理論基礎(chǔ)、加深知識理解等都是一個非常理想的實驗教學(xué)平臺[7-8],已成為重要的學(xué)術(shù)研究載體[9-10]。

    目前旋翼無人機實驗教學(xué)平臺的研究包括以下方案:一種是以FPGA 作為飛行控制器,搭載傳感器、動力、通信等設(shè)備[11],但是由于缺乏獨立的機載計算機,在應(yīng)用開發(fā)擴展性和任務(wù)管理方面存在一定缺陷;另一種是以Pixhawk 為飛行控制單元、以O(shè)droid 為機載處理器搭建[12-13],該方案缺乏圖像采集功能,飛行感知信息不夠全面;還有一種是基于STM32 單片機的無人機飛行控制器,配置了無人機機架、激光及視覺傳感器、機載計算機等部件,搭載ROS 系統(tǒng)[14],功能比較強,但是選用工控機作為機載計算機,質(zhì)量及功耗較大,會影響續(xù)航時間。另外,目前的旋翼無人機實驗教學(xué)平臺的圖傳功能比較薄弱,地面站并不能實時接收無人機采集到的圖像,這對于后續(xù)編隊協(xié)同等功能的研究開發(fā)會產(chǎn)生影響。

    針對以上問題,文中研究了一種新的旋翼無人機試驗教學(xué)平臺,其硬件在M100 機架(含N1 控制器)的基礎(chǔ)上,搭載機載計算機(樹莓派)、自動調(diào)焦攝像頭、無線圖傳模塊、無線數(shù)傳模塊、移動電源等電子設(shè)備,軟件在樹莓派上搭建ROS 機器人操作系統(tǒng),并以此為平臺開發(fā)應(yīng)用程序。該平臺可實現(xiàn)旋翼無人機的自主/遠(yuǎn)程飛行控制、圖像采集、遠(yuǎn)程圖像傳輸與實時監(jiān)控等較為完備的功能,并且便于二次開發(fā),擴展性好,可以完成無人機試驗教學(xué)任務(wù)。同時,文中硬件模塊基于成熟貨架產(chǎn)品搭建,具有較高的可靠性。另外,文中提出的方案在經(jīng)濟性方面也做了充分的考慮,在滿足基本功能的前提下設(shè)計了輕量級的綜合系統(tǒng),節(jié)約了教學(xué)、科研機構(gòu)的相關(guān)成本。

    1 系統(tǒng)簡介

    1.1 飛行平臺

    文中介紹的基于ROS 操作系統(tǒng)的旋翼無人機實驗教學(xué)平臺的飛行平臺選用大疆公司生產(chǎn)的M100型無人機機架。

    1.2 ROS系統(tǒng)

    ROS 是一個便于開發(fā)機器人軟件的靈活平臺,集成了大量的工具、庫、協(xié)議,可以極大簡化繁雜多樣的機器人平臺下的軟硬件開發(fā)、復(fù)雜任務(wù)創(chuàng)建、相互可靠通信、穩(wěn)定行為控制以及多任務(wù)運行管理[15-17]。文中設(shè)計的無人機實驗平臺可被認(rèn)為是執(zhí)行機構(gòu)為旋翼電機、具有視覺感知能力的機器人系統(tǒng),非常適合搭載ROS 系統(tǒng)進行飛行控制等開發(fā)。

    1.3 總體功能

    文中設(shè)計的旋翼無人機實驗教學(xué)平臺機載控制與圖像采集系統(tǒng)主要包括機載計算機、自動對焦攝像頭、無線圖傳模塊、無線串口等模塊,機載計算機運行以SDK 為基礎(chǔ)開發(fā)的相關(guān)軟件,完成飛行控制、圖像采集、傳輸及實時存儲等工作,實現(xiàn)ROS 系統(tǒng)下的軟件控制自動飛行、遠(yuǎn)程發(fā)送指令飛行、遠(yuǎn)程飛行參數(shù)回傳、遠(yuǎn)程圖像實時傳輸、地面實時觀看監(jiān)控、地面和空中實時存儲圖像等功能。

    2 總體架構(gòu)搭建

    文中設(shè)計的機載控制與圖像采集系統(tǒng)分別使用樹莓派3B+作為機載計算機,使用USB 自動對焦攝像頭進行圖像采集,使用XRbot-Link5 作為圖傳模塊通過WiFi 傳輸圖像信息,使用AS01-ML01DP5無線串口模塊作為指令狀態(tài)通信模塊,使用GPS 天線模塊接收衛(wèi)星導(dǎo)航數(shù)據(jù)。電源方面分為兩部分,M100 無人機電機驅(qū)動供電直接使用大疆智能電池,機上其他模塊供電使用10 000 mAH 移動電源。同時設(shè)計制造了機載背板(固定機載計算機、圖傳模塊等)和工裝(固定攝像頭、移動電源等),以便于將以上模塊安裝在M100 無人機的設(shè)備倉和電池倉,達(dá)到有機集成的效果。系統(tǒng)總體框架如圖1所示。

    3 系統(tǒng)搭建與配置

    3.1 軟件平臺安裝

    由于該方案需要使用ROS 操作系統(tǒng),而ROS 系統(tǒng)需要運行在Ubuntu 系統(tǒng)下,因此首先需要在樹莓派中安裝Ubuntu16.04 操作系統(tǒng)。樹莓派使用SD 卡作為硬盤,因此需要準(zhǔn)備一張容量不小于16 GB 的SD 卡并制作為Ubuntu16.04 操作系統(tǒng)的啟動盤,并且將該系統(tǒng)安裝到樹莓派中。需要注意的是,文中選用的機載計算機使用樹莓派3B+,因此Ubuntu16.04 操作系統(tǒng)的鏡像版本也必須選擇樹莓派3B+(Raspberry 3B+)對應(yīng)的版本,這里選擇的鏡像版本是Ubuntu-MATE-16.04.02-desktop-arm64-raspi3。

    3.2 ROS系統(tǒng)的安裝

    ROS 系統(tǒng)的安裝方法主要有兩種:軟件源安裝和源碼編譯安裝。軟件源(Repository)安裝為系統(tǒng)提供了一個打包好的針對相應(yīng)平臺的應(yīng)用程序倉庫,只要通過簡單的命令即可從倉庫中找到需要的軟件并完成下載安裝。相反,源碼編譯的方法相對復(fù)雜,需要手動解決繁雜的軟件依賴關(guān)系,更適合對系統(tǒng)比較熟悉而且希望在未支持的平臺上安裝ROS的開發(fā)者。該項目使用成熟的開發(fā)平臺(Ubuntu 16.04),同時為了加快開發(fā)進程,采用軟件源安裝法。

    需要注意的是,為了提高軟件的下載、安裝速度,建議使用國內(nèi)鏡像源,設(shè)置的方法為使用gedit或其他編輯器打開/etc/apt/sources.list 文件,然后替換國內(nèi)的軟件源路徑,最后保存退出,在命令行執(zhí)行指令$sudo apt-get update 來更新軟件源。

    3.3 SDK移植

    M100無人機的軟件開發(fā)包(Software Development Kit,SDK)便于用戶進行二次開發(fā),因此該方案將M100 的ROS 版本SDK 移植到樹莓派中。

    3.3.1 下載安裝OSDK并編譯

    ROS 系統(tǒng)下的Onboard-SDK(以下簡稱OSDKROS)依賴Ubuntu 系統(tǒng)下的基本Onboard-SDK(以下簡稱OSDK),因此首先需要下載基本OSDK,主要步驟如下:

    1)下載OSDK

    可以使用git clone 指令直接下載OSDK 文件夾,下載完成后將其存放在用戶路徑中。

    2)對OSDK 進行編譯

    下載完成OSDK 后需要對djiosdk-core 模塊進行編譯,否則執(zhí)行OSDK-ROS 版本時會報錯,如找不到DJIOSDK 等。對OSDK 進行編譯執(zhí)行以下指令:

    $cd Onboard-SDK

    $mkdir build

    $cd build

    $cmake..

    $make djiosdk-core

    $sudo make install djiosdk-core

    3.3.2 下載安裝并編譯OSDK-ROS

    除了基本OSDK 外,需要進行ROS 系統(tǒng)下的開發(fā),即需要擁有M100 無人機的OSDK-ROS,主要步驟如下:

    1)下載OSDK-ROS

    使用git clone 指令直接下載OSDK-ROS 文件夾,下載完成后存放在用戶路徑中。

    2)創(chuàng)建ROS 工作空間

    工作空間是一個存放工程開發(fā)相關(guān)文件的文件夾,可以通過以下指令創(chuàng)建ROS 下的工作空間(catkin_ws)并進行初始化:

    $mkdir-p~/catkin_ws/src

    $cd src

    $catkin_init_workspace

    3)編譯OSDK-ROS

    將第一步下載的OSDK-ROS 文件夾放入ROS工作空間的源代碼路徑(~/catkin_ws/src)中,然后使用如下指令進行工作空間的編譯:

    $cd~/catkin_ws$catkin_make

    3.4 樹莓派虛擬內(nèi)存設(shè)置

    由于追求高性價比選擇的樹莓派3B+僅有1 GB內(nèi)存,因此在上述編譯過程中資源比較緊張,為解決此問題可以使用swap 擴展內(nèi)存。swap 分區(qū)是磁盤上一個具有特殊用途的分區(qū)。當(dāng)系統(tǒng)的物理內(nèi)存不足時,將物理內(nèi)存中的一部分空間釋放出來,以供當(dāng)前運行的程序使用。那些被釋放的空間在很長一段時間內(nèi)沒有需要操作的程序,這些釋放的空間被臨時保存到swap 分區(qū)中,等到有程序要運行時,再從swap 分區(qū)中恢復(fù)保存的數(shù)據(jù)到內(nèi)存中區(qū)。

    swap 空間的分配需要在適當(dāng)?shù)姆秶鷥?nèi),如果swap 空間分配得太大,則會浪費磁盤空間,而swap空間太小,則系統(tǒng)會發(fā)生錯誤。一般在內(nèi)存小于2 GB 的情況下,swap 分區(qū)應(yīng)為內(nèi)存的2 倍。

    首先安裝dphys-swapfile 以擴展swap,輸入以下指令:

    $sudo apt-get install dphys-swapfile

    安裝完畢后輸入以下指令編輯dphys-swapfile文件,將其中的參數(shù)CONF_SWAPSIZE 改為2048:

    $sudo gedit/etc/dphys-swapfile

    更改完畢后,保存退出,輸入以下指令重新啟動dphys-swapfile 文件服務(wù),這可能需要一段時間,直到狀態(tài)顯示為[OK]:

    $sudo/etc/init.d/dphys-swapfile stop

    $sudo/etc/init.d/dphys-swapfile start

    最后可以使用以下指令查看swap 交換空間大小,此時可見swap 空間的使用情況為總大小2 047 MB,已用9 MB,空閑2 038 MB,更改成功。

    $free-m

    4 應(yīng)用軟件開發(fā)

    應(yīng)用軟件在樹莓派上運行開發(fā),包括飛行控制、圖像數(shù)據(jù)接收及實時存儲、飛行指令發(fā)送及飛行參數(shù)獲取、圖像視頻回制等,在ROS 系統(tǒng)框架下通過發(fā)布訂閱話題、服務(wù)等通信機制實現(xiàn)遠(yuǎn)程控制無人機飛行和接收圖像信息等功能。

    N1 飛行控制器執(zhí)行樹莓派發(fā)送的指令并且向樹莓派發(fā)送狀態(tài)信息,其主要的通信元素如表1所示。

    表1 部分主要的飛行控制器通信元素

    4.1 飛行控制

    由于無人機搭載了ROS 系統(tǒng),因此可以通過創(chuàng)建飛行控制節(jié)點(demo_flight_control_node)的方式進行飛行控制,實現(xiàn)無人機的自動飛行。該節(jié)點接收GPS 位置消息,經(jīng)過計算后,通過飛行控制話題發(fā)布航路點飛行控制消息,通過設(shè)置航路點實現(xiàn)預(yù)定路徑的飛行。圖2 所示是實現(xiàn)高度為10 m、邊長為10 m 的正方形航跡飛行控制軟件流程。

    4.2 圖像數(shù)據(jù)接收及實時存儲

    該項目的圖像數(shù)據(jù)傳輸由無線圖傳模塊完成,該模塊將連接的攝像頭所拍攝的圖片數(shù)據(jù)通過mjpeg-stream 形式發(fā)送,計算機的IP 地址和無線圖傳模塊的IP 地址需在同一個網(wǎng)段,這樣在瀏覽器中打開無線圖傳模塊的IP 時,就可以實時觀看攝像頭拍攝的圖像。

    根據(jù)項目需要,不僅要實時觀看拍攝圖像,還要將圖像數(shù)據(jù)提取并保存,因此設(shè)計圖像數(shù)據(jù)接收與實時存儲軟件,使用Python 語言編程。主要設(shè)計思想為打開IP 端口讀取流數(shù)據(jù),在這些數(shù)據(jù)中查找jpg文件頭和文件尾的位置,將以上位置之間的數(shù)據(jù)保存到文件中。圖像數(shù)據(jù)接收與實時存儲軟件流程如圖3 所示。

    4.3 飛行指令發(fā)送及飛行參數(shù)獲取

    飛行指令發(fā)送及飛行參數(shù)獲取軟件用于地面控制站與M100 無人機使用無線串口模塊通信時,可以實現(xiàn)超遠(yuǎn)距離的飛行指令發(fā)送及飛行參數(shù)的獲取,該部分軟件分別駐留于地面控制站和機載計算機上。

    4.3.1 地面控制站部分

    地面控制站程序包含簡單的人機交互界面,在該界面上用戶可以控制M100 無人機的起飛與降落并動態(tài)顯示GPS 數(shù)據(jù)。地面站控制程序使用Python語言的Tkinter 模塊編寫,首先繪制軟件界面、操作按鈕以及數(shù)據(jù)顯示文本框,然后定義各個控件的回調(diào)函數(shù),其中因為飛行參數(shù)是動態(tài)實時顯示的,因此該部分安排在子線程中循環(huán)運行。軟件流程如圖4所示。

    4.3.2 機載計算機部分

    機載計算機部分程序在作為機載計算機的樹莓派上運行,主要功能為接收無線串口模塊發(fā)送的飛行指令,另外將M100 無人機的GPS 數(shù)據(jù)經(jīng)過解析后通過無線串口模塊發(fā)送給地面控制站。軟件創(chuàng)建ROS 系統(tǒng)新節(jié)點,該節(jié)點發(fā)起飛行任務(wù)服務(wù),并訂閱GPS 位置信號消息,主要軟件流程如圖5 所示。

    4.4 圖像視頻回制

    為了在飛行結(jié)束后觀看整個飛行過程中的視頻,可以在飛行結(jié)束后執(zhí)行圖像視頻回制程序,利用保存的圖片重新制作視頻,該軟件流程如圖6 所示。

    5 試驗驗證

    使用文中搭建的機載控制與圖像采集系統(tǒng),進行M100 無人機的試飛并觀察效果。

    5.1 打開機載計算機遠(yuǎn)程桌面

    打開地面控制站的VNC Viewer 軟件,打開機載計算機所在的遠(yuǎn)程桌面,遠(yuǎn)程控制機載計算機,此處也可以使用SSH 進行遠(yuǎn)程控制。

    5.2 啟動節(jié)點

    首先運行以下指令,啟動無人機飛行控制與信息感知的主節(jié)點:

    $roslaunch dji_sdk sdk.launch

    可以在~/catkin_ws/dji_sdk_demo/src/路徑下原有程序的基礎(chǔ)上修改編寫的飛行控制程序,使用以下指令運行飛行控制節(jié)點,在此例中,該程序可以使無人機自動按照邊長10 m,高度10 m的軌跡進行飛行:

    $rosrun dji_sdk_demo demo_flight_control

    也可輸入以下指令運行自行開發(fā)的遠(yuǎn)程飛行控制節(jié)點,此時終端上會顯示GPS 參數(shù),同時等待接收地面站指令進行飛行和著陸:

    $rosrun dji_sdk_demo remote_flight_task.py

    5.3 啟動視頻顯示與保存軟件

    在地面控制站計算機上運行視頻顯示與保存軟件,此時可以看到自動跳出視頻顯示窗口,可實時顯示M100 無人機攝像頭拍攝的圖像,同時可以看到在文件夾中有圖像文件保存下來。

    5.4 飛行精度驗證

    在飛行控制任務(wù)節(jié)點運行的過程中,通過飛行參數(shù)獲取的經(jīng)度、緯度、高度等信息驗證飛行的效果。分別記錄①起始位置、②起飛至10 m 高度(0,0,10)位置、③航路點(0,10,0)位置、④航路點(10,0,0)位置、⑤航路點(0,-10,0)位置、⑥航路點(-10,0,0)位置、⑦降落位置的飛行參數(shù),并計算相應(yīng)的實際飛行動作,結(jié)果如表2 所示。

    表2 飛行數(shù)據(jù)及誤差

    表2 中的“動作”指的是在飛行指令下達(dá)后無人機在其目標(biāo)方向移動的實際距離,可以根據(jù)經(jīng)線Δx、緯線Δy以及高度Δz三方向移動距離與經(jīng)度loN、緯度laN、海拔alN以及地球半徑R的關(guān)系求出無人機實際的移動距離并進行對比。從表2 中可以看到,僅僅依靠GPS 控制無人機的運動會存在一定誤差,不過范圍一般控制在0.2 m 左右,再配合基于圖像的目標(biāo)跟蹤、定位、建圖、導(dǎo)航等方法有望實現(xiàn)魯棒性更強的飛行控制以及更為復(fù)雜的編隊飛行等功能,這樣的精度級別完全適用于教學(xué)和試驗工作。

    6 結(jié)論

    文中基于M100 機架搭建了旋翼無人機實驗教學(xué)平臺系統(tǒng),該系統(tǒng)可以對飛行器進行有效的飛行控制以及完成圖像采集傳輸與存儲,成本低廉易于使用,同時體積和質(zhì)量較小,在一定程度上控制了無人機載荷質(zhì)量。系統(tǒng)采用ROS 系統(tǒng),便于進行二次開發(fā)和進一步的智能化研究。

    猜你喜歡
    樹莓旋翼指令
    聽我指令:大催眠術(shù)
    改進型自抗擾四旋翼無人機控制系統(tǒng)設(shè)計與實現(xiàn)
    大載重長航時油動多旋翼無人機
    基于樹莓派的騎行智能頭盔設(shè)計
    電子制作(2019年11期)2019-07-04 00:34:32
    基于STM32的四旋翼飛行器的設(shè)計
    電子制作(2019年9期)2019-05-30 09:41:48
    ARINC661顯控指令快速驗證方法
    LED照明產(chǎn)品歐盟ErP指令要求解讀
    電子測試(2018年18期)2018-11-14 02:30:34
    基于樹莓派的遠(yuǎn)程家居控制系統(tǒng)的設(shè)計
    電子制作(2017年17期)2017-12-18 06:40:43
    四旋翼無人機動態(tài)面控制
    響應(yīng)面法優(yōu)化紅樹莓酒發(fā)酵工藝
    中國釀造(2016年12期)2016-03-01 03:08:19
    巴楚县| 西吉县| 赣州市| 武汉市| 浮山县| 邮箱| 隆尧县| 泽州县| 岑溪市| 盖州市| 苏尼特右旗| 中卫市| 龙州县| 武平县| 朝阳县| 海兴县| 沙田区| 西昌市| 冀州市| 泾阳县| 青神县| 龙州县| 长岭县| 尖扎县| 眉山市| 龙江县| 南投市| 金堂县| 阜阳市| 云阳县| 休宁县| 宜黄县| 渭南市| 伊通| 礼泉县| 郸城县| 班玛县| 祁阳县| 洛隆县| 日土县| 新乐市|