姚冬冬,閔華松
(1.武漢科技大學 冶金自動化與檢測技術教育部工程研究中心,湖北 武漢,430081;2.武漢科技大學 計算機科學與技術學院,湖北 武漢,430081)
在自動化技術的廣泛發展過程中,機器人技術廣泛地應用到了電子、機械、自動控制與計算機算法、通訊等多種領域。其中,移動機器人以其高機動性和穩定性,受到越來越多的學者和機構的研究。工廠實踐中面對任務多樣化、復雜化,人們對移動機器人的控制精度和智能化程度逐漸提出了更高的要求。這對移動機器人的機械結構和軟件結構的設計提出新的挑戰。如何設計一個能夠滿足以上要求的機器人,以及與其相配合的軟件系統是當前移動機器人研究的一個重要方向之一。
在機器人機械結構設計方面,全向移動機器人以其高機動性和穩定性得到了廣泛的研究,其具有靈活性、穩定性等特點,能夠滿足機器人多樣化、靈活以及準確的移動。目前在移動機構輪可以分為履帶式、輪式和腿式等,而輪式由于其結構簡單、穩定并且易控制的優點被廣泛應用,輪式機構又根據它是否存在迂回半徑分為全向輪和非全向輪[1]。全向移動機器人能有具有這樣的優勢主要是因為它們使用的是具有兩個方向移動自由度的全向輪,其全向輪可以使機器人在移動過程中重心平移相對穩定[2]。具備全向運動能力的機器人,它們在二維平面上可以獨立控制機器人的重心平移和旋轉速度,這是傳統的輪式機器人也無法達到的。通過對多種機器人的運動效果比較,三輪全向機器人由于可以3個輪軸同時對車身所產生的合速度相互左右來決定移動機器人的運動效果,并且運動過程相對穩定,從而選擇其成為本次研究的對象。
軟件設計從結構化到面向對象,軟件設計也在向智能方向發展,從而產生了面向智能體 (Agent)的軟件設計思想。基于智能機器人具有開發成本低、硬件體積小、部件模塊化程度高、功耗低、可定制、易擴展等優點[3-4]。當下的設計者普遍將智能體概念應用于機器人軟件結構的設計當中。1997年研究者提出的 “軟件智能體”迅速應用于人工系統和多智能體機器人的系統[5]當中,在智能體運用的過程中,多智能體系統 (multi-agent system,MAS)作為一個具有自治性、主動性和社會性的軟件集合[6],其應用到移動機器人中具有一定的優勢,但仍存在一些問題:①由硬件特性劃分智能體,智能體的功能依賴于具體硬件;②Multi-agent技術提高了系統的智能性,但對緊急事件反應能力考慮較少。而移動機器人是一個集環境感知、動態決策與規劃、行為控制與執行等多種功能于一體的綜合智能體系統,多智能體系統的主要任務就是將這各種功能模塊有機地結合起來,來完成移動機器人的任務,這就需要設計適應機器人的軟件模型結構。一個移動機器人系統可以看作是一個 Multi-agent,多個移動機器人系統是一個Multi-agent群體,其交互、協作、通信都比較方便,正是基于以上種種特點,本文依據Multi-agent軟件結構思想和智能體的特點設計了三輪全向移動機器人的軟件結構。
依據三輪全向機器人以及多智能體系統的以上特性,本文設計了機器人的運動學模型和軟件結構,研究并實現了三輪全向機器人的運動控制和軟件模型中各智能體的功能和相互之間的通訊協作。本文著眼于全向移動機器人,首先設計了機器人的硬件平臺和機械結構,其次依據機器人硬件模型的特點得出機器人的運動學模型和運動學方程,再次依據機器人需求的特點設計了機器人的軟件結構模型和控制機器人的藍牙控制協議,最后在Matlab中仿真控制機器人的運動,然后控制三輪全向移動機器人實際運動,進行對比分析并校正運動學方程。并且在JADE平臺上實現了MAS中各Agent功能以及相互間的協作。
考慮到靈活性、小型化、穩定性、模塊化等特點,基于嵌入式平臺,設計了三輪全向移動機器人的軟硬件架構,其主要有控制模塊 (stm32),內部通信模塊 (串行通信協議),外部通信模塊 (藍牙、WiFi等),傳感模塊,運動控制 (ATMega8)模塊。

圖1 機器人電氣結構
圖1中機器人控制系統中主控制芯片為STM32,主控芯片通過ADC進行信號轉換,USART1、USART2、USART3分別連接串口、藍牙和無線射頻單元的連接,完成機器人與手機控制端的交互,陀螺儀、巡線傳感器、8路紅外避障傳感器、超橫波測距模塊等多種傳感器,完成與外界環境的感知與交互。機器人同時支持3G、WiFi、Bluetooth、ZigBee、RFID等通信方式,本系統在通信方面,STM32通過USART2與藍牙模塊進行通信,再由藍牙模塊與手機端進行通信。ATMega8控制器與各傳感器之間采用串行通信協議進行通信。
該平臺具有多類感知功能 (紅外、藍牙、超聲波等)以及無線通信模塊,具有交互、學習等特點。這為研究機器人感知、學習、推理、導航、控制等奠定了基礎。
圖2為機器人實物圖。全向輪具有全方位移動的優勢,不像傳統的移動輪只能前后移動,它具有能夠在兩個方向上移動的自由度,并且不存在回轉半徑的問題。全向輪是由若干小滾輪組成,使各滾輪的母線共同形成一個完整的圓周,從而使輪子可以全方位轉動。本文采用的全向輪由16個小滾輪組成,輪子半徑為52.5mm。機器人通過STM32主控芯片收到串口通訊命令啟動馬達驅動板,驅動板會帶動馬達轉動全向輪的輪軸,從而控制全向輪轉動。本文所用機器人高128mm,長340mm,寬390mm。

圖2 機器人實物
通過對上述機器人硬件結構模塊的分析可知機器人是利用舵機控制機器人的全向輪進行運動。機器人的3個全向輪通過3個輪軸同時對車身所產生的合速度相互左右來決定移動機器人的運動效果。機器人的車頭方向與車旋轉的角速度是影響車身移動的兩個相互獨立的因子。機器人能夠平衡自身重心、具有穩定的運動速度。另外,機器人的紅外測距傳感器、紅外避障傳感器可以幫助機器人在運動過程中獲取相關的環境信息。
圖3為機器人移動圖,其中 (x,y)是機器人運動模式的參考坐標系,其中A,B,C是對3個輪子的編號。使用3個全向輪運動數學模式,本文定義一個絕對坐標系統(x,y)來表示機器人在環境中的位置;θ表示機器人在絕對坐標系的方向角,ω則表示機器人在絕對坐標系的角速度,因此機器人的位置和方向在坐標系中可以表示為 (x,y,θ),而 (vx,vy,ω)則表示機器人的運動速度。以區域坐標系為標準,逆時針方向為正方向,以機器人的全向輪A為參考標準,則全向輪B與A之間的角度為120°,全向輪C與A的角度為240°。

圖3 三輪全向機器人移動
全向機器人的控制是利用3個全向輪的合速度來實現機器人的速度。在圖3中,機器人沿著方向移動,其平移速度可以分解到x,y方向為v,機器人的3個全向輪的速度為v。此時車子旋轉的大小方向為×,則3個輪子的速度分別為式 (1)-式(3)所示

每個輪子的中心速度可以分解成兩個部分,一部分控制機器人的速度,另一部分控制機器人的運動角度,運動學方程推導出來如式 (4)[7]所示

其中每一個全向輪的半徑都是r,機器人中心到輪子中心的距離設為R,輪角速度設為ωi,其中i取值1、2、3。本文所采用的機器人r為52.2mm,R平均為180mm。
在三輪全向移動機器人中,機器人的控制系統用來處理運動控制模塊與傳感器模塊或者與藍牙模塊交互的信息,從而通過智能體實現相應的模塊功能。智能機器人軟件系統是具有多模塊,多功能的復雜系統,一般包含感知、學習、決策、行動、控制等功能模塊。各功能模塊相對獨立的完成各自功能,但又相互依賴、共享信息、相互協調,從而有效地完成總體任務。
MAS是分布在幾個機構或在一個網絡的多個分布式Agent組成,他們具有社會性,需要彼此交互達成系統的總體目標。MAS是一個具有自治性、主動性和社會性的軟件集合。Agent具有自治性,擁有自己的控制線程而獨立于其他進程。Agent還具有反應性,除應對其他消息或外部事件外,Agent有時可能會采取主動,改變他們的行為以達到他們的目標[8]。自治性需要更多的Agent相互協調。有些反應可能不需要學習,更少的學習能力通常意味著更多的Agent一起做出反應,而更多的學習能力通常意味著更多的Agent自治。Agent是計算的實體,從環境中接收傳感器輸入,并能產生影響他們的環境的行為。Agent通常都有一組操作,每個操作都有目標的前提條件和影響它的環境,Agent根據目標制定可執行的行動計劃。Agent之間能相互交流,并進行合作、洽談和協調行動。
通過對硬件層次結構、分布式結構以及機器人運動學模型的分析,本文基于 “思維與學習、感知與交互、行動與控制”的理念[9],結合慎思Agent和反應Agent的特點,抽象出了5個Agent,各Agent有機結合,協調、協作使之成為一個智能化程度較高的整體。本文Multi-agent模型結構如圖4所示。

圖4 機器人軟件模型結構
該模型結構包含了慎思功能模塊 (CBR推理Agent),社會功能模塊 (導航Agent、交互Agent),感知功能模塊(感知Agent),行動控制功能模塊 (控制Agent)。各Agent獨立完成各自任務,并通過協作來完成全局任務。其中CBR推理Agent是進行主要的智能推理,導航Agent和控制Agent用來實現控制機器人的運動,完成目標任務。感知Agent通過紅外測距傳感器與紅外避障傳感器來獲取周圍環境信息,將信息傳遞給CBR推理Agent,CBR推理A-gent做出決策之后交給導航Agent來告訴控制Agent如何來控制機器人運動。其中交互Agent主要實現學習和感知Agent的交互。
針對模型結構中的Agent,我們定義了其基本模型:A-gent= {名稱,作用,合作者,幫助方法,目標},其中名稱是Agent的標識;作用是對Agent的描述;合作者是具有協作關系的Agent列表;幫助方法為通訊協議,決策等;目標是Agent的功能體現,其中一個五元組destination={R,S,KB,D,P},其中:R為接收信息;S為發送信息;KB為Agent的知識庫;D為目標任務;P為Agent完成任務的進度。
一個任務的完成用式 (5)來描述

根據模型結構中的各Agent功能,建立機器人基本軟件模型。整個軟件體系由感知Agent、交互Agent、導航Agent、CBR推理Agent和控制Agent組成。其中每個A-gent都具備學習和思考能力。機器人紅外測距傳感器、紅外避障傳感器等獲取到周圍環境信息后,交由感知Agent接受信息數據傳遞給CBR推理Agent,然后CBR推理A-gent根據信息進行分析和推理將結果傳遞給導航Agent,最后由控制Agent來完成機器人的行為。
機器人的行動控制是由導航Agent和控制Agent來完成。而機器人的控制模塊主要是通過終端中的藍牙模塊與機器人中的藍牙模塊通信完成,終端采用的是android系統,它采用了軟件堆層的架構,底層Linux內核只能提供基本功能采用C/C++語言編寫,應用層開發語言為JAVA,具有良好的可移植性。圖5為移動機器人控制與傳感結構圖,主控器通過藍牙與控制終端進行交互,同時控制紅外、超聲波等傳感器。

圖5 機器人控制與傳感結構
機器人與手機藍牙模塊之間的通信要遵循機器人藍牙通信協議。手機應用程序存儲藍牙模塊的ID號,打開藍牙后,搜索該ID,并配對連接,然后打開藍牙串口服務,設置通信參數如下:波特率115200,8數據位,1停止位、無校驗位。手機應用程序可以向機器人控制器發送讀命令、寫命令。讀命令:應用程序查詢設備ID對應設備的狀態信息;寫命令:服務程序發送設備ID對應設備的控制信息;機器人控制器如果接收到讀命令,返回對應設備的狀態信息;如接收到寫命令,則不返回信息,其中運動速度范圍為0100cm/s,旋轉角度范圍為0°180°。表1為藍牙通信協議,其中指令格式:十六進制。

表1 藍牙通信協議
全向輪型機器人的特點是可以按照任意方向轉動,這樣機器人可以按照所規劃的任意角度的方向來運動,為驗證運動學模型和運動方程的有效性,在Matlab環境中進行仿真實驗,實驗環境為10*10的開闊環境中,機器人以ν=20cm/s,ω=0進行直線運動,以ν=20cm/s,ω=30進行圓周運動,仿真結果如圖6和圖7所示。其中藍色軌跡為機器人運動軌跡。坐標點 (0,0)為機器人運動起點。

為了測試機器人的智能體之間的通訊和機器人的運動學模型,對于三輪全向機器人的實際運動進行測試。為驗證實際的機器人直線運動,本文在53cm*38cm的環境中進行運動測試,機器人直線運動距離為53cm。直線運動運動軌跡如圖8所示。作者將黑色記號筆固定在機器人前端,機器人在白色卡紙上運動時會留下黑色的軌跡。

圖8 直線運動軌跡照片
圖8為機器人在ν=100cm/s,ω=0時的直線運動軌跡照片,從照片中可以看出機器人在進行直線運動時運動路徑有明顯的偏移。因此,本文依據根據上一節中設定的機器人的運動線速度跟運動角度范圍,本文進行實際運動測試,因為篇幅限制就不將照片一一列出,實際機器人到達的點與預期的目標點相比較后的結果見表2。

表2 直線運動軌跡實驗結果分析
由表2數據可以看出,機器人在運動過程中會存在偏移誤差,但是偏移角度誤差范圍都在5°以內,基本上可以達到仿真中預期的目標。機器人在進行直線運動時,當速度較小時機器人會往右邊偏移,隨著速度的增大偏移量會減小,但是當速度增大到一定程度時,機器人會開始往左邊偏移運動,偏移角度也會增大,但是都在誤差范圍以內。
為驗證實際的機器人圓周運動,本文在同樣在53cm*38cm的環境中進行運動測試,移動機器人在同一中心點按照預定的條件轉動,圓周運動軌跡如圖9所示。同樣作者將黑色記號筆固定在機器人前端,機器人在白色卡紙上運動時會留下黑色的軌跡。

圖9 圓周運動軌跡照片
圖9為機器人在ν=100cm/s,ω=30時的實際圓周運動軌跡照片,從照片中可以看出機器人在進行圓周運動時機器人在慢慢偏移原來的中心。因此,本文依據根據上一節中設定的機器人的運動線速度跟角速度范圍,本文進行實際運動測試,因為篇幅限制就不在此將測試照片一一列出,機器人轉動后的中心點與原先預定的中心點相比較后的結果見表3。

表3 圓周運動軌跡實驗結果分析
表3數據可以看出,機器人在進行圓周運動的時候,根據線速度大小的增加,機器人的穩定性就會變差,在線速度增加的過程中機器人會因為速度的加快機器人會產生振蕩,因此機器人的中心會產生偏移,速度越大振蕩程度越大,因此中心的偏移程度也會越大,所以圓周運動的中心偏移距離也會越大。
三輪全向機器人的運動速度是由3個輪子的速度組合而成。在運動學基礎上進行控制時,如果3個輪子不能嚴格同步,那么組合之后的速度就不是預期中所期望的速度,因而不會按照要求的路線運動。實驗中的機器人走直線運動時出現偏差是因為機器人的輪軸到機器人中心的半徑不同而造成的,機器人輪子安裝沒有對稱導致機器人在運動時偏向一個方向,同時會引起輪子運動中的向心力不同。
在運動控制中,根據已知的x,y,θ利用理想的運動學模型得出的vx,vy,ω,然后vx,vy,ω經過實際的機器人運動的作用后得出實際的全域速度vx',vy',ω',由于 式 (5)中Ri不盡相同,所以此時得出的vx',vy',ω'跟理想中的vx,vy,ω不相等,所以需要找到Ri的誤差規律才能得到預期的結果

式 (6)中R1,R2,R3是影響3個輪子不同的誤差因素,由此可見,增大R和減小r都可以減小各個誤差的傳遞參數,但是r減小后機器人對地面的適應能力將變差,R受到機器人本身物理條件的限制,不能太大,根據上述公式只能適當控制sinθ和ω的值來使機器人能達到預期效果。
JADE (Java agent development framework)是由意大利電信集團 (telecom Italia)發布的多Agent系統中間件平臺[10]。該平臺包含有豐富的API函數可以用來構建Agent,并且具有圖形化的界面支持Agent之間的通訊調試,因此本文在JADE平臺上對機器人框架進行了仿真,圖10為模擬藍牙和紅外兩種信息的測試結果。

圖10 紅外與藍牙命令信息處理監測
圖10中test為測試Agent,它隨機模擬紅外和藍牙信息輸入。Perception,Interaction,CBR,navigation,control分別為對應的Agent模擬器。其中INFORM:-1為紅外信息輸入,REQUEST:-1為藍牙信息輸入。在軟件部署的基礎上對機器人做了藍牙和紅外信號輸入測試。本文在酷睿雙核處理器,CPU為2.93GHz,內存為2G的window XP系統下進行測試,測試結果見表4。

表4 信號測試結果
從表4可以看出,藍牙信號的輸入反應時間要比紅外信號的反應時間慢,并且信號傳遞的成功率也低于紅外信號的傳遞。由于三輪全向機器人有六個紅外傳感器,而藍牙模塊只有一個,所以紅外的反應速度較藍牙的反應速度較快,正確率也較高。
從圖10中可以看出,測試Agent隨機向感知Agent發送藍牙命令或紅外傳感器信息,感知Agent都能將受到的信息與交互Agent和CBR Agent進行交互然后完成最后的目標任務分析各個Agent信息傳遞,符合 Multi-agent模型結構中各個Agent的交互協作機制,從而驗證了模型結構的可行性。
本文首先對移動機器人的機構特點進行了對比和分析,并移動機器人的硬件特點將機器人的硬件分為幾個功能模塊。然后通過對三輪全向機器人繼續力學分析和運動學原理得出運動學模型來控制機器人的運動。并且利用機器人的模塊化部件,設計實現了機器人的軟件模型。這種三輪全向移動機器人能夠利用軟件結構和運動學模型完成機器人的運動目標,達到所需要的運動效果,并且體現了機器人的智能體特性。
:
[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/.