網(wǎng)站制作公司哪家專(zhuān)業(yè)免費(fèi)私人網(wǎng)站建設(shè)平臺(tái)
經(jīng)過(guò)前期內(nèi)測(cè)調(diào)試,ROS固定翼開(kāi)源仿真平臺(tái)今日正式上線(xiàn)!現(xiàn)平臺(tái)除適配PX4+ROS環(huán)境外,也已實(shí)現(xiàn)AP+ROS環(huán)境下的單機(jī)飛行控制仿真適配。歡迎大家通過(guò)文末鏈接查看項(xiàng)目地址以及具體使用手冊(cè)。
1 平臺(tái)簡(jiǎn)介
ROS固定翼仿真平臺(tái)旨在實(shí)現(xiàn)固定翼無(wú)人機(jī)決策、規(guī)劃和控制仿真,區(qū)別于傳統(tǒng)基于Matlab/Simulink的仿真方案:
-
高度封裝:平臺(tái)將基礎(chǔ)無(wú)人機(jī)控制算法封裝為可復(fù)用的類(lèi),從而有效簡(jiǎn)化了開(kāi)發(fā)流程。同時(shí),對(duì)各類(lèi)基礎(chǔ)數(shù)據(jù)的獲取進(jìn)行了封裝,確保了數(shù)據(jù)訪問(wèn)的便捷性和一致性,極大提升了開(kāi)發(fā)效率和數(shù)據(jù)處理的穩(wěn)定性。
-
分層解耦:基于模塊化的分層架構(gòu)設(shè)計(jì),平臺(tái)實(shí)現(xiàn)了規(guī)劃層與控制層的解耦,省去了底層控制器設(shè)計(jì)和動(dòng)力學(xué)建模的復(fù)雜過(guò)程。用戶(hù)只需專(zhuān)注于上層控制算法的編寫(xiě),避免了繁瑣的底層細(xì)節(jié),降低了開(kāi)發(fā)門(mén)檻,提升了開(kāi)發(fā)效率,為用戶(hù)提供了更為流暢和高效的仿真體驗(yàn)。
-
驗(yàn)證迅速:用戶(hù)無(wú)需接觸底層 PX4 控制邏輯,只需通過(guò)封裝好的類(lèi)接口讀取狀態(tài)數(shù)據(jù)并發(fā)送控制指令。同時(shí),底層控制機(jī)型可靈活切換,使得驗(yàn)證過(guò)程更為迅速和高效,極大提升了開(kāi)發(fā)和測(cè)試的便捷性。
2 技術(shù)框架
我們對(duì)整體架構(gòu)進(jìn)行了二次修改,完善了整體仿真流程,也簡(jiǎn)化了仿真二次開(kāi)發(fā)流程,對(duì)于新手上手更加友好。
整體架構(gòu)基于模塊化設(shè)計(jì),將仿真功能拆分為3個(gè)ROS功能包:uav_controller、single_demo、multi_demo,以提高系統(tǒng)的可擴(kuò)展性以及可維護(hù)性。
- uav_controller 功能包封裝了固定翼和垂直起降無(wú)人機(jī)的底層控制器,支持姿態(tài)、位置和速度的精準(zhǔn)控制。功能包提供了基于狀態(tài)機(jī)設(shè)計(jì)的單機(jī)控制節(jié)點(diǎn)文件,具備高度靈活性和可擴(kuò)展性。通過(guò)啟動(dòng)該功能包中的單機(jī)控制節(jié)點(diǎn),用戶(hù)可以實(shí)現(xiàn)一鍵起飛無(wú)人機(jī)、接收外部控制指令以及切換飛行模式,為復(fù)雜飛行任務(wù)的實(shí)現(xiàn)提供了高效可靠的解決方案。
- single_demo 功能包旨在為用戶(hù)提供單機(jī)數(shù)據(jù)的實(shí)例化獲取,是用戶(hù)進(jìn)行二次開(kāi)發(fā)的主要入口和核心目錄。該功能包包含了 spawn-uav.py 文件,封裝了常用的 MAVROS 話(huà)題數(shù)據(jù)訂閱邏輯。用戶(hù)只需在主程序中導(dǎo)入 uav 類(lèi),即可通過(guò)調(diào)用其屬性輕松獲取無(wú)人機(jī)的狀態(tài)數(shù)據(jù),如位置、速度、姿態(tài)等。這種高度封裝的設(shè)計(jì),不僅降低了開(kāi)發(fā)復(fù)雜度,還顯著提升了數(shù)據(jù)獲取的便捷性和開(kāi)發(fā)效率,為用戶(hù)的二次開(kāi)發(fā)提供了強(qiáng)大的支持。
- multi_demo 功能包提供了一個(gè) leader-follower 集群控制框架的實(shí)例,支持靈活配置編隊(duì)隊(duì)形、領(lǐng)航者軌跡和跟隨者數(shù)量。用戶(hù)可以根據(jù)需求自由指定這些參數(shù),從而實(shí)現(xiàn)高度可定制的集群控制方案。該實(shí)例具有良好的擴(kuò)展性,便于用戶(hù)在此基礎(chǔ)上進(jìn)行應(yīng)用開(kāi)發(fā)和功能拓展。
整體架構(gòu)如下:
整體流程為:
- 從uav_controller中選擇一款機(jī)型(固定翼、垂起),啟動(dòng)單機(jī)底層控制節(jié)點(diǎn);
- 在single_demo中編寫(xiě)自己的上層控制代碼,啟動(dòng)上層控制節(jié)點(diǎn);
- 僅需一條roslaunch指令,即可開(kāi)啟仿真。
這樣架構(gòu)下,用戶(hù)只需要專(zhuān)心編寫(xiě)自己的上層控制代碼,底層控制節(jié)點(diǎn)可切換、可擴(kuò)展。
3. demo演示
我們已經(jīng)實(shí)現(xiàn)一些可供大家快速上手的demo演示:
- 基于導(dǎo)航向量場(chǎng)方法的軌跡跟蹤方法
- demo演示:圓形軌跡
- demo演示:螺旋上升
- demo演示:斜圓軌跡
- demo演示:圓形軌跡
- 基于無(wú)奇異點(diǎn)導(dǎo)航向量場(chǎng)方法的軌跡跟蹤方法
- demo演示:李薩如曲線(xiàn)
- demo演示:多項(xiàng)式軌跡(多項(xiàng)式軌跡,軌跡可自定義)
- demo演示:李薩如曲線(xiàn)
- 基于LQR控制器的多機(jī)leader-follower編隊(duì)飛行控制
- demo演示(折線(xiàn)軌跡,軌跡可自定義)
- demo演示(折線(xiàn)軌跡,軌跡可自定義)
4. 后續(xù)進(jìn)展
后續(xù)計(jì)劃:
- 添加多機(jī)混合機(jī)型編隊(duì)仿真;
- 適配AP+ROS2以及PX4+ROS2;
- 添加視覺(jué)、激光雷達(dá)等其他傳感器支持。
5. 附錄
項(xiàng)目地址:
https://gitee.com/swiftwing007/swiftwing-simulation
https://github.com/SwiftWing001/swiftwing-simulation
使用文檔:
https://swiftwing001.github.io/swiftwing-simulation-tutorial/
END
后續(xù)會(huì)陸續(xù)帶來(lái)規(guī)劃、控制相關(guān)的文章、仿真分享。
迅翼SwiftWing致力于固定翼技術(shù)共享,匯聚固定翼領(lǐng)域技術(shù)極客,推動(dòng)固定翼技術(shù)持續(xù)創(chuàng)新!