姚冬冬,閔華松
(1.武漢科技大學(xué) 冶金自動(dòng)化與檢測(cè)技術(shù)教育部工程研究中心,湖北 武漢,430081;2.武漢科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢,430081)
在自動(dòng)化技術(shù)的廣泛發(fā)展過程中,機(jī)器人技術(shù)廣泛地應(yīng)用到了電子、機(jī)械、自動(dòng)控制與計(jì)算機(jī)算法、通訊等多種領(lǐng)域。其中,移動(dòng)機(jī)器人以其高機(jī)動(dòng)性和穩(wěn)定性,受到越來越多的學(xué)者和機(jī)構(gòu)的研究。工廠實(shí)踐中面對(duì)任務(wù)多樣化、復(fù)雜化,人們對(duì)移動(dòng)機(jī)器人的控制精度和智能化程度逐漸提出了更高的要求。這對(duì)移動(dòng)機(jī)器人的機(jī)械結(jié)構(gòu)和軟件結(jié)構(gòu)的設(shè)計(jì)提出新的挑戰(zhàn)。如何設(shè)計(jì)一個(gè)能夠滿足以上要求的機(jī)器人,以及與其相配合的軟件系統(tǒng)是當(dāng)前移動(dòng)機(jī)器人研究的一個(gè)重要方向之一。
在機(jī)器人機(jī)械結(jié)構(gòu)設(shè)計(jì)方面,全向移動(dòng)機(jī)器人以其高機(jī)動(dòng)性和穩(wěn)定性得到了廣泛的研究,其具有靈活性、穩(wěn)定性等特點(diǎn),能夠滿足機(jī)器人多樣化、靈活以及準(zhǔn)確的移動(dòng)。目前在移動(dòng)機(jī)構(gòu)輪可以分為履帶式、輪式和腿式等,而輪式由于其結(jié)構(gòu)簡(jiǎn)單、穩(wěn)定并且易控制的優(yōu)點(diǎn)被廣泛應(yīng)用,輪式機(jī)構(gòu)又根據(jù)它是否存在迂回半徑分為全向輪和非全向輪[1]。全向移動(dòng)機(jī)器人能有具有這樣的優(yōu)勢(shì)主要是因?yàn)樗鼈兪褂玫氖蔷哂袃蓚€(gè)方向移動(dòng)自由度的全向輪,其全向輪可以使機(jī)器人在移動(dòng)過程中重心平移相對(duì)穩(wěn)定[2]。具備全向運(yùn)動(dòng)能力的機(jī)器人,它們?cè)诙S平面上可以獨(dú)立控制機(jī)器人的重心平移和旋轉(zhuǎn)速度,這是傳統(tǒng)的輪式機(jī)器人也無法達(dá)到的。通過對(duì)多種機(jī)器人的運(yùn)動(dòng)效果比較,三輪全向機(jī)器人由于可以3個(gè)輪軸同時(shí)對(duì)車身所產(chǎn)生的合速度相互左右來決定移動(dòng)機(jī)器人的運(yùn)動(dòng)效果,并且運(yùn)動(dòng)過程相對(duì)穩(wěn)定,從而選擇其成為本次研究的對(duì)象。
軟件設(shè)計(jì)從結(jié)構(gòu)化到面向?qū)ο?,軟件設(shè)計(jì)也在向智能方向發(fā)展,從而產(chǎn)生了面向智能體 (Agent)的軟件設(shè)計(jì)思想。基于智能機(jī)器人具有開發(fā)成本低、硬件體積小、部件模塊化程度高、功耗低、可定制、易擴(kuò)展等優(yōu)點(diǎn)[3-4]。當(dāng)下的設(shè)計(jì)者普遍將智能體概念應(yīng)用于機(jī)器人軟件結(jié)構(gòu)的設(shè)計(jì)當(dāng)中。1997年研究者提出的 “軟件智能體”迅速應(yīng)用于人工系統(tǒng)和多智能體機(jī)器人的系統(tǒng)[5]當(dāng)中,在智能體運(yùn)用的過程中,多智能體系統(tǒng) (multi-agent system,MAS)作為一個(gè)具有自治性、主動(dòng)性和社會(huì)性的軟件集合[6],其應(yīng)用到移動(dòng)機(jī)器人中具有一定的優(yōu)勢(shì),但仍存在一些問題:①由硬件特性劃分智能體,智能體的功能依賴于具體硬件;②Multi-agent技術(shù)提高了系統(tǒng)的智能性,但對(duì)緊急事件反應(yīng)能力考慮較少。而移動(dòng)機(jī)器人是一個(gè)集環(huán)境感知、動(dòng)態(tài)決策與規(guī)劃、行為控制與執(zhí)行等多種功能于一體的綜合智能體系統(tǒng),多智能體系統(tǒng)的主要任務(wù)就是將這各種功能模塊有機(jī)地結(jié)合起來,來完成移動(dòng)機(jī)器人的任務(wù),這就需要設(shè)計(jì)適應(yīng)機(jī)器人的軟件模型結(jié)構(gòu)。一個(gè)移動(dòng)機(jī)器人系統(tǒng)可以看作是一個(gè) Multi-agent,多個(gè)移動(dòng)機(jī)器人系統(tǒng)是一個(gè)Multi-agent群體,其交互、協(xié)作、通信都比較方便,正是基于以上種種特點(diǎn),本文依據(jù)Multi-agent軟件結(jié)構(gòu)思想和智能體的特點(diǎn)設(shè)計(jì)了三輪全向移動(dòng)機(jī)器人的軟件結(jié)構(gòu)。
依據(jù)三輪全向機(jī)器人以及多智能體系統(tǒng)的以上特性,本文設(shè)計(jì)了機(jī)器人的運(yùn)動(dòng)學(xué)模型和軟件結(jié)構(gòu),研究并實(shí)現(xiàn)了三輪全向機(jī)器人的運(yùn)動(dòng)控制和軟件模型中各智能體的功能和相互之間的通訊協(xié)作。本文著眼于全向移動(dòng)機(jī)器人,首先設(shè)計(jì)了機(jī)器人的硬件平臺(tái)和機(jī)械結(jié)構(gòu),其次依據(jù)機(jī)器人硬件模型的特點(diǎn)得出機(jī)器人的運(yùn)動(dòng)學(xué)模型和運(yùn)動(dòng)學(xué)方程,再次依據(jù)機(jī)器人需求的特點(diǎn)設(shè)計(jì)了機(jī)器人的軟件結(jié)構(gòu)模型和控制機(jī)器人的藍(lán)牙控制協(xié)議,最后在Matlab中仿真控制機(jī)器人的運(yùn)動(dòng),然后控制三輪全向移動(dòng)機(jī)器人實(shí)際運(yùn)動(dòng),進(jìn)行對(duì)比分析并校正運(yùn)動(dòng)學(xué)方程。并且在JADE平臺(tái)上實(shí)現(xiàn)了MAS中各Agent功能以及相互間的協(xié)作。
考慮到靈活性、小型化、穩(wěn)定性、模塊化等特點(diǎn),基于嵌入式平臺(tái),設(shè)計(jì)了三輪全向移動(dòng)機(jī)器人的軟硬件架構(gòu),其主要有控制模塊 (stm32),內(nèi)部通信模塊 (串行通信協(xié)議),外部通信模塊 (藍(lán)牙、WiFi等),傳感模塊,運(yùn)動(dòng)控制 (ATMega8)模塊。
圖1 機(jī)器人電氣結(jié)構(gòu)
圖1中機(jī)器人控制系統(tǒng)中主控制芯片為STM32,主控芯片通過ADC進(jìn)行信號(hào)轉(zhuǎn)換,USART1、USART2、USART3分別連接串口、藍(lán)牙和無線射頻單元的連接,完成機(jī)器人與手機(jī)控制端的交互,陀螺儀、巡線傳感器、8路紅外避障傳感器、超橫波測(cè)距模塊等多種傳感器,完成與外界環(huán)境的感知與交互。機(jī)器人同時(shí)支持3G、WiFi、Bluetooth、ZigBee、RFID等通信方式,本系統(tǒng)在通信方面,STM32通過USART2與藍(lán)牙模塊進(jìn)行通信,再由藍(lán)牙模塊與手機(jī)端進(jìn)行通信。ATMega8控制器與各傳感器之間采用串行通信協(xié)議進(jìn)行通信。
該平臺(tái)具有多類感知功能 (紅外、藍(lán)牙、超聲波等)以及無線通信模塊,具有交互、學(xué)習(xí)等特點(diǎn)。這為研究機(jī)器人感知、學(xué)習(xí)、推理、導(dǎo)航、控制等奠定了基礎(chǔ)。
圖2為機(jī)器人實(shí)物圖。全向輪具有全方位移動(dòng)的優(yōu)勢(shì),不像傳統(tǒng)的移動(dòng)輪只能前后移動(dòng),它具有能夠在兩個(gè)方向上移動(dòng)的自由度,并且不存在回轉(zhuǎn)半徑的問題。全向輪是由若干小滾輪組成,使各滾輪的母線共同形成一個(gè)完整的圓周,從而使輪子可以全方位轉(zhuǎn)動(dòng)。本文采用的全向輪由16個(gè)小滾輪組成,輪子半徑為52.5mm。機(jī)器人通過STM32主控芯片收到串口通訊命令啟動(dòng)馬達(dá)驅(qū)動(dòng)板,驅(qū)動(dòng)板會(huì)帶動(dòng)馬達(dá)轉(zhuǎn)動(dòng)全向輪的輪軸,從而控制全向輪轉(zhuǎn)動(dòng)。本文所用機(jī)器人高128mm,長(zhǎng)340mm,寬390mm。
圖2 機(jī)器人實(shí)物
通過對(duì)上述機(jī)器人硬件結(jié)構(gòu)模塊的分析可知機(jī)器人是利用舵機(jī)控制機(jī)器人的全向輪進(jìn)行運(yùn)動(dòng)。機(jī)器人的3個(gè)全向輪通過3個(gè)輪軸同時(shí)對(duì)車身所產(chǎn)生的合速度相互左右來決定移動(dòng)機(jī)器人的運(yùn)動(dòng)效果。機(jī)器人的車頭方向與車旋轉(zhuǎn)的角速度是影響車身移動(dòng)的兩個(gè)相互獨(dú)立的因子。機(jī)器人能夠平衡自身重心、具有穩(wěn)定的運(yùn)動(dòng)速度。另外,機(jī)器人的紅外測(cè)距傳感器、紅外避障傳感器可以幫助機(jī)器人在運(yùn)動(dòng)過程中獲取相關(guān)的環(huán)境信息。
圖3為機(jī)器人移動(dòng)圖,其中 (x,y)是機(jī)器人運(yùn)動(dòng)模式的參考坐標(biāo)系,其中A,B,C是對(duì)3個(gè)輪子的編號(hào)。使用3個(gè)全向輪運(yùn)動(dòng)數(shù)學(xué)模式,本文定義一個(gè)絕對(duì)坐標(biāo)系統(tǒng)(x,y)來表示機(jī)器人在環(huán)境中的位置;θ表示機(jī)器人在絕對(duì)坐標(biāo)系的方向角,ω則表示機(jī)器人在絕對(duì)坐標(biāo)系的角速度,因此機(jī)器人的位置和方向在坐標(biāo)系中可以表示為 (x,y,θ),而 (vx,vy,ω)則表示機(jī)器人的運(yùn)動(dòng)速度。以區(qū)域坐標(biāo)系為標(biāo)準(zhǔn),逆時(shí)針方向?yàn)檎较?,以機(jī)器人的全向輪A為參考標(biāo)準(zhǔn),則全向輪B與A之間的角度為120°,全向輪C與A的角度為240°。
圖3 三輪全向機(jī)器人移動(dòng)
全向機(jī)器人的控制是利用3個(gè)全向輪的合速度來實(shí)現(xiàn)機(jī)器人的速度。在圖3中,機(jī)器人沿著方向移動(dòng),其平移速度可以分解到x,y方向?yàn)関,機(jī)器人的3個(gè)全向輪的速度為v。此時(shí)車子旋轉(zhuǎn)的大小方向?yàn)椤?,則3個(gè)輪子的速度分別為式 (1)-式(3)所示
每個(gè)輪子的中心速度可以分解成兩個(gè)部分,一部分控制機(jī)器人的速度,另一部分控制機(jī)器人的運(yùn)動(dòng)角度,運(yùn)動(dòng)學(xué)方程推導(dǎo)出來如式 (4)[7]所示
其中每一個(gè)全向輪的半徑都是r,機(jī)器人中心到輪子中心的距離設(shè)為R,輪角速度設(shè)為ωi,其中i取值1、2、3。本文所采用的機(jī)器人r為52.2mm,R平均為180mm。
在三輪全向移動(dòng)機(jī)器人中,機(jī)器人的控制系統(tǒng)用來處理運(yùn)動(dòng)控制模塊與傳感器模塊或者與藍(lán)牙模塊交互的信息,從而通過智能體實(shí)現(xiàn)相應(yīng)的模塊功能。智能機(jī)器人軟件系統(tǒng)是具有多模塊,多功能的復(fù)雜系統(tǒng),一般包含感知、學(xué)習(xí)、決策、行動(dòng)、控制等功能模塊。各功能模塊相對(duì)獨(dú)立的完成各自功能,但又相互依賴、共享信息、相互協(xié)調(diào),從而有效地完成總體任務(wù)。
MAS是分布在幾個(gè)機(jī)構(gòu)或在一個(gè)網(wǎng)絡(luò)的多個(gè)分布式Agent組成,他們具有社會(huì)性,需要彼此交互達(dá)成系統(tǒng)的總體目標(biāo)。MAS是一個(gè)具有自治性、主動(dòng)性和社會(huì)性的軟件集合。Agent具有自治性,擁有自己的控制線程而獨(dú)立于其他進(jìn)程。Agent還具有反應(yīng)性,除應(yīng)對(duì)其他消息或外部事件外,Agent有時(shí)可能會(huì)采取主動(dòng),改變他們的行為以達(dá)到他們的目標(biāo)[8]。自治性需要更多的Agent相互協(xié)調(diào)。有些反應(yīng)可能不需要學(xué)習(xí),更少的學(xué)習(xí)能力通常意味著更多的Agent一起做出反應(yīng),而更多的學(xué)習(xí)能力通常意味著更多的Agent自治。Agent是計(jì)算的實(shí)體,從環(huán)境中接收傳感器輸入,并能產(chǎn)生影響他們的環(huán)境的行為。Agent通常都有一組操作,每個(gè)操作都有目標(biāo)的前提條件和影響它的環(huán)境,Agent根據(jù)目標(biāo)制定可執(zhí)行的行動(dòng)計(jì)劃。Agent之間能相互交流,并進(jìn)行合作、洽談和協(xié)調(diào)行動(dòng)。
通過對(duì)硬件層次結(jié)構(gòu)、分布式結(jié)構(gòu)以及機(jī)器人運(yùn)動(dòng)學(xué)模型的分析,本文基于 “思維與學(xué)習(xí)、感知與交互、行動(dòng)與控制”的理念[9],結(jié)合慎思Agent和反應(yīng)Agent的特點(diǎn),抽象出了5個(gè)Agent,各Agent有機(jī)結(jié)合,協(xié)調(diào)、協(xié)作使之成為一個(gè)智能化程度較高的整體。本文Multi-agent模型結(jié)構(gòu)如圖4所示。
圖4 機(jī)器人軟件模型結(jié)構(gòu)
該模型結(jié)構(gòu)包含了慎思功能模塊 (CBR推理Agent),社會(huì)功能模塊 (導(dǎo)航Agent、交互Agent),感知功能模塊(感知Agent),行動(dòng)控制功能模塊 (控制Agent)。各Agent獨(dú)立完成各自任務(wù),并通過協(xié)作來完成全局任務(wù)。其中CBR推理Agent是進(jìn)行主要的智能推理,導(dǎo)航Agent和控制Agent用來實(shí)現(xiàn)控制機(jī)器人的運(yùn)動(dòng),完成目標(biāo)任務(wù)。感知Agent通過紅外測(cè)距傳感器與紅外避障傳感器來獲取周圍環(huán)境信息,將信息傳遞給CBR推理Agent,CBR推理A-gent做出決策之后交給導(dǎo)航Agent來告訴控制Agent如何來控制機(jī)器人運(yùn)動(dòng)。其中交互Agent主要實(shí)現(xiàn)學(xué)習(xí)和感知Agent的交互。
針對(duì)模型結(jié)構(gòu)中的Agent,我們定義了其基本模型:A-gent= {名稱,作用,合作者,幫助方法,目標(biāo)},其中名稱是Agent的標(biāo)識(shí);作用是對(duì)Agent的描述;合作者是具有協(xié)作關(guān)系的Agent列表;幫助方法為通訊協(xié)議,決策等;目標(biāo)是Agent的功能體現(xiàn),其中一個(gè)五元組destination={R,S,KB,D,P},其中:R為接收信息;S為發(fā)送信息;KB為Agent的知識(shí)庫(kù);D為目標(biāo)任務(wù);P為Agent完成任務(wù)的進(jìn)度。
一個(gè)任務(wù)的完成用式 (5)來描述
根據(jù)模型結(jié)構(gòu)中的各Agent功能,建立機(jī)器人基本軟件模型。整個(gè)軟件體系由感知Agent、交互Agent、導(dǎo)航Agent、CBR推理Agent和控制Agent組成。其中每個(gè)A-gent都具備學(xué)習(xí)和思考能力。機(jī)器人紅外測(cè)距傳感器、紅外避障傳感器等獲取到周圍環(huán)境信息后,交由感知Agent接受信息數(shù)據(jù)傳遞給CBR推理Agent,然后CBR推理A-gent根據(jù)信息進(jìn)行分析和推理將結(jié)果傳遞給導(dǎo)航Agent,最后由控制Agent來完成機(jī)器人的行為。
機(jī)器人的行動(dòng)控制是由導(dǎo)航Agent和控制Agent來完成。而機(jī)器人的控制模塊主要是通過終端中的藍(lán)牙模塊與機(jī)器人中的藍(lán)牙模塊通信完成,終端采用的是android系統(tǒng),它采用了軟件堆層的架構(gòu),底層Linux內(nèi)核只能提供基本功能采用C/C++語(yǔ)言編寫,應(yīng)用層開發(fā)語(yǔ)言為JAVA,具有良好的可移植性。圖5為移動(dòng)機(jī)器人控制與傳感結(jié)構(gòu)圖,主控器通過藍(lán)牙與控制終端進(jìn)行交互,同時(shí)控制紅外、超聲波等傳感器。
圖5 機(jī)器人控制與傳感結(jié)構(gòu)
機(jī)器人與手機(jī)藍(lán)牙模塊之間的通信要遵循機(jī)器人藍(lán)牙通信協(xié)議。手機(jī)應(yīng)用程序存儲(chǔ)藍(lán)牙模塊的ID號(hào),打開藍(lán)牙后,搜索該ID,并配對(duì)連接,然后打開藍(lán)牙串口服務(wù),設(shè)置通信參數(shù)如下:波特率115200,8數(shù)據(jù)位,1停止位、無校驗(yàn)位。手機(jī)應(yīng)用程序可以向機(jī)器人控制器發(fā)送讀命令、寫命令。讀命令:應(yīng)用程序查詢?cè)O(shè)備ID對(duì)應(yīng)設(shè)備的狀態(tài)信息;寫命令:服務(wù)程序發(fā)送設(shè)備ID對(duì)應(yīng)設(shè)備的控制信息;機(jī)器人控制器如果接收到讀命令,返回對(duì)應(yīng)設(shè)備的狀態(tài)信息;如接收到寫命令,則不返回信息,其中運(yùn)動(dòng)速度范圍為0100cm/s,旋轉(zhuǎn)角度范圍為0°180°。表1為藍(lán)牙通信協(xié)議,其中指令格式:十六進(jìn)制。
表1 藍(lán)牙通信協(xié)議
全向輪型機(jī)器人的特點(diǎn)是可以按照任意方向轉(zhuǎn)動(dòng),這樣機(jī)器人可以按照所規(guī)劃的任意角度的方向來運(yùn)動(dòng),為驗(yàn)證運(yùn)動(dòng)學(xué)模型和運(yùn)動(dòng)方程的有效性,在Matlab環(huán)境中進(jìn)行仿真實(shí)驗(yàn),實(shí)驗(yàn)環(huán)境為10*10的開闊環(huán)境中,機(jī)器人以ν=20cm/s,ω=0進(jìn)行直線運(yùn)動(dòng),以ν=20cm/s,ω=30進(jìn)行圓周運(yùn)動(dòng),仿真結(jié)果如圖6和圖7所示。其中藍(lán)色軌跡為機(jī)器人運(yùn)動(dòng)軌跡。坐標(biāo)點(diǎn) (0,0)為機(jī)器人運(yùn)動(dòng)起點(diǎn)。
為了測(cè)試機(jī)器人的智能體之間的通訊和機(jī)器人的運(yùn)動(dòng)學(xué)模型,對(duì)于三輪全向機(jī)器人的實(shí)際運(yùn)動(dòng)進(jìn)行測(cè)試。為驗(yàn)證實(shí)際的機(jī)器人直線運(yùn)動(dòng),本文在53cm*38cm的環(huán)境中進(jìn)行運(yùn)動(dòng)測(cè)試,機(jī)器人直線運(yùn)動(dòng)距離為53cm。直線運(yùn)動(dòng)運(yùn)動(dòng)軌跡如圖8所示。作者將黑色記號(hào)筆固定在機(jī)器人前端,機(jī)器人在白色卡紙上運(yùn)動(dòng)時(shí)會(huì)留下黑色的軌跡。
圖8 直線運(yùn)動(dòng)軌跡照片
圖8為機(jī)器人在ν=100cm/s,ω=0時(shí)的直線運(yùn)動(dòng)軌跡照片,從照片中可以看出機(jī)器人在進(jìn)行直線運(yùn)動(dòng)時(shí)運(yùn)動(dòng)路徑有明顯的偏移。因此,本文依據(jù)根據(jù)上一節(jié)中設(shè)定的機(jī)器人的運(yùn)動(dòng)線速度跟運(yùn)動(dòng)角度范圍,本文進(jìn)行實(shí)際運(yùn)動(dòng)測(cè)試,因?yàn)槠拗凭筒粚⒄掌灰涣谐?,?shí)際機(jī)器人到達(dá)的點(diǎn)與預(yù)期的目標(biāo)點(diǎn)相比較后的結(jié)果見表2。
表2 直線運(yùn)動(dòng)軌跡實(shí)驗(yàn)結(jié)果分析
由表2數(shù)據(jù)可以看出,機(jī)器人在運(yùn)動(dòng)過程中會(huì)存在偏移誤差,但是偏移角度誤差范圍都在5°以內(nèi),基本上可以達(dá)到仿真中預(yù)期的目標(biāo)。機(jī)器人在進(jìn)行直線運(yùn)動(dòng)時(shí),當(dāng)速度較小時(shí)機(jī)器人會(huì)往右邊偏移,隨著速度的增大偏移量會(huì)減小,但是當(dāng)速度增大到一定程度時(shí),機(jī)器人會(huì)開始往左邊偏移運(yùn)動(dòng),偏移角度也會(huì)增大,但是都在誤差范圍以內(nèi)。
為驗(yàn)證實(shí)際的機(jī)器人圓周運(yùn)動(dòng),本文在同樣在53cm*38cm的環(huán)境中進(jìn)行運(yùn)動(dòng)測(cè)試,移動(dòng)機(jī)器人在同一中心點(diǎn)按照預(yù)定的條件轉(zhuǎn)動(dòng),圓周運(yùn)動(dòng)軌跡如圖9所示。同樣作者將黑色記號(hào)筆固定在機(jī)器人前端,機(jī)器人在白色卡紙上運(yùn)動(dòng)時(shí)會(huì)留下黑色的軌跡。
圖9 圓周運(yùn)動(dòng)軌跡照片
圖9為機(jī)器人在ν=100cm/s,ω=30時(shí)的實(shí)際圓周運(yùn)動(dòng)軌跡照片,從照片中可以看出機(jī)器人在進(jìn)行圓周運(yùn)動(dòng)時(shí)機(jī)器人在慢慢偏移原來的中心。因此,本文依據(jù)根據(jù)上一節(jié)中設(shè)定的機(jī)器人的運(yùn)動(dòng)線速度跟角速度范圍,本文進(jìn)行實(shí)際運(yùn)動(dòng)測(cè)試,因?yàn)槠拗凭筒辉诖藢y(cè)試照片一一列出,機(jī)器人轉(zhuǎn)動(dòng)后的中心點(diǎn)與原先預(yù)定的中心點(diǎn)相比較后的結(jié)果見表3。
表3 圓周運(yùn)動(dòng)軌跡實(shí)驗(yàn)結(jié)果分析
表3數(shù)據(jù)可以看出,機(jī)器人在進(jìn)行圓周運(yùn)動(dòng)的時(shí)候,根據(jù)線速度大小的增加,機(jī)器人的穩(wěn)定性就會(huì)變差,在線速度增加的過程中機(jī)器人會(huì)因?yàn)樗俣鹊募涌鞕C(jī)器人會(huì)產(chǎn)生振蕩,因此機(jī)器人的中心會(huì)產(chǎn)生偏移,速度越大振蕩程度越大,因此中心的偏移程度也會(huì)越大,所以圓周運(yùn)動(dòng)的中心偏移距離也會(huì)越大。
三輪全向機(jī)器人的運(yùn)動(dòng)速度是由3個(gè)輪子的速度組合而成。在運(yùn)動(dòng)學(xué)基礎(chǔ)上進(jìn)行控制時(shí),如果3個(gè)輪子不能嚴(yán)格同步,那么組合之后的速度就不是預(yù)期中所期望的速度,因而不會(huì)按照要求的路線運(yùn)動(dòng)。實(shí)驗(yàn)中的機(jī)器人走直線運(yùn)動(dòng)時(shí)出現(xiàn)偏差是因?yàn)闄C(jī)器人的輪軸到機(jī)器人中心的半徑不同而造成的,機(jī)器人輪子安裝沒有對(duì)稱導(dǎo)致機(jī)器人在運(yùn)動(dòng)時(shí)偏向一個(gè)方向,同時(shí)會(huì)引起輪子運(yùn)動(dòng)中的向心力不同。
在運(yùn)動(dòng)控制中,根據(jù)已知的x,y,θ利用理想的運(yùn)動(dòng)學(xué)模型得出的vx,vy,ω,然后vx,vy,ω經(jīng)過實(shí)際的機(jī)器人運(yùn)動(dòng)的作用后得出實(shí)際的全域速度vx',vy',ω',由于 式 (5)中Ri不盡相同,所以此時(shí)得出的vx',vy',ω'跟理想中的vx,vy,ω不相等,所以需要找到Ri的誤差規(guī)律才能得到預(yù)期的結(jié)果
式 (6)中R1,R2,R3是影響3個(gè)輪子不同的誤差因素,由此可見,增大R和減小r都可以減小各個(gè)誤差的傳遞參數(shù),但是r減小后機(jī)器人對(duì)地面的適應(yīng)能力將變差,R受到機(jī)器人本身物理?xiàng)l件的限制,不能太大,根據(jù)上述公式只能適當(dāng)控制sinθ和ω的值來使機(jī)器人能達(dá)到預(yù)期效果。
JADE (Java agent development framework)是由意大利電信集團(tuán) (telecom Italia)發(fā)布的多Agent系統(tǒng)中間件平臺(tái)[10]。該平臺(tái)包含有豐富的API函數(shù)可以用來構(gòu)建Agent,并且具有圖形化的界面支持Agent之間的通訊調(diào)試,因此本文在JADE平臺(tái)上對(duì)機(jī)器人框架進(jìn)行了仿真,圖10為模擬藍(lán)牙和紅外兩種信息的測(cè)試結(jié)果。
圖10 紅外與藍(lán)牙命令信息處理監(jiān)測(cè)
圖10中test為測(cè)試Agent,它隨機(jī)模擬紅外和藍(lán)牙信息輸入。Perception,Interaction,CBR,navigation,control分別為對(duì)應(yīng)的Agent模擬器。其中INFORM:-1為紅外信息輸入,REQUEST:-1為藍(lán)牙信息輸入。在軟件部署的基礎(chǔ)上對(duì)機(jī)器人做了藍(lán)牙和紅外信號(hào)輸入測(cè)試。本文在酷睿雙核處理器,CPU為2.93GHz,內(nèi)存為2G的window XP系統(tǒng)下進(jìn)行測(cè)試,測(cè)試結(jié)果見表4。
表4 信號(hào)測(cè)試結(jié)果
從表4可以看出,藍(lán)牙信號(hào)的輸入反應(yīng)時(shí)間要比紅外信號(hào)的反應(yīng)時(shí)間慢,并且信號(hào)傳遞的成功率也低于紅外信號(hào)的傳遞。由于三輪全向機(jī)器人有六個(gè)紅外傳感器,而藍(lán)牙模塊只有一個(gè),所以紅外的反應(yīng)速度較藍(lán)牙的反應(yīng)速度較快,正確率也較高。
從圖10中可以看出,測(cè)試Agent隨機(jī)向感知Agent發(fā)送藍(lán)牙命令或紅外傳感器信息,感知Agent都能將受到的信息與交互Agent和CBR Agent進(jìn)行交互然后完成最后的目標(biāo)任務(wù)分析各個(gè)Agent信息傳遞,符合 Multi-agent模型結(jié)構(gòu)中各個(gè)Agent的交互協(xié)作機(jī)制,從而驗(yàn)證了模型結(jié)構(gòu)的可行性。
本文首先對(duì)移動(dòng)機(jī)器人的機(jī)構(gòu)特點(diǎn)進(jìn)行了對(duì)比和分析,并移動(dòng)機(jī)器人的硬件特點(diǎn)將機(jī)器人的硬件分為幾個(gè)功能模塊。然后通過對(duì)三輪全向機(jī)器人繼續(xù)力學(xué)分析和運(yùn)動(dòng)學(xué)原理得出運(yùn)動(dòng)學(xué)模型來控制機(jī)器人的運(yùn)動(dòng)。并且利用機(jī)器人的模塊化部件,設(shè)計(jì)實(shí)現(xiàn)了機(jī)器人的軟件模型。這種三輪全向移動(dòng)機(jī)器人能夠利用軟件結(jié)構(gòu)和運(yùn)動(dòng)學(xué)模型完成機(jī)器人的運(yùn)動(dòng)目標(biāo),達(dá)到所需要的運(yùn)動(dòng)效果,并且體現(xiàn)了機(jī)器人的智能體特性。
:
[1]Raul Rojas.Omni-directional control[M].Freie University Berlin,2005.
[2]Naveen Suresh Kuppuswamy,Se Hyoung Cho,Daniel Stonier,et al.Design of an omni-directional robot for FIRA robosot[C]//Korea Advanced Institute of Science and Technology,2007.
[3]LIU Sen,MU Chundi,ZHAO Mingguo.Humanoid robot controller based on ARM embedded system [J].Journal of Tsinghua University(Science and Technology),2008,48 (4):482-485.
[4]LI Nan,ZHAO Jingdong,JIANG Li.Embedded control system for multi-DOF anthropomorphic prosthetic hand and its grasping strategy[J].Robot,2011,33 (1):22-27.
[5]Paul Fitzpatrick,Giorgio Metta,Lorenzo Natale,et al.Towards long-lived robot genes [J].Robotics and Autonomous Systems,2008,56(1):29-45.
[6]Vallejo D,Albusac J,Mareos J A,et al.Amodernapproach to multi-agent development [J].Journal of Systems and Software,2010,83(3):467-484.
[7]WANG Shimin,LAI Lichun,WU Chiaju,et al.Kinematic control of omni-directional robots for time-optimal movement between two configurations [J].Intell Robot Syst,2007 (49):397-410.
[8]Fabio Bellifemine,Agostino Poggi,Giovanni Rimassa.JADE:A software framework for developing multi-agent applications[J].Lessons learned.Information and Software Technology,2008 (50):10-21.
[9]MIN Huasong,HUANG Lei,GAN Xun.Research and design of multi-agent model structure for embedded robot dog[C]//IEEE the 10th World Congress on Intelligent Control and Automation,2012:3627-3633.
[10]JADE.Java agent development framework [EB/OL].[2012-09-05].http://jade.tilab.com/.