曾舒婷
(南京大學金陵學院,南京,210000)
水下機器人作為一種多用途的海洋開發(fā)與海洋探索工具,受到各國的普遍重視。水下機器人誕生于20 世紀后半期,經(jīng)過幾十年的發(fā)展,已經(jīng)廣泛應用于海洋科學考察、打撈救生、海洋軍事、漁業(yè)、水產(chǎn)養(yǎng)殖、海底石油勘探、海底光纜鋪設等領域,取得了顯著的經(jīng)濟和社會效益,同時水下機器人的各類技術也取得了長足的進步[1]。
最近幾年,功耗問題在各個行業(yè)都引起了重視,功耗已經(jīng)成為衡量產(chǎn)品的一個重要指標。隨著水下機器人技術的發(fā)展,低功耗和水下長期作業(yè)成為近來的發(fā)展趨勢之一。推進器作為水下機器人的主要組成部分,其所消耗的能量在整個系統(tǒng)的功耗中占據(jù)相當大的一部分,所以對于自帶能源的水下機器人來說,在不降低其機動性的前提下,采用可傾轉的機構來減少推進器數(shù)量成為水下機器人的一個發(fā)展方向。
一般地,在水下機器人運動平臺上都使用螺旋槳導管推進器,并根據(jù)功能需求來確定平臺上最終安裝推進器的數(shù)量,例如水下機器人要完成6 自由度的水下運動則需要安裝至少6 個推進器,而且這6 個推進器是固定安裝的。如果水下機器人運動平臺在作業(yè)時頻繁移動,那么這6 個推進器的能耗絕對在整個系統(tǒng)中占據(jù)非常大的比重。
水下機器人運動平臺要完成一個自由度上的運動,螺旋槳推進器必然需要正轉一次、反轉一次。我們知道,螺旋槳一般都設計為:當螺旋槳葉片正向轉動時推進效率最高,葉片反向轉動時推進效率最低,推進效率至少相差10%,而對于水下機器人使用的導管推進器來說,這個數(shù)字可能會更大。
考慮到螺旋槳葉柵干擾作用——葉片數(shù)越多葉柵干擾作用越大,本文水下機器人選用3 葉片螺旋槳推進器。
對于自帶能源的水下機器人來說,在不降低其機動性的前提下,采用帶有2 個可傾轉推進器的推進系統(tǒng)(以下簡稱可傾轉推進器)來減少推進器數(shù)量成為新型水下機器人的一個發(fā)展方向[2-4]。
基于可傾轉推進器的水下機器人具有與傳統(tǒng)水下機器人所不同的推進結構,其載體兩側的兩個推進器可繞中心軸傾轉。這樣,利用可傾轉推進器便可實現(xiàn)載體4 個自由度的運動,即進退、潛浮、水平轉向和橫滾,這在不降低載體航行機動性的同時減少了推進器數(shù)量,降低了載體的能耗,適合在復雜的海底環(huán)境中大范圍搜索或進行定點科學考察。同時,基于可傾轉推進器的水下機器人與傳統(tǒng)的固定推進器產(chǎn)品相比,可傾轉推進器有更高的效率。例如,當水下機器人要求后退時,傳統(tǒng)的水下機器人就會要求主推進器反轉,而一般推進器的正反轉效率相差很大,這樣推進器就無法發(fā)揮更大的功效。而可傾轉推進器只要傾轉180°就可以使得推進器朝向相反的方向進行推進,這種情況下推進器始終保持正轉,提高了推進器的工作效率,同樣也降低了載體能耗。
可傾轉推進器作為一種新型的水下機器人推進方式,非常適合進行海底科學考察。但由于其與傳統(tǒng)水下機器人不同的推進結構,載體控制更加復雜。本文因此開展基于可傾轉推進器的水下機器人運動控制研究,設計出高效的可傾轉推進系統(tǒng),并探索出一套有效的控制策略與方法,使得基于可傾轉推進器的水下機器人得以實現(xiàn),并可在今后的實際應用中發(fā)揮更大的作用。
水下機器人作為一種先進的水下運動平臺,需要有自主運動的能力,要完成這個目標需要一個相對復雜的控制系統(tǒng),特別是當水下機器人的功能越來越強大、搭載的科學探測設備越來越多時,其控制系統(tǒng)就會越來越復雜。這里為簡化設計方案的復雜度,僅將水下機器人作為一個運動平臺進行討論,假定該平臺上并未搭載除控制系統(tǒng)外的任何其他科學探測設備。
為了完成對水下機器人的控制,水下機器人的控制系統(tǒng)必須包含完整的硬件系統(tǒng)和軟件控制系統(tǒng),如圖所示。
圖 水下機器人控制系統(tǒng)
硬件系統(tǒng)按照功能可劃分為控制機構、執(zhí)行機構,而控制機構又可分為處理器單元、數(shù)據(jù)采集單元、電源轉換單元、通信單元,執(zhí)行機構主要是用來執(zhí)行控制機構發(fā)送的命令的,可以分為可傾轉控制單元、推進控制單元。
軟件控制系統(tǒng)同樣可以分為人機交互界面、底層控制程序兩部分。為了提高調(diào)試、控制的便捷性,可視化的人機交互界面是必不可少的,而為了完成最終的控制目的,底層的控制程序則起到了不可或缺的作用。
考慮到本文討論的是一個水下運動平臺,所以在硬件設計的時候只需要考慮如何完成對運動平臺的控制即可。
要完成對一個水下機器人的控制且使得該機器人在水下可以保持一個穩(wěn)定的運動狀態(tài),上述的各個硬件組成單元缺一不可。上述單元按照功能具體到實物上就是處理器單元、數(shù)據(jù)采集單元、電源轉換單元、通信單元、推進電機及其控制器。下面詳細描述各模塊的作用。
作為水下機器人運動平臺的心臟,處理器單元(CPU)要完成對水下機器人的控制,并使其保持一個穩(wěn)定的水下運動狀態(tài)。作為核心模塊,原則上必須選擇一個高性能處理器,但是本文由于不考慮水下機器人的智能化水平,只需考慮在降低功耗的同時能完成對水下機器人平臺的控制,所以本文選擇使用單片機MSP430,這是一種超低功耗的混合信號處理器。
MSP430 單片機的特點是:
1) 運算速度快。工作頻率為25MHz,16 位的數(shù)據(jù)寬度,40ns 的指令周期,能實現(xiàn)數(shù)字信號處理的某些算法。
2) 超低功耗。電源電壓采用1.8V-3.6V,獨特的時鐘系統(tǒng)設計,這些時鐘可以在指令的控制下打開和關閉,從而實現(xiàn)對總體功耗的控制。
該部分對水下機器人控制系統(tǒng)完成對自身運動狀態(tài)的控制非常重要。因為水下機器人方案的特殊性,其不但需要常規(guī)水下機器人所必須的電子羅盤和深度計來提供自身的狀態(tài)信息,還需要電位計來測量傾轉推進器的傾轉角度。
電子羅盤:通過電子羅盤可以正確檢測水下機器人運動平臺的自身運動姿態(tài)。
深度計:采用深度計可檢測模塊所處的深度,其輸入信號為模擬量,必須經(jīng)過A/D 變換為數(shù)字量以便完成定深控制。
電位計:一般多用在伺服系統(tǒng)的直流電機位置檢測或者音響調(diào)節(jié)等方面。
水下機器人運動平臺需要多種不同的電壓,例如CPU 使用的+3.3V 電源以及部分傳感器的電源、深度計的電源、進行D/A 變換的參考電源,推進器的推進電源等,所以電源轉換模塊在水下機器人中起到非常重要的作用。
航行控制單元主要是由處理器、D/A 模塊、保護電路等組成。航行控制單元的執(zhí)行單元分為主推進器電機和可傾轉伺服電機。二者的驅(qū)動方式不同,前者采用PWM 驅(qū)動,后者采用D/A 模塊驅(qū)動。所以,航行控制單元實際上分為兩部分,推進系統(tǒng)的控制采用開環(huán)控制,即處理器單元接收上位機發(fā)出的控制指令,通過PWM 方式輸出控制信號,經(jīng)過電氣隔離控制推進電機的轉速;可傾轉推進器控制電機(以下簡稱傾轉電機)采用閉環(huán)控制,處理器單元接收上位機發(fā)出的控制指令,然后通過D/A 轉換輸出模擬控制信號,經(jīng)過電氣隔離控制傾轉電機的位置。傾轉電機的位置信號通過安裝在傾轉軸上的旋轉電位計測得,經(jīng)過信息采集單元A/D 變換后送入處理器單元,形成閉環(huán)控制。
硬件是軀體,軟件是靈魂。水下機器人作為先進的水下運動平臺,需要功能強大的軟件作為支撐來完成其任務,而本文中所使用可傾轉推進器的低能耗、長航時的水下機器人因為自身結構的復雜性,所以其軟件系統(tǒng)更加復雜。
考慮到水下機器人的作用、系統(tǒng)本身的可維護性、使用的方便性,軟件系統(tǒng)被分割為水面部分和水下部分分別進行設計。
水面部分主要是一個人機交互界面,包含水下機器人的運動姿態(tài)檢測、設備狀態(tài)監(jiān)測、水下機器人的運動控制等部分,統(tǒng)稱為上位機軟件。
水下部分主要用于完成對水下機器人自身狀態(tài)的監(jiān)測并根據(jù)自身任務的需求以及上位機發(fā)送的控制指令完成對自身的控制,統(tǒng)稱為下位機軟件。
為了達到相應的功能,上位機軟件需要具備以下幾部分主要模塊:
1)人機交互界面模塊:提高系統(tǒng)的可維護性和使用的方便性。
2)通信模塊:完成與水下機器人的數(shù)據(jù)交互。
以上兩個模塊在上位機軟件中使用兩個線程完成。
通信模塊,作為工作線程存在于上位機軟件中??紤]到本文所述水下機器人推進系統(tǒng)的特殊性,要求水下機器人的推進系統(tǒng)必須盡可能快地做出響應,以保證水下機器人的安全。同時,為了能夠盡可能實現(xiàn)對水下機器人運動狀態(tài)及自身設備狀態(tài)的實時監(jiān)測,上位機軟件必須能夠?qū)崟r接收下位機軟件發(fā)送的各種狀態(tài)數(shù)據(jù)。
為了滿足以上需求,上位機軟件和下位機軟件之間的通信采用全雙工的通信模式,這樣既滿足了水面操作人員對水下機器人運動狀態(tài)的把握,又能根據(jù)運動狀態(tài)及時對水下機器人進行操控;從成本以及實際的通信距離的需要進行考慮,RS485 串口全雙工通信的工作方式也是上位機軟件和下位機軟件之間通信的最佳方式。
上位機軟件中的串口通信模塊有2 種實現(xiàn)方法:采用C++的MFC 思路,將win32 串口通信的API 函數(shù)封裝在一個類中實現(xiàn);利用Labview 提供的VISA 資源編寫串口通信函數(shù)。
下位機軟件起到承上啟下的作用,在整個水下機器人中同樣非常重要,它不僅要接收上位機軟件發(fā)送的控制指令并“命令”執(zhí)行機構完成相應的控制任務,還要將水下機器人的各種狀態(tài)數(shù)據(jù)發(fā)送給上位機。
為了簡化設計并將最大的設計空間留給讀者,本文所述的使用可傾轉推進器的水下機器人并未搭載任何科學探測設備。所以,在設計下位機軟件的時候可以暫時不考慮多任務的需求,也就是說,在本文所述的水下機器人運動平臺上不需要實時操作系統(tǒng),依靠CPU 自身的中斷系統(tǒng)就可以完成相應的功能。
為了更好地完成下位機軟件的設計工作,可以將下位機軟件進行模塊化設計,每一個設計模塊都是相互獨立的。模塊之間的通信使用全局變量進行處理,根據(jù)功能的不同,下位機軟件分為數(shù)據(jù)采集模塊、運動控制模塊、通信模塊;根據(jù)運行方式的不同,下位機軟件又可以分為主程序和中斷服務程序。在此根據(jù)功能分別介紹不同模塊的設計。
5.2.1 數(shù)據(jù)采集模塊
該模塊采集可傾轉推進器水下機器人搭載的傳感器的數(shù)據(jù),用于監(jiān)測水下機器人自身狀態(tài),并依據(jù)數(shù)據(jù)信息完成對水下機器人的控制。數(shù)據(jù)采集模塊所涉及到的內(nèi)容是傳感器數(shù)據(jù)A/D 轉換模塊,根據(jù)搭載傳感器的不同,數(shù)據(jù)采集模塊采集的數(shù)據(jù)也不盡相同。
本文數(shù)據(jù)采集模塊主要采集電位計、深度計以及傾轉電機電流等的模擬數(shù)據(jù),并進行A/D 轉換;除了采集這些模擬數(shù)據(jù)之外,數(shù)據(jù)采集模塊還需要接收電子羅盤發(fā)送的姿態(tài)信息,該信息是以數(shù)字的形式通過串口發(fā)送出來。
數(shù)據(jù)采集模塊要對水下機器人狀態(tài)進行實時監(jiān)測,所以該模塊必須要周期性地采集系統(tǒng)的狀態(tài)信息。在進行軟件設計時,必須使用CPU 的定時器并使用定時器中斷服務程序來完成對相關數(shù)據(jù)的采集。
5.2.2 通信模塊
通信模塊既要完成下位機軟件中內(nèi)部的數(shù)據(jù)交互,還需要完成與上位機軟件之間的數(shù)據(jù)交互。
下位機軟件內(nèi)部的數(shù)據(jù)交互比較簡單,在此不再贅述。
下位機軟件與上位機軟件之間的數(shù)據(jù)交互涉及到通信方式的選擇、通信端口的操作、協(xié)議的制定等方面。
上位機軟件與下位機軟件采用RS485 進行通信,在具體實現(xiàn)的時候會涉及到串口數(shù)據(jù)幀格式的選擇,本文選用最常用的幀格式:8 位數(shù)據(jù)位,1 位停止位,無奇偶校驗位,波特率為9600bps。
下位機軟件與上位機軟件進行通信時,需要對交互的數(shù)據(jù)做一個明確定義,這就是通信協(xié)議。那么,下位機軟件發(fā)送給上位機軟件的協(xié)議(上行數(shù)據(jù)協(xié)議)與上位機軟件發(fā)送給下位機軟件的協(xié)議(下行數(shù)據(jù)協(xié)議)應該如何定義呢?理論上二者應該是不同的,但是為了簡化設計,本文對上行數(shù)據(jù)協(xié)議和下行數(shù)據(jù)協(xié)議采用同一種數(shù)據(jù)格式。
第00 字節(jié)為數(shù)據(jù)幀的起始位,固定為0XFF;第01-04 字節(jié)為航向角數(shù)據(jù);05-08 縱傾角數(shù)據(jù);09-12 為橫滾角數(shù)據(jù);13 字節(jié)為羅盤數(shù)據(jù)的高8 位,第14 字節(jié)為羅盤數(shù)據(jù)的低8 位;第15 字節(jié)為傾轉電機電流數(shù)據(jù)高8 位;16 字節(jié)為傾轉電機電流低8 位;17 字節(jié)為深度計數(shù)據(jù)高8 位;18 字節(jié)為深度計數(shù)據(jù)低8 位;19 字節(jié)為電位計數(shù)據(jù)高8 位;20 字節(jié)為電位計數(shù)據(jù)低8 位;第21 字節(jié)為幀數(shù)據(jù)校驗和,具體如下表所示。
在進行通信模塊設計時,出于低能耗、長航時方面的考慮,將基于中斷請求機制進行模塊設計,與輪詢機制相比,中斷請求機制比較少地占用系統(tǒng)資源,這種方式可以有效降低系統(tǒng)的能耗。
表 數(shù)據(jù)格式
5.2.3 運動控制模塊
運動控制模塊屬于水下機器人的“手腳”,用來接收控制指令并完成相應的功能。該模塊的設計相對簡單,涉及到PWM 調(diào)速、伺服電機的D/A 控制。
推進電機采用PWM 調(diào)速,因為其對控制精度要求不高,所以可以簡單地采用開環(huán)控制。
傾轉電機是用來控制推進電機的傾轉角度的,所以其對位置精度要求偏高,同時還要求有較高的響應精度。所以在對傾轉電機的控制中,對位置需要進行閉環(huán)控制;同時根據(jù)控制精度要求的不同而采用不同精度的D/A 器件。推薦至少12 位以上精度的D/A 器件。
同樣出于低能耗、長航時方面的考慮,在基于定時器中斷進行程序設計時,系統(tǒng)有“記憶”功能,當前的控制狀態(tài)只有在上位機軟件主動改變時才會改變,否則會一直保持當前的控制狀態(tài),這樣可以有效地減少運動狀態(tài)切換產(chǎn)生的額外能耗。
本文從水下機器人螺旋槳推進器的數(shù)量、推進效率以及控制系統(tǒng)的功耗等3 個方面對基于可傾轉推進器的水下機器人做了系統(tǒng)分析和設計,并提出了整體設計方案:
1)使用3 葉片的螺旋槳作為水下機器人運動平臺的推進器,以降低螺旋槳的葉柵干擾作用。
2)設計可傾轉推進器系統(tǒng),使得推進器一直在正轉的情況下完成水下機器人運動平臺的運動需求,提高了螺旋槳的推進效率。
3)減少螺旋槳推進器的數(shù)量,降低運動系統(tǒng)在整個系統(tǒng)中的能量消耗。
4)為該水下機器人運動平臺設計專用的硬件控制系統(tǒng)和軟件控制系統(tǒng),利用了低功耗信號處理器和中斷處理機制。
通過以上措施,在未降低水下機器人運動平臺的機動性的前提下,本文方案有效降低系統(tǒng)功耗并延長了自帶能源的水下機器人運動平臺的作業(yè)時間。
[1] 蔣新松, 封錫盛, 王棣棠. 水下機器人[M]. 沈陽:遼寧科技出版社, 2000.
[2] 馮正平.國外自治水下機器人發(fā)展現(xiàn)狀綜述[J].魚雷技術,2005,13(1)∶5-9
[3] 國家中長期科學和技術發(fā)展規(guī)劃綱要(2006-2020 年)[EB/OL].(2006-02-09)[2015-03-08].http∶//www.gov.cn/jrzg/2006-02/09/content_183787.htm, 2006.
[4] 成屹,聶文天.吊艙式全回轉電力推進器的現(xiàn)狀及展望[J].江蘇船舶,2007,24(6)∶28-29,37.