python实现多智能体一致性_促进产学研,多智能体协同控制——科研与实践教学齐飞...
一、引言
1.1、概述
多智能體協同控制系統即多個智能體組成的集合,它的目標是將大而復雜的系統集成設成小的、彼此互相通信和協調的、易于管理的系統。多智能體協同控制系統在表達實際系統時,通過各智能體間的通訊、合作、互解、協調、調度、管理及控制來表達系統的機構、功能及行為特性。
多智能體系統控制具有自主性、分布性、協調性,并具有自組織能力、學習能力和推理能力。采用多智能體協同控制系統解決實際應用問題,具有很強的魯棒性和可靠性,并具有較高的問題求解效率。
多智能體協同控制系統是智能體技術應用及研究的一個質的飛躍,不同行業的專家學者對之進行了深入的研究并從多個角度闡述了多智能體系統用于解決實際問題的優勢,歸納起來,主要有以下幾點:
1、在多智能體協同控制系統中,每個智能體具有獨立性和自主性,能夠解決給定的子問題,自主地推理和規劃并選擇適當的策略,并以特定的方式影響環境;
2、多智能體協同控制系統支持分布式應用,所以要具有良好的模塊性、易于擴展性和設計靈活簡單,克服了建設一個龐大的系統所造成的管理和擴展的困難,應有效降低系統的總成本;
3、在多智能體協同控制系統實現過程中,不追求單個龐大復雜的體系,而是按面向對象的方法構造多層次、多元化的“狼蜂”智能體,要降低系統的復雜性,也要降低各智能體問題求解的復雜性;
4、多智能體協同控制系統是一個講究協調的系統,各智能體通過互相協調去解決大規模的復雜問題;“狼蜂”智能體空地一體系統多智能體協同控制系統也是一個集成系統,它采用信息集成技術,將各子系統的信息集成在一起,完成復雜系統的集成;
5、在多智能體協同控制系統中,各智能體之間互相通信,彼此協調,并行地求解問題,因此能有效地提高問題求解的能力。
多智能體協同控制系統是在多無人車、無人機運動中,各個無人車及無人機之間能夠保持一定的相對距離,并在速度及位置上按照預設路線或命令進行運動的過程。基于MATLAB/Simulink進行硬件在環控制算法開發和驗證,可通過MATLAB/Simulink軟件直接獲取高精度的姿態數據和圖像數據,并提供多無人車、無人機協同控制的OEMO程序。
圖1 多智能體協同控制系統實驗平臺場景圖多智能體協同控制系統主要做以下三個方面的研究:
1、編隊隊形的設計:多個無人車及無人機在指令下運行至指定的位置,并最終實現既定的編隊形態,除了需要考慮無人機氣動力影響外之外,還要考慮任務要求及無人車、無人機間信息交換的冗余度,同時保證無人車及無人機之間不會發生碰撞;
2、編隊隊形的保持,在無人車及無人機執行指令過程中能克服來自系統內部或外在環境干擾,進而保持整個隊形不變;
3、編隊隊形的變換:在無人車及無人機行進過程中能夠適應來自系統內部或外在環境干擾而對編隊做出適當且合理的改變。
多智能體協同控制系統需要通過對無人車、無人機的定位,獲取其在空間中的位姿,這種位置位姿信息主要是六自由度姿態數據,進行多智能體之間通訊的建立,最后通過控制決策系統根據智能體空間內的位姿完成系統控制。
定位無人車、無人機的空間位姿,是多智能體協同控制系統研究、實驗最為重要的部分,只有獲取準確穩定的定位信息,才能良好的控制無人車、無人機。作為定位的傳統方法,慣性測量單元(IMU)和慣導模塊(INS)存在陀螺儀零點漂移嚴重,導致獲取的姿態、速度等數據精度不夠,存在誤差累計,很難長時間獨立工作。
多智能體協同控制系統采用光學動捕技術(定位精度可達亞毫米級別),并通過WiFi網絡實現多機間的通信,能夠將MATLAB/Simulink開發的無人車及無人機編隊仿真算法直接生成代碼下載到無人車及無人機中,在室內環境下進行多車、多機分布式編隊算法的驗證。
1.2、多智能體協同控制系特點
● 室內定位系統:采用室內光學動捕技術,定位范圍6m*6m,支持亞毫米級定位,能夠最多同時捕捉12架左右的無人車或無人機;
● 被控制對象:2臺無人車及4架無人機進行編隊。
● 無人機飛控:無人機STM32F427(180MHZ)主控及STM32F100協處理器,內置三組IMU冗余設計,外置GPS和光流模塊,支持TCP/UDP通訊協議。
● 視覺導航:256顆CUDA核心,CPU選用Quad ARM A57,4G內存,16G存儲,要擁有豐富的外設資源和強大的運算能力。
● 無人車控制器:需配置NVIDIA TX2主板,打在激光雷達和視覺傳感器與識別SDK,能夠進行SLAM建模和圖像跟蹤。
● 基礎開發平臺:可在MATLAB/Simulink軟件平臺進行控制算法研究,支持自動生成代碼,通過無線WiFi下載到無人車控制板和無人機飛控板。
● 擴展開發語言:支持C、C++、Python編程,適合有一定代碼開發能力的學生,進一步錘煉代碼編程能力;
● 基于模型(MBD)的設計:MATLAB/Simulink中提供了ROS的支持包,可試驗Simulink控制模型到ROS系統代碼的自動生成,降低了ROS系統控制模型的開發難度,適合大眾化本科教學實驗;
● 可用于無人系統的動態建模和控制研究、運動規劃、避障控制、多信息融合、編隊控制、多智能體協同控制、無人系統自主控制、足型機器人步態分析等。
二、多智能體協同控制系統
2.1、總體架構
多智能體協同控制系統包括實時定位系統、實時控制系統、多智能體協同控制系統,以及與之配套的無線網絡通信裝置。
實時定位系統采用光學動捕技術,主要由紅外光學動作捕捉鏡頭、操作及分析處理軟件和配件組成,可捕捉輸出智能體精準的三維空間數據,系統精度可達亞毫米級。
實時控制系統是一臺高性能臺式服務器,運行Windows7以上操作系統,部署用于圖像處理、定位跟蹤、算法開發、模型編譯下載以及進行數據堅實分析的軟件,可同時作為開發主機和Windows目標機使用。
多智能體協同控制系統是指在上位機MATLAB/Simulink軟件平臺上進行控制算法開發,通過無線通信完成對若干無人車、無人機的集群協同控制。
圖2 系統總體架構圖2.2、系統布置
多智能體協同控制系統實驗平臺的實驗室布置主要包括人機操作區和設備實驗區,具體如下圖所示:
圖3 實驗室布置圖● 人機操作區:該區域主要用于研究人員進行上位機操作開發,可在該區域控制和觀察實驗設備區內的實驗對象,主要設備包括卓翼、上位機、路由器及必要的實驗設施。
● 設備實驗區:該區域主要用來進行圖像獲取、無人車及無人機的編隊控制實驗,進行實驗時實驗人員禁止進入,主要有8臺攝像頭、2臺無人車、4架無人機以及必要的保護設施。
2.3、硬件架構
圖4 硬件架構圖上圖為平臺系統硬件構成圖,主要包括如下:
1、實時定位系統通過多個攝像頭完成無人車、無人機的圖形采集,將采集到的數據進行處理分析獲得無人車、無人機精確的位置和姿態信息,并將處理結果發送給開發主機。
2、實時控制系統開發主機主要完成算法開發和Windows實時目標機功能:算法開發主要基于MATLAB/Simulink實現,結合實時控制軟件,可實現代碼生成、編譯和部署;開發主機可作為Windows實時目標機,運行Simulink生成的Windows Target目標代碼。
3、多智能體協同控制系統包括若干無人車、無人機,每個無人車、無人機上安裝高性能計算單元和外圍傳感器,兼容MATLAB/Simulink,能夠基于 MATLAB/Simulink進行控制器開放式硬件,實現多智能體協同控制、視覺SLAM等復雜算法研究。
備注:為保障實驗、學習人員的安全,進行編隊控制、控制開發、步態分析、運動規劃等實驗時,實驗、學習人員智能在開發主機端操作,不可進入編隊活動工作區域,確認無人機、無人機車、足型機器人停止后才能到工作目標工作、連接線纜、調試設備等操作。
2.4、軟件架構
圖5 軟件架構圖系統軟件分為“上-下位機”兩部分,主要包括:
1、上位機軟件:基于Windows操作系統個,提供圖像定位處理的軟件、ROS實時示例軟件、地面站軟件、實時控制軟件;
2、下位機軟件:基于ROS系統,提供無人車/無人機控制板的硬件驅動、實時仿真引擎以及控制模型實時代碼。
三、多智能體協同控制系統組成
3.1、實時定位系統
實時定位系統采用光學動作捕捉技術,主要由紅外光學動作捕捉鏡頭、操作及分析處理軟件和配件組成,可捕捉輸出物體精準的三維空間6DoF位姿信息,系統精度可達亞毫米。
3.1.1、硬件組成
表1 光學動捕鏡頭參數8個光學動捕鏡頭50個反光標記球T型標定桿輔助運動捕捉系統的校準圖6 L型標定直角輔助運動捕捉系統中心點配置優勢:
亞毫米級精度:基于專用的SoC芯片和高效三維重建引擎,每一幀動作的捕捉精度都可以達到0.1毫米級精度;
多種標記點配置:Goku?支持被動標記點、主動標記點、全局時碼同步標記點的系統配置,方便使用和運維;
易于部署:數據、供電、同步只需共用一根RJ45網線,部署簡單;
極低系統延時:得益于Goku?的超高采樣率,光學系統延時<4ms,光慣融合模式延時更低至1ms*;
支持光慣融合:可以提供6自由度、高精度、高可靠性、高采樣率的空間捕捉數據。
3.1.2、軟件組成
室內定位軟件基于計算機視覺原理,通過布置在空間中的多個紅外攝像機,將捕捉區域內物體上反光標識點的運動信息以圖像的形式記錄下來,然后對該圖像數據進行處理,實時地解算出運動物體的六自由度位置和姿態。室內圖像定位軟件可實時和準確地解算捕捉區域內單個或多個剛體的六自由度位置和姿態,可為各類型的小飛機和地面小車、機器人、機器狗、機械手臂等運動體的控制提供六自由度姿態和位置的準確測量信息。支持一鍵式標定。一鍵式創建剛體、全三維界面展示,軟件使用友好。
圖7 光學動捕軟件界面一鍵式標定、一鍵式創建剛體、界面全三維展示、軟件使用友好
2、系統標定
1)內置ZVR Calib高效多目視覺標定算法,使用T型工具進行高精度自動標定
2)使用L型工具進行地平面標定
3)Goku? Tracker視覺慣性內參及外參自動標定
3、支持數據格式
? RAW
? BVH
? C3D
? FBX
? OpenVR
? VRPN
? TCP/UDP Streaming
4、豐富的第三方接口
3.2、實時控制系統地面控制系統
3.2.1、硬件組成
實時控制系統硬件是一臺高性能臺式服務器,運行Windows7以上操作系統,可同時作為開發主機和Windows目標機使用。
具體參數:惠普(HP)Z440臺式機 工作站 E5-1603V/8GB ECC/1TB SATA/P600 2G 獨顯/DVD-RW/24吋顯示器。
圖8 實時控制系統開發主機3.2.3、軟件組成
實時控制軟件包為Simulink增加了強大的工具和功能,使復雜的實時機電一體化和控制應用的開發和部署變得更加容易,支持直接從Simulink設計的控制器生成實時代碼,并在Windows目標機、VxWorks、嵌入式Linux、Ubuntu等多種目標機上實時運行,所有這些都無需數字信號處理或無需寫任何代碼。
可以讓學生把關注點放到控制概念上,而不是繁瑣的代碼辨析。用戶界面易于理解,這意味著學生不需要任何廣泛的培訓。它們試用清晰的控制模板,并與教科書中試用的標準系統框圖相匹配。學生可以通過更改Simulink途中的塊參數來調整運行模型的參數,查看模型中信號的狀態,并將數據流傳輸到MATLAB工作區或文件以進行離線分析。
§ 友好的用戶界面
● 完全支持Simulink?外部模式,包括示波器、浮動示波器、顯示器、工作空間、在線參數調整等;
● 支持模型引用,允許模塊化面向對象的模式設計和增量編譯和鏈接,以加速大型模型的開發;
● 支持范圍出發和數據歸檔,以實現復雜、大容量的數據采集;
● 將數據記錄到MAT文件和M文件;
● Simulink Coder代碼優化支持;
● 性能診斷,例如,樣本時間的測量,計算時間,經過的時間等;
● 用于監視模型的標準I/O的控制臺,可用于遠程目標機;
● 能夠使用MATLAB GUI,LabVIEW面板,Altia等連接控制器。
§ 豐富的硬件接口
● 支持National Instruments等多個廠商的數據采集辦卡;
● 支持多種類型的目標機;
● 支持用戶自定義采集卡。
§ 與協議無關的通信框架
● 全套數據流塊,用于與正在運行的控制器外部的錦城進行任何同步或異步通信;
● 支持TCP/IP、UDP、串行、共享內容、明明管道、SPI、I2C、CAN等其他協議;
● 可擴展的框架,支持控制器與本地遠程應用程序之間的分布式控制,設備接口、遠程操作和一般進程間通信;
● 外部通信接口以C/C++、MATLAB和NET語言提供。
§ 支持多線程,多速率和異步模型
● 多處理器支持,可提高采樣率和性能;
● 支持多線程和多速率模型;
● 支持Simulink模型中的異步線程,非常適合異步通信等;
● 在本地和/或遠程同時在單位目標或多個目標運行多個模型;
● 控制模型可部署到嵌入式單板目標機,設置為開機自啟動。
實時控制軟件包安裝后,集成在MATLAB/Simulink環境下,主要包括Links Simulinkib工具箱和Links Coder代碼生成模塊。
3.2.2.1、Links SimulinkLib工具箱
Links SimulinkLib工具箱提供多種類型的Simulink模塊封裝,包括數據采集模塊(AIO、DIO),通訊模塊(SIO、TCP、UDP、I2C等),計數器模塊和常用工具模塊等。用戶通過添加硬件接口模塊到Simulink模型中,可完成真實硬件的訪問。
● 無人機控制開發工具箱
無人機控制開發工具箱包括IMU傳感器模塊、電池電量測量模塊、RGB攝像頭模塊和深度攝像頭模塊等,模型編譯時可生成相應的C、C++代碼。
圖9 無人機傳感器模塊圖10 無人機攝像頭模塊● 無人車控制開發工具箱
樹莓派工具箱包括GPIO讀寫模塊、I2C讀寫模塊、PWM輸出、UART讀寫、SPI讀寫模塊、UDP收發模塊、TCP收發模塊和攝像頭模塊等,模型編譯時可生成相應的C、C++代碼。
圖11 無人車工具箱● PX4工具箱
PX4公爵想包括傳感器、執行結構、uORB通訊、ADC和UART模塊等,模型編譯時生成相應C、C++代碼。
圖12 PX4傳感器和執行機構模塊圖13 PX4 uORB通訊模塊圖14 PX4 ADC和UART模塊● Windows Target工具箱
Windows Target工具箱包括多種類型的數采和通信模塊,其中Packet Input和Packet Output中封裝了UDP等多種類型的通信接口,配合不同的解包組包可完成Windows Target和無人機、無人車之間的SDK仿真,獲得遠程節點上的傳感器數據,控制遠程節點上的執行機構。
圖15 Packet Input設置圖16 Packet Input接收后數據處理● ROS工具箱
ROS工具箱包括發訂閱信息、發布消息、修改參數、讀取參數、解析圖像、解折點云圖模塊。
圖17 ROS工具箱3.2.2.2、Links Coder代碼生成模塊
Links Coder代碼生成模塊的功能是將Simulink模型轉換為C、C++代碼,并進一步編譯成可執行文件。Links Coder模塊支持多個目標硬件平臺,包括Windows Target、NVIDIA TX2、樹莓派、ROS、PX4、VxWorks等,在模型編譯時可針對不同目標硬件平臺進行配置。
圖18 目標硬件編譯配置圖19 erttlc硬件辦卡選擇3.3、多智能體協同控制系統
多智能體協同控制系統是指在上位機MATLAB/Simulink軟件平臺進行控制算法開發,通過無線通信完成對若干無人機、無人車的集群協同控制。
3.3.1、硬件組成
多智能體協同控制包括若干無人機、無人車(標配為4個無人機、2個無人車),每個無人機、無人車上安裝有高性能計算單元和豐富的外圍傳感器,完全兼容MATLAB/Simulink,能夠基于MATLAB/Simulink進行控制開放式硬件在環設計,可實現多智能體協同控制、視覺SLAM等復雜算法研究。
3.3.1.1、四旋翼無人機
四旋翼無人機,控制部分硬件采用高性能控制板NVDIA TX2+飛行控制PX4的成熟架構,結構上設計了一套碳纖維防護框架,確保室內飛行時無人機和實驗人員的安全性。
圖20 四旋翼無人機無人機配置參數如下:
● 尺寸:不大于520mm*520mm*220mm,帶碳纖防護框;
● 起飛重量:不大于1.8kg,其中空機1.0kg,負載重量0.8kg;
● 續航時間:不小于15分鐘;
● 飛控:采用STM32F427(180MHZ)主控及STM32F100協處理器,內置三組IMU冗余設計,5路UART,1路12C,PPM/SBUS遙控器輸入,1路CAN總線,1路ADC,12路PWM,外置GPS和光流模塊;
● 視覺導航板:256顆CUDA核心,CPU集群雙核丹佛2處理器和四核ARM Cortex-A57,8G內存,16G存儲,1路無線WIFI接口,1路千兆網口,1路HDMI接口,1個TF卡座,2路RS232串口,1路3.3V SPI接口,4路3.3V GPIO;
● RGB-D相機(前置):深度流輸出分辨率1280*720,幀率可達90fps,深度距離0.11m-10m,RGB傳感器分辨率和幀速率1920*1080 30fps,USB接口;
● 普通單目鏡頭(下視):720 30fps,視野60度;
3.3.1.2、無人車
無人車控制部分硬件采用NVIDIA TX2+OpenCR的成熟架構,動力部分也保持原有的配置。主要針對結構部分進行定制,預留(機械手安裝位置。軟件部分進行了Simulink工具箱的集成開發。)
圖21 無人車無人車配置參數如下:
● 控制器:SBC單板電腦1個:NVIDIA TX2 核心板,運行Ubuntu操作系統;
● 攝像頭:Kinect v2.0深度傳感器1個,深度探測范圍:0.5m-4.5m;
● 移動底座1個;
● 傳感器:激光雷達RPliar A2 1個;
● 最大速度:75cm/s,最大旋轉速度:195度/s,最大承載:5kg;尺寸:直徑351mm,高度124mm,爬高:怕生門檻12mm;
● 預估慚怍時間:3.5h;
● IMU包括:3軸陀螺儀1個,3軸加速度計1個,3軸磁力計1個;
● 碰撞傳感器:左側1個,中部1個,右側1個。
3.3.2、軟件組成
控制開發軟件包NVIDIA處理器板軟件和PX4飛控板軟件,其中NVIDIA主要實現任務規劃、決策以及視覺處理,PX4費用主要實現飛行控制功能,兩個處理器之間通過高速UART接口通信,使用Mavlink通信協議。兩種處理器完全與MATLAB/Simulink兼容,能夠基于MATLAB/Simulink進行控制器開放式硬件在環設計。
§ NVIDIA處理器軟件
NVIDIA處理器軟件包括操作系統、硬件驅動模塊和目標機管理模塊,其中操作系統支持Ubuntu 16.04兩種,能夠實現內存管理、任務調度都能功能,提供軟件基礎運行環境;硬件驅動模塊包括PWM、SPI、I2C、AD等,用戶可通過Simulink模型中對應的模塊完成地城硬件驅動的調用。
圖22 NVIDIA處理器軟件目標機管理模塊Simulink主機和NVIDIA目標機之間的橋梁,主要實現目標代碼下載功能、目標代碼加載到內存功能和仿真控制臺功能。
圖23 NVIDIA目標機管理模塊§ 飛控板軟件
PX4飛控軟件主要包括操作系統、硬件驅動模塊和PX4開源協議棧,其中操作系統支持Nuttx操作系統,能夠實現內存管理、任務調度等功能,提供軟件基礎運行環境;硬件驅動模塊包括PWM、SPI、I2C、AD等,用戶可通過Simulink模型中對應的模塊完成底層硬件驅動的調用;應用層包括Simulink實時代碼和PX4開源協議棧,Simulink實時代碼可通過UORB通訊機制完成與飛控協議棧之間的交互,可替換協議棧中姿態控制、數據融合、導航等控制算法。
圖24 PX4飛控板軟件3.4、配套設備
3.4.1、千兆以太網交換機
以太網交換機采用TP-LINK公司生產的TL-SG1024T,具體參數如下:
● 網絡標準:IEEE 802.3、IEEE 802.3u、IEEE 802.3ab、IEEE 802.3x;
● 端口:24個10/100/1000Mbps RJ45端口;
● 尺寸:294mm*180mm*44mm。
圖25 24口千兆以太網交換機3.4.2、操作臺
本方案提供兩個雙聯操作臺,為實驗人員提供操作平臺,主要功能如下:
● 安裝部署定位系統主機和實時控制主機;
● 存放無人機和無人車;
● 存放一些備品備件和常用實驗工具。
圖26 雙聯操作臺四、多智能體協同控制系統功能實現
4.1、實時定位
實時定位原理是外部光學鏡頭輔助定位,試用ZVR成熟的動作捕捉系統,可實現多運動體的精確定位,并支持實時控制軟件包調用SDK實時獲取最新6DoF位姿數據。
● 硬件環境:一套動作捕捉系統、1臺開發主機、若干空中節點、路由器;
● 軟件環境:開發主機上安裝MATLAB2017A以上版本,實時控制軟件包;動作捕捉系統主機上安裝操作及分析處理軟件;
● 操作流程:
1、準備好軟件硬件開發環境;
2、運行動作捕捉操作及分析處理軟件,使用標定工具對Goku? 130矩陣進行校準并對齊地平面;
3、為每個智能體部署一個唯一的標記點剛體組合;
4、搭建Simulink仿真模型,添加動作捕捉模塊,設置多智能體數量、目標機IP地址、動作捕捉主機IP地址;
5、在Active Center中注冊所有智能體;
6、使用實時控制軟件包完成模型編譯,支持Windows Target、NVIDIA和樹莓派三種類型的目標機;
7、在Simulink環境下使用外部模式控制模型運行,在Windows Target、空中地點上可直接獲取最新6DoF位姿信息。
圖27 操作示意說明4.2、節點控制
節點控制可通過三種方式實現,第一種控制方式Simulink生成代碼下載到Windows Target上,Windows Target運行實時仿真模型,通過網絡SDK接口與空中節點進行通訊,實現空中節點的控制;第二種方式是Simulink生成代碼下載到NVIDIA Target上,NVIDIA Target運行實時仿真模型,可直接訪問硬件接口數據,不受網絡通訊的影響,運行過程不依賴主機;第三種方式是Simulink生成ROS代碼下載到NCIDIA Target上,NVIDIA Target運行實時仿真模型,可通過ROS接口訪問硬件接口數據。
三種方式的軟硬件環境是相同的,實現流程有一定差異。
● 硬件環境:Host開發主機、NVIDIA控制板;
● 軟件環境:MATLAB/Simulink開發環境、實時控制軟件包。
4.2.1、Windows Target實時控制
1、Simulink建模包括兩個步驟,第一步建立出數字仿真模型,第二步從Windows Target工具箱中選擇實時通訊接口模塊加入到模型中;
2、模型配置包括文件配置文件配置和外部模式配置,目標文件選擇sldrt.tlc,外部模式選擇TCP連接;
圖28 選擇sldrt.tlc3、單擊Simulink模型編譯按鈕,自動完成模型編譯和下載到Windows Target;
4、模型調試:選擇external模式,單擊連接目標機、啟東模型按鈕后模型處于運行狀態,可通過Simulink Scope控件直接讀取模型數據,通過滑塊或者旋鈕等控件修改模型參數。
圖29 模型調試界面4.2.2、NVIDIA Target實時控制
1、Simulink建模包括兩個步驟:第一步建立純數字仿真模型,第二步從工具箱中選擇NVIDIA硬件接口模塊加入到模型中;
圖30 NVIDIA圖像采集模塊庫2、模型配置包括目標文件配置和外部模式配置,目標文件選擇ert.tlc,Hardware board選擇NVIDIA,外部模式選擇TCP連接;
圖31 NVIDIA模型配置1圖32 NVIDIA模型配置23、單擊Simulink模型編譯按鈕,自動完成代碼生成、代碼上傳、模型編譯及下載過程;
4、模型調試:選擇external模式,單擊連接目標機、啟東模型按鈕后模型處于運行狀態,可通過Simulink Scope控件直接讀取模型數據,通過滑塊或者旋鈕等控件修改模型參數。
4.2.3、ROS Target實時控制
1、Simulink建模包括兩個步驟,第一步建立純數字仿真模型,第二步從從巨響中選擇ROS接口模塊加入到模型中;
圖33 NCIDIA ROS接口模塊2、模型配置包括目標文件配置和外部模式配置,目標文件選擇ert.tlc,Hardware board選擇ROS,外部模式選擇TCP連接;
圖34 NVIDIA模型配置-ROS3、單擊Simulink模型編譯按鈕,自動完成代碼生成、代碼上傳、模型編譯及下載過程;
4、模型調試:選擇external模式,單擊連接目標機、啟東模型按鈕后模型處于運行狀態,可通過Simulink Scope控件直接讀取模型數據,通過滑塊或者旋鈕等控件修改模型參數。
4.3、視覺SLAM
視覺SLAM主要依賴相機完成團鄉采集機,通過算法完成建圖和定位。視覺SLAM方案可按照傳感器的不同(單目、雙目、RGBD、與IMU的組合等)、前段方法的不同(主要分為直接法和特征點法)、后端優化方案的不同(鋁箔或者非線性優化)、生成地圖形式的不同(稀疏地圖、稠密地圖等)具有不同的劃分。這里主要以傳感器的不同對SLAM方案進行簡單的介紹。
1、單目SLAM。只使用一個攝像頭采集信息,在尺度完成初始化的情況下(即相機初始階段進行了一段唯一且確定了該段位的實際大小作為參考),能夠完成連續圖像間相機位姿的計算與建圖。優點在于設備簡單,成本低。缺點在于存在尺度漂移現象;圖像的深度信息只能通過三角測量計算得到,對環境適應性差;在相機唯一較小時計算誤差較大,建圖精度不高。
2、雙目SLAM。使用雙目相機采集信息,雙目相機可以通過立體視覺原理計算得到像素深度,這樣就不存在單目SLAM中深度未知的情況。優點在于環境的適應性要高于單目SLAM,且能夠計算得到像素真實深度;缺點礙于像素深度計算量較大,一般通過FPGA或者GPU加速實現實時計算輸出。
3、RGBD SLAM。RGBD相機是指能夠同時輸出RGB圖像和對應的深度圖像的相機,其測量像素深度不在通過耗時的被動雙目匹配計算,而是通過激光散斑增加圖像文理急速計算或者硬件測量(結構光、TOF等)實現。因此它可以看做見笑了計算量的雙目SLAM,但是RGBD相機普遍在室外表現效果不佳,更多用于室內環境。
4、今年來有學者提出單目/雙目+IMU的SLAM方案,其中IMU主要起到的作用包括(a)解決單目SLAM的初始化尺度問題;(b)追蹤中提供較好的初始位姿;(c)提供中立方向;(d)提供一個時間誤差項一共優化。理論上來說IMU體用了冗余的運動信息,通過數據融合可以得到更加精確的運動估計。
本系統主要針對舍內運動體進行研究,空中節點的視覺傳感器用了Intel RealSense R200,包括了一個深度攝像頭的可見光攝像頭,屬于RGBD相機。下面介紹空中節點實現RGBD SLAM的硬件環境、軟件環境和操作流程。
● 硬件環境:1臺開發主機、路由器;
● 軟件環境:空中節點預裝Ubuntu16.04、ROS核心包、MAVROS包、RealSense包;開發主機上安裝MATLAB2017A以上版本,實時控制軟件包。ROS網絡啟動后,可以查看如下topic:
● 操作流程:
1、準備好軟件硬件開發環境;
2、運行MATLAB/Simulink,基于ROS工具箱和實時控制軟件包,搭建SLAM模型:試用兩個ROS subscribe模塊訂閱可見光相機和紅外相機的數據,經過SLAM算法處理得到空中節點的位姿信息;增加一個動作捕捉系統模塊,屬高精度位置信息,可作為我位置真值與SLAM算法結果進行分析比對;
圖35 空中節點SLAM Simulink模型3、模型代碼生成配置、選擇ert.tlc,Hardware board配置為ROS,設置空中節點IP地址、登錄用戶密碼、ROS目錄和catkin workspace;
圖36 空中節點SLAM Simulink模型代碼生成配置4、檢查空中節點的相關ROS節點是否正常啟動;
5、模型編譯生成ROS代碼,自動部署到目標硬件上運行Simulink SLAM ROS節點;
6、在Simulink環境下使用外部模式控制模型運動,通過在線改參和實時監視功能完成模型調試。
4.4、協同控制
多智能體協同控制時當前的研究熱點,多智能體之間通過相對信息交互及協同工作來完成某些特定的任務,本方案包括6個空中節點,節點之間采用無線WIFI作為信息交換媒介。
以下介紹分布式協同控制的軟硬件環境和實現過程。
● 硬件環境:一套動作捕捉系統、1臺開發主機、若干空中節點、路由器;
● 軟件環境:開發主機上安裝MATLAB2017A以上版本,實現控制軟件包;動作捕捉系統主機上裝操作及分析處理軟件;
圖37 多智能體協同控制原理● 操作流程:
1、準備好軟硬件開發環境;
2、運行動作捕捉操作及分析處理軟件,使用標定工具對Goku? 130矩陣進行校準并對齊地平面;
3、為每個智能體部署一個唯一的標記點剛體組合;
4、搭建空中節點Simulink仿真模型,添加動作捕捉模塊,獲得自身和其他智能體的位姿信息;搭建協同控制算法模塊,計算結果輸出到空中節點的執行結構模塊;
圖38 協同控制算法DEMO5、使用實時控制軟件包完成模型編譯,分別將模型加載到空中節點;
6、在Simulink環境下使用外部模式控制模型運行,通過在線改參和實時監視功能完成模型調試。
4.5、節點間自主通信
通過無人機編隊飛行,可以大幅度提高作戰效率。由于編隊中各成員之間的通信信息利用不充分以及傳感器測量誤差導致控制精度低的問題。通過一致性理論充分利用機間通信信息,并使用協同修正技術抑制測量誤差和協同誤差以提高隊形保持的精度。
空中節點自組網通信是實現一致性編隊的基礎,本方案選擇ZigBee作為自組網通信截止,ZigBee可以實現點對點和多節點的分組通信,組網方式非常靈活,可滿足本系統的需求。
ZigBee模塊和飛控板之間通過串口進行通信,飛控板基于PX4開源協議棧,開放全部源代碼,支持ZigBee驅動的移植開發,同時提供ZigBee的Simulink瘋轉,可通過Simulink建模方式完成應用程序的開發。
五、實驗內容
§ 基于Simulink書寫仿真實驗
● 單機姿態控制實驗;
● 單機位置控制實驗;
● 多機編隊實驗。
§ 定位系統試驗
● 運動捕捉系統定位實驗;
● 地面標記定位實驗。
§ 單機飛行實驗
● IMU數據采集實驗;
● 攝像頭數據采集和光流處理實驗;
● IMU和市局傳感器數據融合實驗;
● 單機定高控制實驗;
● 單機光流懸停實驗;
● 單機姿態控制實驗;
● 單機位置控制實驗。
§ 無人車:
● 硬件組成認識;
● 軟件開發環境學習和使用;
● 基于激光SLAM的機器人的自主定位導航;
● 基于3D攝像機的視覺深度處理及圖像跟隨。
§ 多機編隊飛行實驗
● 基于運動捕捉定位的多機編隊飛行實驗;
● 基于地面標記定位的多機編隊飛行實驗。
§ 多車編隊運行實驗
● 基于激光SLAM定位的多車編隊運行實驗;
● 基于地面標記物的多車編隊運行實驗。
§ 多智能體協同編隊運行實驗
● 基于運動捕捉系統定位的多車、多機編隊運行實驗;
● 基于期望目標任務的多車、多機編隊運行實驗。
總結
以上是生活随笔為你收集整理的python实现多智能体一致性_促进产学研,多智能体协同控制——科研与实践教学齐飞...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查一个字段中字符集超过30的列_详细解读
- 下一篇: html实体转换成xa0,关于javas