謝 磊
(浙江大學(xué) 機械工程學(xué)院,浙江 杭州 310027)
目前水下機器人可以分為兩大類[1]:一類是有線遙控潛水器(remotely operated vehicle, ROV),其通過電纜將水上操作平臺與水下機器人相連接[2],并進行能量傳輸和信號交換,但是往往需要多根線纜來控制機器人執(zhí)行任務(wù),布線復(fù)雜;另一類是自主水下機器人(autonomous underwater vehicle , AUV),其通過自身攜帶的能源對水下環(huán)境進行探索[3],按照規(guī)定的指令完成一系列動作,探測范圍廣,但由于水下環(huán)境復(fù)雜,通過無線來傳輸水下機器人視頻信號的方式技術(shù)實現(xiàn)上難度較大。
工業(yè)上常用的控制技術(shù)有現(xiàn)場總線和工業(yè)以太網(wǎng)技術(shù)。目前現(xiàn)場總線有CAN,PROFIBUS 和CC-Link等10 余種標準,但由于其沒有統(tǒng)一的國際標準,使得不同總線的產(chǎn)品之間很難互聯(lián),阻礙了現(xiàn)場總線技術(shù)的進一步推廣[4];而工業(yè)以太網(wǎng)技術(shù)將現(xiàn)場總線技術(shù)和以太網(wǎng)技術(shù)相結(jié)合,具有實時性高、傳輸數(shù)據(jù)量大和傳輸速率快等優(yōu)點,打破了不同總線之間難以互連的局面,具有很好的應(yīng)用前景。常見的工業(yè)以太網(wǎng)有PROFINET,EtherCAT 和PowerLink 等。楊書青基于CAN 總線設(shè)計實現(xiàn)了AUV 分布式控制系統(tǒng),實現(xiàn)了多節(jié)點協(xié)同的網(wǎng)絡(luò)通信模式[5]。戴騰清基于PROFIBUS提出了一種沖壓生產(chǎn)線自動化控制方案,提高了生產(chǎn)效率[6]。耿英博和杜向陽等人基于EtherCAT 技術(shù)設(shè)計了可控通信涂膠機器人的控制系統(tǒng),該系統(tǒng)大幅度提高了設(shè)備生產(chǎn)的良品率[7]。上述3 類常見的總線中,CAN 總線傳輸速率最慢(僅為1 Mb/s)、通信距離短(最遠僅為10 m);PROFIBUS 單次傳輸字節(jié)數(shù)少(僅為4 Bytes),掛載節(jié)點數(shù)最多127 個,通信距離為200 m;而EtherCAT 能達到100 Mb/s 的通信速度以及100 m通信距離,單次傳輸字節(jié)數(shù)為1 498 Bytes,掛載節(jié)點數(shù)最多可達65 535 個,具有明顯的優(yōu)勢[8]。
EtherCAT 是一種新型的工業(yè)以太網(wǎng)技術(shù)和協(xié)議,屬于開放架構(gòu),其報文幀由主站創(chuàng)建,以逐個尋找的方式通過所有的從站,直到最后一個從站將數(shù)據(jù)幀原路返回,延遲達到了納秒級,具有傳輸數(shù)據(jù)量大、實時性高及傳輸速率快等特點[9]。為了減少線纜的數(shù)量同時能夠?qū)崟r獲得水下環(huán)境的視頻信號,本文基于EtherCAT 工業(yè)以太網(wǎng)技術(shù)設(shè)計了一套ROV 控制系統(tǒng),通過模塊化設(shè)計和分布式控制等技術(shù)實現(xiàn)機器人所需的功能。
ROV 控制系統(tǒng)的設(shè)計目標是簡易、具有良好的可擴充性并且能靈活配置各種設(shè)備。本文基于EtherCAT 總線設(shè)計了一套模塊化的ROV 控制系統(tǒng),并將視頻信號和控制信號進行集成,僅通過一根線纜進行傳輸。
ROV 的輸出設(shè)備主要是電機、燈以及電磁閥。電機控制的機械執(zhí)行機構(gòu)有車輪、葉片推動器以及機械臂等,其中車輪的作用是完成機器人在水底的前進、后退以及轉(zhuǎn)向等動作;葉片推進器的作用是幫助水下機器人在水里前進、橫移以及保持平衡等;機械臂的作用是完成水中的作業(yè)任務(wù),這些功能的實現(xiàn)需要調(diào)節(jié)電機的轉(zhuǎn)速并進行模擬量傳輸。燈和電磁閥的數(shù)字量則只需要微控制器的I/O 端輸出1 或0 信號即可。
ROV的輸入設(shè)備主要是各種傳感器設(shè)備和攝像頭。傳感器主要有深度傳感器、溫濕度傳感器和位移傳感器以及編碼器等,其中深度傳感器可以實時報告ROV 所處的深度;溫濕度傳感器可以監(jiān)測機器人內(nèi)部設(shè)備的運行情況,防止電機溫度過高或者漏水的情況出現(xiàn);編碼器用于實時反饋電機的轉(zhuǎn)速和加速度等信息;位移傳感器可以測量液壓缸的運動距離。攝像頭的作用是實時監(jiān)測水下環(huán)境,方便工作人員進行遠程操控。
針對ROV 實時性要求高的特點,基于EtherCAT技術(shù)設(shè)計了ROV 的控制系統(tǒng)(圖1),其主要由水面系統(tǒng)和水下系統(tǒng)兩個部分組成。
圖1 水下機器人控制系統(tǒng)Fig. 1 Underwater robot control system
(1)水面系統(tǒng)
水面系統(tǒng)由監(jiān)視器、主控機及交換機組成。交換機引出3 個端口,其中一個端口連接監(jiān)視器,用來實時接收攝像頭傳輸?shù)臄?shù)據(jù)并將其轉(zhuǎn)化成視頻;另一個端口用來接EtherCAT 主站,實現(xiàn)運動控制,在主站上設(shè)計人機交互界面;還有一個端口與水下系統(tǒng)交換機相連接。
(2)水下系統(tǒng)
水下系統(tǒng)由攝像頭模塊、交換機和EtherCAT 從站組成。攝像頭采用以太網(wǎng)接口。EtherCAT 網(wǎng)段設(shè)有多個從站,采用分布式的控制系統(tǒng)架構(gòu),根據(jù)不同的功能可以分為示蹤模塊、驅(qū)動模塊、傳感器模塊以及I/O 模塊。EtherCAT 從站采用線型拓撲的方式,每個從站只需要引出兩個接口即可。由于EtherCAT 技術(shù)支持不同協(xié)議的以太網(wǎng)數(shù)據(jù)幀在總線中傳輸,因此只需要用以太網(wǎng)交換機將攝像頭模塊和EtherCAT 從站模塊連接在一起。以太網(wǎng)交換機用以傳輸以太網(wǎng)數(shù)據(jù)幀,使設(shè)備共享局域網(wǎng)。交換機的每個端口都相互連通,可以在全雙工的模式下運行,設(shè)備可以通過MAC 地址找到對應(yīng)的通信設(shè)備,交換機可以實現(xiàn)多個端口的相互通信,通過一種機制使數(shù)據(jù)進行無沖突地傳輸。在交換機上引出一根網(wǎng)線連接到水面系統(tǒng)的交換機上,從而實現(xiàn)通信。
為了能夠看到水下的作業(yè)環(huán)境,通過視頻方式可以直觀地獲取到機器人周邊環(huán)境信息,而視頻傳輸需要占用很多的帶寬資源。傳統(tǒng)的控制方式,如CAN 總線無法傳輸如此大的數(shù)據(jù)量,帶寬過大會使總線負載過大,可能會引起系統(tǒng)的崩潰,因此在使用EtherCAT 總線時有必要對帶寬承載能力進行計算。一路1 080P 的攝像頭其像素為2 025 kbits,幀率設(shè)置為25 fps,視頻傳輸?shù)膬?nèi)容一般是增量變化數(shù)據(jù),其變化量在20%~60%之間,在增量為40%的情況下,每秒需要傳輸?shù)谋忍財?shù)為(2025×0.4×24+2025)/1024=21 Mbits;經(jīng)過H.264壓縮后,所需的帶寬可以控制在4 Mb/s,而百兆網(wǎng)線能傳輸100 Mbits 的數(shù)據(jù)量,因此最多可以傳輸4 路視頻信號。
本設(shè)計主站選用基于64 位Windows 7 系統(tǒng)的普通個人計算機(PC),其安裝有實時控制軟件TwinCAT3.1。該軟件改造了Windows 7 系統(tǒng)的內(nèi)核,周期時間最短可達50 μs,從而保證了主從站通信的實時性。
EtherCAT 從站由兩部分組成:從站控制器(EtherCAT slave controller, ESC)和微控制器(micro controller unit, MCU)。圖2 示出EtherCAT 從站結(jié)構(gòu)。ESC 用以完成數(shù)據(jù)鏈路層以太網(wǎng)數(shù)據(jù)幀的解析,為從站控制器提供接口;MCU 用以實現(xiàn)應(yīng)用層的功能。ESC選用LAN9252 型芯片[10],具備3 個現(xiàn)場存儲管理單元以及4 個SyncMananger,且擴展了兩個以太網(wǎng)端口物理層接口,性價比較高。MCU 選用意法半導(dǎo)體公司的 STM32F407ZG 型芯片,其工作頻率高并集成了定時器等多種功能。
圖2 EtherCAT 從站結(jié)構(gòu)Fig. 2 EtherCAT slave structure
主站與從站通過標準網(wǎng)線進行通信,ESC 與MCU之間采用主機總線接口 (host bus interface, HBI)并行通信,采用STM32F4 系列特有的可變靜態(tài)存儲控制器 (flexible static memory controller,F(xiàn)SMC)與ESC 進行16 位并行數(shù)據(jù)交換,如圖2 所示。
從站的程序主要分為驅(qū)動層、通信層和應(yīng)用層。驅(qū)動層用來訪問ESC 的寄存器以讀取數(shù)據(jù);通信層根據(jù)EtherCAT 協(xié)議解析數(shù)據(jù)并且完成狀態(tài)機的轉(zhuǎn)換;應(yīng)用層涉及具體的控制程序。從站程序流程如圖3 所示,其完成了基本的數(shù)據(jù)通信。
在應(yīng)用層,為了對數(shù)據(jù)對象的收發(fā)進行管理,對對象字典進行了設(shè)計,通過將0x1C12 作為接收映射關(guān)系,0x1601 和0x1608 作為布爾量和整型量的映射關(guān)系,直接控制16 個數(shù)據(jù)量,從而實現(xiàn)一個主從站之間32 個數(shù)據(jù)量的相互交換。
最后,通過主站發(fā)送數(shù)據(jù)給對應(yīng)從站,從站接收到數(shù)據(jù)并將數(shù)據(jù)返回的方式驗證了通信的可行性。圖4 示出在主站反復(fù)發(fā)送0/1 數(shù)據(jù)后主站收到的數(shù)據(jù)圖像??梢钥闯觯祷氐男盘柍矢叩碗娖浇惶孀儞Q,準確地進行雙向數(shù)據(jù)傳輸,驗證了該設(shè)計的可行性。
圖3 從站程序流程Fig. 3 Slave flow chart
圖4 通信可行性驗證Fig. 4 Communication feasibility verification
為了對ROV 進行更加直觀的控制,需要設(shè)計一個人機交換界面(圖5)。TwinCAT 控制軟件不僅自帶簡易的人機交互接口(human machine interface,HMI)設(shè)計界面,而且還定義了先進設(shè)計系統(tǒng)通信規(guī)范,并為設(shè)計HMI 提供了方案。在TwinCAT 軟件中,先進設(shè)計系統(tǒng)(advanced design system,ADS)通信為模塊之間的數(shù)據(jù)交換提供了路由。
圖5 基于VB 的人機交互界面Fig. 5 Human-machine interaction interface based on Visual Basic
本文基于Visual Basic(VB)語言設(shè)計機器人人機交互界面,通過在VB 中添加ADS-OCX 控件,實現(xiàn)VB 與TwinCAT 之間的通信。調(diào)用ADS-OCX 控件時,需要對控件的屬性進行設(shè)置,根據(jù)TwinCAT 中相應(yīng)的PLC 程序設(shè)置控件的端口號,使Server NetID 和Client NetID 與AMS 地址一致。先對界面進行設(shè)計,調(diào)用VB 中固有的控件,然后對控件進行編寫程序,VB 與TwinCAT 之間采用同步讀寫的方式進行數(shù)據(jù)通信,即首先創(chuàng)建一個通知,然后接收返回處理。通過Timer 控件設(shè)置時間,周期性地讀取PLC 程序中的變量。
為了展示ROV 控制系統(tǒng)的可行性,本文設(shè)計了一個可以實現(xiàn)的簡易模擬平臺來替代,其包括傳感器模塊、輪式模塊、示蹤模塊、推進器模塊和吸盤模塊,具體如圖6 所示。水下系統(tǒng)使用一個攝像頭替代攝像頭模塊,用5 個從站分別代表水下機器人的5 個模塊。水面系統(tǒng)有一個監(jiān)視器,是一臺具有以太網(wǎng)接口PC 機,用來接收視頻信號,PC 機上裝有與攝像頭相匹配的監(jiān)控軟件,通過搜索IP 地址,可以找到對應(yīng)的攝像頭并實時顯示視頻;系統(tǒng)EtherCAT 主站以基于PC 的TwinCAT 軟件作為軟主站。水面系統(tǒng)和水下系統(tǒng)通過兩個交換機傳輸以太網(wǎng)數(shù)據(jù)幀。
圖6 模擬平臺Fig. 6 Simulation platform
水下系統(tǒng)EtherCAT 網(wǎng)段有5 個從站,模擬水下系統(tǒng)的控制系統(tǒng),每個從站通過設(shè)備不同的特點形成模塊化設(shè)計,既模擬了數(shù)字量的輸入輸出,也可以實現(xiàn)模擬量的輸入輸出以及PWM 控制電機運動。從站之間采用線型的拓撲方式。
該模擬平臺用驅(qū)動模塊模擬驅(qū)動輪,其由4 個電機和2 個驅(qū)動器組成,通過控制可以實現(xiàn)各種移動動作;用推動器模塊模擬推動器,其由4 個舵機馬達組成,通過IO 端口向推進器輸入50 Hz 的PWM 方波,調(diào)節(jié)高電平的占空比(5%~10%)就可以調(diào)節(jié)舵機的轉(zhuǎn)速以及轉(zhuǎn)向;用傳感器模塊模擬多個傳感器系統(tǒng),系統(tǒng)使用的是位移傳感器,該傳感器可以將長度轉(zhuǎn)化成電壓值,長度與電壓值成正比,通過微控制器的AD 模塊將其轉(zhuǎn)化成數(shù)字量,再經(jīng)過一定的計算將其轉(zhuǎn)化成對應(yīng)的長度關(guān)系;用示蹤模塊模擬水下示蹤系統(tǒng),其由探照燈和電磁閥組成,屬于兩個數(shù)字輸出量,模擬系統(tǒng)中使用5V LED 和繼電器等替代,可以實現(xiàn)開關(guān)等功能;吸盤模塊使用一個直流電機和推進模塊進行模擬操作。
ROV 控制系統(tǒng)對實時性的要求較高,延時過長或者傳輸頻率不穩(wěn)定會導(dǎo)致機器人不能按照操作人員的意圖進行運動,因此,需要對搭建的實驗平臺進行實時性能分析。利用以太網(wǎng)分析儀對所搭建的實驗平臺的數(shù)據(jù)幀進行采集并將數(shù)據(jù)轉(zhuǎn)化為Winpcap 格式。該以太網(wǎng)分析儀采用端口鏡像的方式來采集數(shù)據(jù),其不影響設(shè)備正常通信,且端口上的所有數(shù)據(jù)都會被采集。測試硬件連接方式如圖7 所示[11]。
圖7 測試硬件連接Fig. 7 Test hardware connection diagram
通過PC 上的Wireshark 軟件對以太網(wǎng)分析儀抓取的數(shù)據(jù)進行詳細分析。本實驗抓取了41.067 586 s 的數(shù)據(jù)幀,其中MAC 地址00:00:00:00:00:00 為主站地址,MAC 地址02:00:00:00:00:00 為從站網(wǎng)段地址。在TwinCAT 主站上將運行周期設(shè)置為10 ms,對收集的報文進行過濾篩選,選擇主站發(fā)送的數(shù)據(jù)幀,將其以csv 格式文件導(dǎo)出并在excel 中進行分析:主站兩個發(fā)送數(shù)據(jù)幀最大間隔時間為11.218 ms,最小間隔時間為8.594 ms,平均間隔時間為9.92 ms,平均誤差在0.8%。當運行周期被設(shè)置為5 ms 時,最大間隔時間為5.341 ms,最小間隔時間為4.329 ms,平均間隔時間為5.02 ms,平均誤差在0.4%。當運行周期被設(shè)置為1 ms 時,最大間隔時間為1.312 ms,最小間隔時間為0.708 ms,平均間隔時間為1.052 ms,平均誤差在5.2%??梢?,TwinCAT 主站發(fā)送數(shù)據(jù)的抖動誤差在幾十微妙范圍內(nèi),因此發(fā)送周期不能被設(shè)置為0.01 ms 級別。圖8 示出主站分別在5 ms 和10 ms 的循環(huán)周期下發(fā)送數(shù)據(jù)幀結(jié)果。實驗結(jié)果表明,數(shù)據(jù)幀發(fā)送具有周期性規(guī)律,說明主站運行穩(wěn)定,可靠性較高。通過計算可知,從站傳輸報文延時基本上都是在1~3 μs 范圍內(nèi),延時較短;當通信頻率為kHz 級時,延時可忽略不計,說明EtherCAT 總線通信的性能較好。
圖8 Wireshark 抓包結(jié)果Fig. 8 Wireshark packet capture results
本文以ROV 控制系統(tǒng)作為研究對象,設(shè)計了基于EtherCAT 總線的ROV 控制系統(tǒng),并將ROV 各個功能模塊化;同時搭建了模擬ROV 功能的實驗平臺,用上位機來控制各個模塊實現(xiàn)相應(yīng)功能,且保證了視頻信號和控制信號在一條總線上傳輸;最后對基于EtherCAT總線的控制系統(tǒng)進行了實時性能分析,結(jié)果表明該系統(tǒng)通信延時短、通信性能穩(wěn)定,符合水下ROV 控制需求。使用嵌入式主站能進一步提高系統(tǒng)的實時性能,如何開發(fā)嵌入式主站將是未來研究的方向。