尚文,顏欽
(蘇州科技學(xué)院機(jī)械工程學(xué)院,江蘇蘇州215011)
基于Qt的多移動(dòng)機(jī)器人協(xié)調(diào)仿真系統(tǒng)研究
尚文,顏欽
(蘇州科技學(xué)院機(jī)械工程學(xué)院,江蘇蘇州215011)
多機(jī)器人系統(tǒng)一直是機(jī)器人領(lǐng)域研究的熱點(diǎn),針對(duì)多機(jī)器人的協(xié)調(diào)問題開發(fā)了一個(gè)基于Qt的仿真系統(tǒng)。該系統(tǒng)既能仿真機(jī)器人的各種典型運(yùn)動(dòng)行為,比如定點(diǎn)運(yùn)動(dòng)、漫游等,同時(shí)嵌入了多機(jī)器人的協(xié)調(diào)算法,從而可以更直觀地驗(yàn)證和顯示多機(jī)器人系統(tǒng)的協(xié)調(diào)運(yùn)動(dòng)行為。
Qt;多機(jī)器人系統(tǒng);協(xié)調(diào);仿真
多機(jī)器人系統(tǒng),與單個(gè)機(jī)器人相比具有許多明顯的優(yōu)點(diǎn),例如,能通過彼此的合作完成某些單個(gè)機(jī)器人不能完成的任務(wù);由于其內(nèi)在的并行性,在完成任務(wù)時(shí)可能具有更高的效率;由于在功能上有互補(bǔ),因而可以提高系統(tǒng)的魯棒性和容錯(cuò)能力。正因?yàn)槎鄼C(jī)器人系統(tǒng)具有諸多優(yōu)點(diǎn),使得其在軍事、工農(nóng)業(yè)生產(chǎn)、空間探索、醫(yī)學(xué)、交通控制、服務(wù)行業(yè)等領(lǐng)域具有良好的應(yīng)用前景并已經(jīng)得到了一定的實(shí)際應(yīng)用。多機(jī)器人系統(tǒng)協(xié)調(diào)是多機(jī)器人系統(tǒng)研究中的主要內(nèi)容,其中尋求有效的協(xié)調(diào)機(jī)制是研究的重點(diǎn),而要驗(yàn)證協(xié)調(diào)機(jī)制的有效性則需要將協(xié)調(diào)控制算法作用于實(shí)際的機(jī)器人上,但對(duì)于有幾十甚至上百個(gè)機(jī)器人組成的多機(jī)器人系統(tǒng)而言,費(fèi)用將是不得不考慮的一大問題,因此,許多研究機(jī)構(gòu)通過搭建仿真系統(tǒng)來進(jìn)行驗(yàn)證。目前國內(nèi)關(guān)于機(jī)器人系統(tǒng)的仿真有借助Microsoft Robotics Studio的運(yùn)動(dòng)仿真[1-3],基于OpenGL的機(jī)器人漫游系統(tǒng)仿真[4],以及自重構(gòu)機(jī)器人的仿真[5],文獻(xiàn)[3,6]討論了雙工業(yè)機(jī)器人協(xié)調(diào)焊接的仿真,文獻(xiàn)[7]討論了多機(jī)器人任務(wù)級(jí)的協(xié)調(diào)仿真。筆者設(shè)計(jì)實(shí)現(xiàn)了一個(gè)簡單有效的用于多機(jī)器人系統(tǒng)協(xié)調(diào)的仿真平臺(tái),與文獻(xiàn)[7]中的方法類似,但借助Qt這一強(qiáng)大的跨平臺(tái)圖形開發(fā)工具[8],實(shí)現(xiàn)了將多機(jī)器人協(xié)調(diào)控制機(jī)制進(jìn)行直觀形象的驗(yàn)證仿真。
文中內(nèi)容安排如下,首先介紹仿真系統(tǒng)中關(guān)于機(jī)器人的各個(gè)功能模塊,包括運(yùn)動(dòng)模塊、聲納傳感模塊和環(huán)境建模形式,然后介紹以前提出的一種多機(jī)器人協(xié)調(diào)算法,在驗(yàn)證仿真部分,介紹典型的機(jī)器人運(yùn)動(dòng)形式的仿真以及多機(jī)器人系統(tǒng)的協(xié)調(diào)運(yùn)動(dòng)仿真。
1.1運(yùn)動(dòng)模型
在仿真環(huán)境中,機(jī)器人采用多邊形表示機(jī)器人的本體,右邊三角形的頂點(diǎn)所示方向表示機(jī)器人的前進(jìn)方向,中間方框里的圓點(diǎn)表示機(jī)器人的中心點(diǎn)位置,如圖1所示。
圖1 機(jī)器人本體模型
機(jī)器人的運(yùn)動(dòng)模型以具有兩個(gè)差分驅(qū)動(dòng)的驅(qū)動(dòng)輪和一個(gè)負(fù)責(zé)平衡的萬向輪組成的運(yùn)動(dòng)機(jī)構(gòu)來建模,以機(jī)器人本體的中心點(diǎn)為中心將其虛擬化為一個(gè)具有方向的運(yùn)動(dòng)質(zhì)點(diǎn)。在二維環(huán)境中機(jī)器人的運(yùn)動(dòng)參數(shù)有在時(shí)刻t時(shí)X和Y軸方向的位置坐標(biāo)x(t)和y(t),X和Y軸方向的運(yùn)動(dòng)速度vx(t)和vy(t),角度θ(t)和旋轉(zhuǎn)角速度w(t),如圖2所示。在運(yùn)動(dòng)過程中運(yùn)動(dòng)參數(shù)的更新方程為
1.2環(huán)境模型
機(jī)器人工作的環(huán)境利用直線段來描述環(huán)境空間的分布布局,圖3為設(shè)計(jì)的環(huán)境模型格式,第一行為模型中的直線段的數(shù)目,以下每一行表示一條直線段,用直線段的起始點(diǎn)坐標(biāo)和終點(diǎn)坐標(biāo)表示。環(huán)境模型以文件形式存于本地,在仿真平臺(tái)上可以加載進(jìn)行顯示。
1.3聲納傳感模型
聲納傳感器和蝙蝠辨別障礙物的原理類似,能夠利用超聲波的回聲來測得周圍障礙物的距離信息。在建模時(shí),機(jī)器人前方裝配有10個(gè)聲納傳感器,其中左右兩邊各有2個(gè),前方以20°的角度間隔有6個(gè)傳感器,實(shí)現(xiàn)全方位探測前方的障礙距離信息。每個(gè)聲納探測到的距離信息以灰色的直線段來表示,圖4(a)所示為周圍沒有障礙物的聲納距離信息,此時(shí)灰色線段表示了聲納所能檢測的最大距離,當(dāng)機(jī)器人距離障礙物較近時(shí),灰色直線段的長度顯示了實(shí)際的距離信息,如圖4(b)所示。
圖2 機(jī)器人運(yùn)動(dòng)參數(shù)示意圖
圖3 環(huán)境模型示例
圖4 聲納感知模型
文獻(xiàn)[9]提出了一種資源約束的多機(jī)器人協(xié)調(diào)調(diào)度方法,對(duì)于裝配有不同資源(比如視覺系統(tǒng)、抓手或者激光等傳感器)的多機(jī)器人系統(tǒng),通過集中的最優(yōu)任務(wù)分配優(yōu)化方法,規(guī)劃出每個(gè)機(jī)器人要完成的任務(wù),實(shí)現(xiàn)多機(jī)器人系統(tǒng)的協(xié)調(diào)運(yùn)行。該多機(jī)器人系統(tǒng)采用集劃分的建模方法,利用不同資源的多機(jī)器人系統(tǒng)之間的資源同步來計(jì)算最優(yōu)的任務(wù)分配方案。計(jì)算過程包括兩個(gè)階段:第一階段計(jì)算具有同步約束的任務(wù)分配方案;第二階段計(jì)算具體的時(shí)間調(diào)度。具體建模如下:
第一階段建模
最大化
其中,目標(biāo)函數(shù)表示最大化完成任務(wù)的報(bào)酬減去付出的總的代價(jià),在目標(biāo)函數(shù)中,第一項(xiàng)表示完成任務(wù)的報(bào)酬,第二項(xiàng)表示每個(gè)機(jī)器人完成任務(wù)付出的代價(jià)之和,約束(3)表明每個(gè)機(jī)器人只能分配最多一個(gè)任務(wù),約束(4)表示每個(gè)任務(wù)最多只能被一個(gè)機(jī)器人來完成,約束(5)表示完成任務(wù)計(jì)劃所需要的資源必須小于或等于每個(gè)機(jī)器人所擁有的資源,約束(6)表示完成任務(wù)計(jì)劃所需要的資源的功能值必須小于或等于每個(gè)機(jī)器人所擁有的資源功能值。
第二階段計(jì)算當(dāng)存在資源同步的時(shí)候,如何調(diào)度每個(gè)機(jī)器人的執(zhí)行時(shí)間。某個(gè)任務(wù)的執(zhí)行需要不同的資源,而這些資源被不同的機(jī)器人所擁有,因此,其中一個(gè)機(jī)器人在到達(dá)任務(wù)執(zhí)行地點(diǎn)后,需要等待擁有其他資源的機(jī)器人都到達(dá)任務(wù)執(zhí)行地點(diǎn)才可一起執(zhí)行該任務(wù)。具體建模為:
最小化
其中目標(biāo)函數(shù)最小化所有任務(wù)的執(zhí)行時(shí)間,約束(8)表示任務(wù)的執(zhí)行時(shí)間、機(jī)器人本應(yīng)到達(dá)時(shí)間和延遲時(shí)間之間的關(guān)系,約束(9)表示機(jī)器人達(dá)到延遲時(shí)間和執(zhí)行任務(wù)延遲時(shí)間之間的關(guān)系,約束(10)表示任務(wù)和任務(wù)要求時(shí)間上同步,具體如圖5所示。
以上協(xié)調(diào)調(diào)度問題利用CPLEX的Branch-and-bound方法和LP方法可以求解,在仿真系統(tǒng)中,將該模塊作為仿真系統(tǒng)的協(xié)調(diào)控制模塊,當(dāng)輸入模型的參數(shù),計(jì)算出相關(guān)的任務(wù)調(diào)度方案之后,多機(jī)器人系統(tǒng)就開始自動(dòng)執(zhí)行所分配的任務(wù)。
開發(fā)的仿真系統(tǒng)如圖6所示,主要功能有加載環(huán)境模型、典型運(yùn)動(dòng),包括直線前進(jìn)和后退,逆時(shí)和順時(shí)旋轉(zhuǎn)、定點(diǎn)運(yùn)動(dòng)、漫游和多機(jī)器人協(xié)調(diào)運(yùn)動(dòng)。
圖5 任務(wù)調(diào)度關(guān)系
圖6 仿真系統(tǒng)操作界面
3.1加載環(huán)境模型
在文件菜單中點(diǎn)擊加載地圖,選擇要加載的地圖模型文件,在視圖中即顯示出環(huán)境模型地圖。圖7(a)為加載的辦公室環(huán)境模型,圖7(b)為加載的迷宮環(huán)境模型。環(huán)境模型視圖可以進(jìn)行平移、放大和縮小以觀察局部細(xì)節(jié)或擴(kuò)大視野范圍。
3.2典型運(yùn)動(dòng)實(shí)例
以在辦公室環(huán)境中的兩個(gè)機(jī)器人作為實(shí)例,驗(yàn)證機(jī)器人的典型運(yùn)動(dòng),包括直線運(yùn)動(dòng)、旋轉(zhuǎn)運(yùn)動(dòng)、定點(diǎn)運(yùn)動(dòng)和漫游。圖8為兩個(gè)機(jī)器人在連續(xù)采樣時(shí)刻的直線運(yùn)動(dòng)序列,機(jī)器人身后直線段是機(jī)器人的運(yùn)動(dòng)軌跡。圖9為兩個(gè)機(jī)器人在連續(xù)采樣時(shí)刻的逆時(shí)針旋轉(zhuǎn)運(yùn)動(dòng)序列。圖10為機(jī)器人的定點(diǎn)運(yùn)動(dòng)序列。圖11是機(jī)器人在環(huán)境中漫游的運(yùn)動(dòng)序列。
圖7 加載環(huán)境模型
圖8 直線運(yùn)動(dòng)實(shí)例
圖9 旋轉(zhuǎn)運(yùn)動(dòng)實(shí)例
圖10 定點(diǎn)運(yùn)動(dòng)實(shí)例
圖11 漫游實(shí)例
3.3多機(jī)器人協(xié)調(diào)運(yùn)動(dòng)實(shí)例
以文獻(xiàn)[9]中的實(shí)例為例進(jìn)行驗(yàn)證,首先設(shè)置協(xié)調(diào)模型參數(shù),包括機(jī)器人和任務(wù)的數(shù)目和位置,第一和第二階段的模型參數(shù),在協(xié)調(diào)控制模塊計(jì)算出結(jié)果后開始執(zhí)行協(xié)調(diào)運(yùn)動(dòng),如圖12所示。圖13是協(xié)調(diào)運(yùn)動(dòng)的運(yùn)動(dòng)序列。當(dāng)機(jī)器人行進(jìn)過程中存在障礙物時(shí),機(jī)器人會(huì)繞過障礙物,再運(yùn)動(dòng)到執(zhí)行任務(wù)的位置處。如圖14所示,機(jī)器人2運(yùn)動(dòng)過程中遇到障礙物,機(jī)器人2開始避障,當(dāng)確定遠(yuǎn)離障礙物后,繼續(xù)運(yùn)動(dòng)到任務(wù)3處,再進(jìn)行后續(xù)的任務(wù)。
圖13 協(xié)調(diào)運(yùn)動(dòng)序列
圖14 有障礙物時(shí)的協(xié)調(diào)運(yùn)動(dòng)實(shí)例
筆者設(shè)計(jì)開發(fā)了基于Qt的多機(jī)器人協(xié)調(diào)系統(tǒng)的仿真平臺(tái),該平臺(tái)能夠驗(yàn)證各種機(jī)器人控制算法,并集成了多機(jī)器人協(xié)調(diào)控制,從而能夠更方便直觀地測試各種多機(jī)器人系統(tǒng)的控制。
[1]黃立,葉益斌,張輝.基于Microsoft Robotics Studio的機(jī)器人運(yùn)動(dòng)仿真研究[J].機(jī)電工程,2010,27(8):122-126.
[2]麥曉春,張新征,楊厚強(qiáng),等.基于微軟機(jī)器人控制仿真平臺(tái)的路徑規(guī)劃仿真[J].計(jì)算機(jī)應(yīng)用,2013,33(S1):55-58,101.
[3]譚定,李亮玉,王天琪.基于RobotStudio的雙機(jī)器人協(xié)調(diào)仿真[J].焊接技術(shù),2011,40(6):45-48.
[4]樊雅萍,黃生學(xué),溫佩芝,等.基于OpenGL的機(jī)器人虛擬漫游系統(tǒng)開發(fā)[J].系統(tǒng)仿真學(xué)報(bào),2005,17(10):2426-2428,2441.
[5]田華英,吳秋軒,曹廣益.基于Java 3D的自重構(gòu)機(jī)器人仿真平臺(tái)的構(gòu)建[J].計(jì)算機(jī)仿真,2006,23(11):271-274.
[6]張鐵,歐陽帆.雙機(jī)器人協(xié)調(diào)焊接任務(wù)規(guī)劃及仿真[J].焊接學(xué)報(bào),2012,33(12):9-12.
[7]張浩水,曹志強(qiáng),周超,等.集成任務(wù)級(jí)與運(yùn)動(dòng)級(jí)協(xié)調(diào)的多機(jī)器人仿真系統(tǒng)[J].系統(tǒng)仿真學(xué)報(bào),2009,21(6):1579-1582.
[8]BLANCHETTE J,SUMMERFIELD M.C++GUI Qt4編程[M].2版.北京:電子工業(yè)出版社,2008.
[9]WEN Shang,JUN Zhong,QIN Yan.Resource constrained multirobot task allocation with an optimal solution[C]//Chengdu:IEEE.Interntational Conference on Mechatronics and Automation,2012:2389-2394.
Research on Qt-based multi-robot coordination simulation system
SHANG Wen,YAN Qin
(School of Mechanical Engineering,SUST,Suzhou 215011,China)
Multi-robot system is a hot topic in the robotic field.We have developed a new Qt-based simulation system for multi-robot coordination which can simulate all kinds of typical robotic motions,such as fixed-point motion,wandering,etc.Multi-robot coordination mechanism and algorithm have been embedded in the simulation system.Thus the coordination can be intuitively verified and displayed.
Qt;multi-robot system;coordination;simulation
TP24
A
1672-0687(2016)01-0065-05
責(zé)任編輯:艾淑艷
2015-11-09
國家青年科學(xué)基金資助項(xiàng)目(51305287);江蘇省自然科學(xué)基金資助項(xiàng)目(BK20130624;13KJB510034);??蒲谢鹳Y助項(xiàng)目(XKZ201312)
尚文(1978-),女,山東菏澤人,講師,博士,研究方向:多機(jī)器人系統(tǒng),自動(dòng)化。