唐鴻儒 奚家烽 沈天鶴 包加桐 劉其銘
摘要 為了降低水下機(jī)器人開發(fā)復(fù)雜度,增加機(jī)器人的適應(yīng)性和開放性,基于ROS(機(jī)器人操作系統(tǒng))研制了遙控水下機(jī)器人監(jiān)控系統(tǒng).首先簡單介紹了遙控水下機(jī)器人監(jiān)控系統(tǒng)的硬件結(jié)構(gòu),提出了基于ROS的遙控水下機(jī)器人監(jiān)控系統(tǒng)軟件框架,介紹了感知執(zhí)行層、導(dǎo)航控制層和監(jiān)視操作層的組成及作用,描述了運(yùn)動控制節(jié)點(diǎn)、人機(jī)交互節(jié)點(diǎn)、姿態(tài)控制節(jié)點(diǎn)3個(gè)功能模塊的設(shè)計(jì)方法.實(shí)驗(yàn)表明,基于ROS開發(fā)的水下機(jī)器人監(jiān)控系統(tǒng)能很好地協(xié)調(diào)感知模塊、運(yùn)動控制模塊和人機(jī)交互模塊等各個(gè)節(jié)點(diǎn)的工作,具有開發(fā)周期短、擴(kuò)展性較好等特點(diǎn).
關(guān)鍵詞 監(jiān)控系統(tǒng);遙控水下機(jī)器人;系統(tǒng)架構(gòu);機(jī)器人操作系統(tǒng)(ROS);傳感與控制
中圖分類號 TP242.3
文獻(xiàn)標(biāo)志碼 A
0 引言
近年來,隨著國家經(jīng)濟(jì)的快速發(fā)展,全國許多地方都建設(shè)了大型水電廠、泵站橋梁等水利工程設(shè)施.利用遙控水下機(jī)器人來完成水下建筑物巡檢[1]、水質(zhì)環(huán)境調(diào)查[2]、水下打撈作業(yè)[3]等任務(wù),可以提高工作效率,保證作業(yè)人員的人身安全[4].
遙控水下機(jī)器人通常工作在非結(jié)構(gòu)化的環(huán)境中,需要在操作人員的控制和監(jiān)視下運(yùn)行.不同研究機(jī)構(gòu)所研制的水下機(jī)器人在結(jié)構(gòu)、功能、設(shè)備接口方面不盡相同,硬件板卡不一致,使用各種不同的操作系統(tǒng),導(dǎo)致大量的代碼冗余,降低了整個(gè)系統(tǒng)的通用性和可擴(kuò)展性[5].雖然非標(biāo)準(zhǔn)化的硬件和系統(tǒng)使得結(jié)構(gòu)簡單,但是這也導(dǎo)致了偏向?qū)嵱没男⌒退聶C(jī)器人的軟件開發(fā)周期較長、生產(chǎn)成本普遍較高,從而出現(xiàn)了目前水下機(jī)器人的使用和推廣程度都還很低的情況[6].因此,如何降低水下機(jī)器人的制作成本、縮短系統(tǒng)的開發(fā)周期、提高水下機(jī)器人的通用性和擴(kuò)展性依舊是亟待解決的問題.
MOOS是一種適用于自主式水下機(jī)器人平臺的分布式控制體系結(jié)構(gòu).它是在2001年由麻省理工學(xué)院的Pual Newman設(shè)計(jì)提出的開源軟件框架系統(tǒng),具有模塊化設(shè)計(jì)、分布式、星型拓?fù)浣Y(jié)構(gòu)等優(yōu)點(diǎn),因此被廣泛應(yīng)用于各類水下機(jī)器人的監(jiān)控系統(tǒng)設(shè)計(jì)上[7].但是MOOS系統(tǒng)對于代碼語言的支持性較低,安全性較差并且系統(tǒng)支持來源較少,開發(fā)周期相對更長.我們需要尋找更新功能更全面的系統(tǒng)來滿足降低成本、縮短周期的問題.
ROS(Robot Operating System)作為軟件開發(fā)平臺,是一個(gè)專業(yè)服務(wù)于機(jī)器人的操作系統(tǒng)[8].由于其開源的特點(diǎn),使用者可以在ROS的交流社區(qū)內(nèi)共享豐富的資源,獲取最前沿的機(jī)器人控制技術(shù),同時(shí)ROS還能提供大量可應(yīng)用于不同種類機(jī)器人的功能包,通過修改可復(fù)用的功能包來開發(fā)新功能,可以縮短開發(fā)時(shí)間、避免重復(fù)工作[9].目前,ROS已被廣泛應(yīng)用到許多機(jī)器人技術(shù)的研究開發(fā)中,如移動機(jī)器人地圖構(gòu)建和定位[10]、服務(wù)機(jī)器人自然語言理解識別[11]、無人機(jī)導(dǎo)航[12-13]等.
為此,基于ROS研制了一款可以遙控操作的水下機(jī)器人監(jiān)控系統(tǒng).該監(jiān)控系統(tǒng)能夠?qū)崟r(shí)控制水下機(jī)器人各個(gè)方向的運(yùn)動,可以實(shí)時(shí)采集和顯示水下機(jī)器人所攜帶的加速度計(jì)、陀螺儀、深度計(jì)等傳感器的數(shù)據(jù),還可以利用水下攝像頭反饋當(dāng)前工作的水下環(huán)境等.最后,通過實(shí)驗(yàn)證明,這種基于ROS的遙控水下機(jī)器人監(jiān)控系統(tǒng)可以解決設(shè)備通信不協(xié)調(diào)和代碼復(fù)用等通用性較低的問題.
1 監(jiān)控系統(tǒng)硬件結(jié)構(gòu)
遙控水下機(jī)器人監(jiān)控系統(tǒng)采用的硬件結(jié)構(gòu)如圖1所示,包括水面上的操作員控制器(OCU)和水下的水下機(jī)器人本體.水面部分的操作員控制器主要由操作員控制臺和供電裝置組成,操作員控制臺負(fù)責(zé)控制水下機(jī)器人的運(yùn)動以及接收水下機(jī)器人的傳感器數(shù)據(jù),供電裝置負(fù)責(zé)給操作員控制臺和水下機(jī)器人主體供電.水下機(jī)器人控制器包括主控制器、推進(jìn)器模塊、傳感接口模塊、圖像采集與傳輸模塊.利用微型工控機(jī)作為遙控水下機(jī)器人的主控制器,通過四芯網(wǎng)線利用TCP/IP協(xié)議接收岸上操作員控制器下達(dá)的控制指令,并對艙內(nèi)各個(gè)設(shè)備進(jìn)行任務(wù)分配.電源監(jiān)測管理模塊負(fù)責(zé)將電池組輸出的電源分級處理后提供給各個(gè)部件,同時(shí)電源監(jiān)測數(shù)據(jù)使用232串口方式提供給主控制器.推進(jìn)器驅(qū)動模塊由6個(gè)推進(jìn)器驅(qū)動模塊組成,它們分別對應(yīng)6個(gè)推進(jìn)器電機(jī).推進(jìn)器模塊通過485串口方式從主控制器接收驅(qū)動命令,驅(qū)動電機(jī)正反轉(zhuǎn),控制電機(jī)的轉(zhuǎn)速,控制水下機(jī)器人的上浮、下潛、前進(jìn)、后退、轉(zhuǎn)向等運(yùn)動.傳感器接口模塊集成了包括陀螺儀、加速度計(jì)、深度計(jì)、溫濕度傳感器等多種傳感器,該模塊負(fù)責(zé)采集多種傳感器數(shù)據(jù),預(yù)處理采集的數(shù)據(jù)并發(fā)送給主控制器.傳感器接口模塊與主控制器之間采用232串口方式進(jìn)行通信.圖像采集與傳輸模塊主要由圖傳設(shè)備和攝像頭組成,攝像頭拍攝到的畫面通過VGA接口傳輸給圖傳設(shè)備,再由圖傳設(shè)備顯示在操作員控制器的屏幕上.
2 監(jiān)控系統(tǒng)軟件結(jié)構(gòu)
以水下機(jī)器人監(jiān)控系統(tǒng)硬件體系結(jié)構(gòu)為基礎(chǔ),提出了圖2所示的基于ROS的遙控水下機(jī)器人監(jiān)控系統(tǒng)軟件框架,它從下而上分為感知執(zhí)行層、導(dǎo)航控制層和監(jiān)視操作層3個(gè)層次.
1)感知執(zhí)行層能夠感知水下機(jī)器人所處環(huán)境,測算水下機(jī)器人在水中運(yùn)動時(shí)的姿態(tài)并且能夠執(zhí)行操作員發(fā)出的控制命令.它主要由信號采集處理模塊和電機(jī)驅(qū)動控制模塊構(gòu)成.信號采集處理模塊主要是采集各種傳感器的信息,并進(jìn)行一定程度的預(yù)處理;電機(jī)驅(qū)動控制模塊根據(jù)上層規(guī)劃任務(wù)生成的指令來對每個(gè)推進(jìn)器進(jìn)行轉(zhuǎn)速和轉(zhuǎn)向的控制,最終實(shí)現(xiàn)機(jī)器人的運(yùn)動控制.
2)導(dǎo)航控制層是水下機(jī)器人能夠具備自主能力的關(guān)鍵,由運(yùn)行在主控制器上的ROS以及若干節(jié)點(diǎn)構(gòu)成.其中運(yùn)動控制節(jié)點(diǎn)是根據(jù)操作員命令、姿態(tài)控制節(jié)點(diǎn)或者自主導(dǎo)航節(jié)點(diǎn)的要求,控制水下機(jī)器人渦輪推進(jìn)器工作的軟件模塊.人機(jī)交互節(jié)點(diǎn)是連接操作員控制器和主控制器的橋梁,負(fù)責(zé)兩端的數(shù)據(jù)傳輸.姿態(tài)控制節(jié)點(diǎn)具有兩個(gè)作用,一是接收來自環(huán)境感知節(jié)點(diǎn)收集并處理好的數(shù)據(jù),并根據(jù)這些數(shù)據(jù)建立數(shù)學(xué)模型,確定機(jī)器人的航行姿態(tài);二是利用解得的姿態(tài),規(guī)劃出對應(yīng)的控制方案,并讓機(jī)器人在無人狀態(tài)下也能保持航姿的基本平穩(wěn).環(huán)境感知節(jié)點(diǎn)負(fù)責(zé)接收并處理加速度計(jì)、陀螺儀、溫濕度傳感器、深度計(jì)等傳感器的數(shù)據(jù).抓取控制節(jié)點(diǎn)負(fù)責(zé)控制機(jī)器人的機(jī)械臂活動.照明控制節(jié)點(diǎn)負(fù)責(zé)控制機(jī)器人的開關(guān).自主導(dǎo)航節(jié)點(diǎn)負(fù)責(zé)根據(jù)操作員的需要,按照一定的規(guī)劃自動控制水下機(jī)器人的導(dǎo)航行進(jìn).當(dāng)前的環(huán)境觸發(fā)不同行為,多種行為經(jīng)過行為融合仲裁模塊決策后,依靠設(shè)定的優(yōu)先級選擇出需要的反應(yīng)動作.這種反應(yīng)動作是在當(dāng)前層中執(zhí)行,不需要向上層傳輸和等待任務(wù)規(guī)劃的過程,因此可以加快系統(tǒng)的響應(yīng)速度.導(dǎo)航控制層的核心是ROS,它的實(shí)質(zhì)是一個(gè)通信中間件,能夠提供訂閱發(fā)布的通信機(jī)制[14].其通信機(jī)制如下:Ros Master是ROS的調(diào)度中樞,可以看作一個(gè)服務(wù)器,其余的節(jié)點(diǎn)是發(fā)布者(tallker)或訂閱者(listener),發(fā)布者和訂閱者之間通過主題(topic)聯(lián)系,當(dāng)發(fā)布者就某個(gè)主題發(fā)布了消息(message)后,訂閱該主題的訂閱者便能收到這條消息,接著再根據(jù)自己定義的回調(diào)函數(shù)對消息進(jìn)行下一步的處理,以完成相應(yīng)的任務(wù)要求.
3)監(jiān)視操作層處于系統(tǒng)的頂層,負(fù)責(zé)確定任務(wù)的目標(biāo),把握機(jī)器人的工作方向,還負(fù)責(zé)監(jiān)測整個(gè)系統(tǒng)的運(yùn)行狀態(tài),為操作人員的實(shí)時(shí)決策提供支持.監(jiān)視操作層的主體是操作員控制器的遠(yuǎn)程操作界面,負(fù)責(zé)讓操作人員實(shí)時(shí)監(jiān)測和控制水下機(jī)器人.
2.1 運(yùn)動控制節(jié)點(diǎn)
運(yùn)動控制節(jié)點(diǎn)一方面訂閱人機(jī)交互節(jié)點(diǎn)、自主導(dǎo)航節(jié)點(diǎn)和姿態(tài)控制節(jié)點(diǎn)等發(fā)布的機(jī)器人運(yùn)動命令(topic),另一方面將命令中攜帶的消息轉(zhuǎn)化成控制推進(jìn)器驅(qū)動器所需的底層指令,通過啟動多個(gè)推進(jìn)器的不同組合來實(shí)現(xiàn)水下機(jī)器人在指定速度下多個(gè)自由度的運(yùn)動.圖3是運(yùn)動控制節(jié)點(diǎn)在ROS中的節(jié)點(diǎn)關(guān)系.
圖3中的“cmd_vel”和“cmd_att”是人機(jī)交互節(jié)點(diǎn)和姿態(tài)控制節(jié)點(diǎn)分別向運(yùn)動控制節(jié)點(diǎn)發(fā)布的主題,“Twist”是主題所傳遞的消息類型,它包含了機(jī)器人運(yùn)動的線速度和角速度的值,兩個(gè)不同的主題都向運(yùn)動控制節(jié)點(diǎn)發(fā)送同一個(gè)類型的消息,但彼此獨(dú)立互不影響,可以在不同的狀態(tài)下實(shí)現(xiàn)對機(jī)器人的運(yùn)動或姿態(tài)的控制操作.
以訂閱“cmd_vel”主題為例,圖4是在運(yùn)動控制節(jié)點(diǎn)中定義的回調(diào)函數(shù)流程.由于消息中包含的線速度和角速度數(shù)據(jù)都無法被直接使用,需要根據(jù)一定的數(shù)學(xué)關(guān)系轉(zhuǎn)換成電機(jī)的轉(zhuǎn)速,因此在知道電機(jī)轉(zhuǎn)速之后還要根據(jù)驅(qū)動器的指令協(xié)議進(jìn)行數(shù)據(jù)匹配,獲得與電機(jī)轉(zhuǎn)速相對應(yīng)的驅(qū)動器指令數(shù)據(jù).水下機(jī)器人推進(jìn)器使用的驅(qū)動器采用了Modbus-RTU協(xié)議,最后通過RS485串口由運(yùn)動控制節(jié)點(diǎn)將控制命令發(fā)送給推進(jìn)器驅(qū)動器.
2.2 人機(jī)交互節(jié)點(diǎn)
操作員控制器運(yùn)行在傳統(tǒng)Windows環(huán)境下,水下機(jī)器人的主控制器運(yùn)行在Linux環(huán)境下.采用基于TCP/IP協(xié)議的Socket方式進(jìn)行通信,機(jī)器人本體搭載的主控制器作為服務(wù)器端,操作員控制器作為客戶端.同時(shí)本文還制定了上下位機(jī)之間的數(shù)據(jù)通信協(xié)議,表1和表2分別是下行指令和上行數(shù)據(jù)的幀格式.
2.3 姿態(tài)控制節(jié)點(diǎn)
過程:首先利用環(huán)境感知節(jié)點(diǎn)從傳感器接口模塊發(fā)送的數(shù)據(jù)包接收后通過“rec_msg”主題發(fā)布給姿態(tài)控制節(jié)點(diǎn),姿態(tài)控制節(jié)點(diǎn)根據(jù)數(shù)據(jù)包所加的標(biāo)識符來截取所需部分的數(shù)據(jù),并將這些有用的數(shù)據(jù)解析分類,接著進(jìn)行濾波處理去除干擾雜項(xiàng);然后根據(jù)選定的參考坐標(biāo)系進(jìn)行數(shù)學(xué)建模,得到數(shù)學(xué)模型后進(jìn)行姿態(tài)分析判斷,判斷傾斜方向及角度等;最后根據(jù)傾斜情況來給出對應(yīng)的反應(yīng)行為.姿態(tài)分析得出航姿的同時(shí)也要通過發(fā)布“imu_msg”主題將消息傳輸給人機(jī)交互節(jié)點(diǎn),實(shí)時(shí)地反饋給操作員監(jiān)控端,以便隨時(shí)監(jiān)控運(yùn)行狀態(tài)并及時(shí)做出規(guī)劃.當(dāng)機(jī)器人在無人操作狀態(tài)下會進(jìn)入基于行為的工作模式,無需上層的任務(wù)規(guī)劃,根據(jù)特定的狀態(tài)給予特定的反應(yīng)行為,直接通過“cmd_att”主題對運(yùn)動控制節(jié)點(diǎn)發(fā)送調(diào)整姿態(tài)的信息,以達(dá)到快速自主平衡的要求.
3 實(shí)驗(yàn)
設(shè)計(jì)制作的遙控水下機(jī)器人和操作員控制器實(shí)物分別如圖6和圖7所示.為了驗(yàn)證ROS系統(tǒng)能夠有效地實(shí)現(xiàn)運(yùn)動控制和狀態(tài)監(jiān)測的功能,在一個(gè)面積5 m×6 m,深約1.5 m實(shí)驗(yàn)水池內(nèi)進(jìn)行運(yùn)動控制實(shí)驗(yàn).實(shí)驗(yàn)時(shí),使用操作員控制器上的按鈕和搖桿對機(jī)器人進(jìn)行遙控,使機(jī)器人完成前進(jìn)后退、上浮下潛、轉(zhuǎn)向等動作,同時(shí)測試軟件的使用效果,觀察運(yùn)動控制是否有效、水下圖像是否清晰、運(yùn)動姿態(tài)是否準(zhǔn)確等.
經(jīng)過測試,操作員控制器操作簡單、顯示直觀,遙控機(jī)器人可以按照指定的控制命令進(jìn)行運(yùn)動,且操作員控制器端可以實(shí)時(shí)反饋當(dāng)前機(jī)器人所處的水下環(huán)境、自身的傾斜姿態(tài)、艙內(nèi)的環(huán)境參數(shù)等.圖8是部分實(shí)驗(yàn)場景照片和實(shí)驗(yàn)時(shí)操作員控制器的監(jiān)控畫面.
4 結(jié)論
針對目前水下機(jī)器人的制作成本較高、系統(tǒng)的開發(fā)周期較長、系統(tǒng)通用性和硬件擴(kuò)展性較差的問題,介紹了一種基于ROS的遙控水下機(jī)器人監(jiān)控系統(tǒng)架構(gòu).實(shí)驗(yàn)證明利用該架構(gòu)實(shí)現(xiàn)的遙控水下機(jī)器人監(jiān)控系統(tǒng)能夠讓操作人員通過人機(jī)界面與水下機(jī)器人進(jìn)行交互,實(shí)現(xiàn)控制機(jī)器人和監(jiān)測水下環(huán)境的目標(biāo).通過ROS的使用提高了水下機(jī)器人監(jiān)控系統(tǒng)的靈活性和適應(yīng)性,統(tǒng)一了機(jī)器人內(nèi)部各個(gè)模塊的集成和使用,大大減少了系統(tǒng)開發(fā)過程中的重復(fù)性工作.同時(shí),采用這種架構(gòu)提高了功能拓展方面的便利性,為將來更深入的研究,如水下定位導(dǎo)航、水下目標(biāo)識別跟蹤、水下地圖建立等功能的開發(fā)提供了基礎(chǔ)條件.
參考文獻(xiàn)
References
[1] 黃明泉.水下機(jī)器人ROV在海底管線檢測中的應(yīng)用[J].海洋地質(zhì)前沿,2012(2):52-57
HUANG Mingquan.The application of remotely operated cehicle (ROV) in seabottom pipeline inspection[J].Marine Geology Frontiers,2012(2):52-57
[2] 欒坤祥,馬秀冬.智能水下航行器對海洋重金屬污染狀況的檢測研究[J].艦船科學(xué)技術(shù),2017(16):187-189
LUAN Kunxiang,MA Xiudong.The intelligent underwater vehicle detects the status of heavy metal pollution in sea[J].Ship Science and Technology,2017(16):187-189
[3] 黃曉辰,張小俊,孫凌宇,等.核電站多功能水下打撈機(jī)器人系統(tǒng)研究[J].儀器儀表學(xué)報(bào),2017,38(3):552-559
HUANG Xiaocheng,ZHANG Xiaojun,SUN Lingyu,et al.Research on the reactor multi-function robot for object salvaging underwater[J].Chinese Journal of Scientific Instrument,2017,38(3):552-559
[4] MiSkovic'N,Egi M,Nad D,et al.Human-robot interaction underwater:communication and safety requirements[C]∥2016 IEEE Third Underwater Communications and Networking Conference.Lerici,Italy:IEEE,2016
[5] Sun J,Zhang F,Wang G Q,et al.Discussion on the development trend of artificial intelligence robots in the internet of things[J].Technology and Economic Guide,2017,31:6-7
[6] Nowak B M,Ayhan Y,Derric A,et al.Design and analysis of hull configurations for a low-cost,autonomous underwater robot as an enabling technology for system of system applications[C]∥2008 IEEE International Conference on System of Systems Engineering.Singapore,Singapore:IEEE,2008:1-6
[7] 劉倫倫.MOOS-IvP理論概述及應(yīng)用簡析[J].科技創(chuàng)新導(dǎo)報(bào),2016,13(13):83-87
LIU Lunlun.Brief analysis of MOOS-IvP theory and application[J].Science and Technology Innovation Herald,2016,13(13):83-87
[8] Quigley M,Conley K,Gerkey B P,et al.ROS:an open-source robot operating system[C]∥Icra Workshop on Open Source Software,2009
[9] Koubaa A.Robot operating system (ROS):the complete reference:volume 1[M].New York:Springer Publishing Company,Incorporated,2016
[10] Afanasyev I,Sagitov A,Magid E.ROS-based SLAM for a gazebo-simulated mobile robot in image-based 3D model of indoor environment[C]∥International Conference on Advanced Concepts for Intelligent Vision Systems,2015,9386:273-283
[11] Zaman S,Slany W.Smartphone-based online and offline speech recognition system for ROS-based robots[J].Information Technology & Control,2014,43(4):364-380
[12] Moon S T,Eom W,Gong H.Development of large-scale 3D map generation system for indoor autonomous navigation flight-work in progress[J].Procedia Engineering,2015,99:1132-1136
[13] Lakshmi K D,Vaithiyanathan V.Study of feature based Image registration algorithms for navigation of unmanned aerial vehicles[J].Indian Journal of Science & Technology,2015,8(22):387-394
[14] 陳金寶.ROS開源機(jī)器人控制基礎(chǔ)[M].上海:上海交通大學(xué)出版社,2016
CHEN Jinbao.ROS open source robot control foundation[M].Shanghai:Shanghai Jiao Tong University Press,2016
Research and development of a monitor system for underwater
remote-operated vehicles based on ROS
TANG Hongru1 XI Jiafeng1 SHEN Tianhe1 BAO Jiatong1 LIU Qiming1
1 School of Hydraulic,Energy and Power Engineering,Yangzhou University,Yangzhou 225127
AbstractTo reduce the development complexity of underwater remote-operated vehicles and increase their adaptability and applications,a monitor system for underwater remote-operated vehicles based on ROS is developed.First,the hardware structure of the monitor system is introduced briefly.The software framework of the monitor system based on ROS is proposed.The compositions and functions of the perceptual execution,navigation control,and monitoring operation layers are introduced.The design of three functional modules,namely the motion control,human-robot interaction,and attitude control nodes,are described.Experiments show that the monitor system of the underwater remote-operated vehicle based on ROS can coordinate the work of each functional module.It is characterized by a short development cycle and good expansibility.
Key wordsmonitor system;underwater remote-operated vehicle;system framework;robot operating system;sense and control