北京信息科技大學 自動化院,北京 100192
機器人集光、機、電、傳感器、控制技術于一體,是國家科技和發(fā)展水平的重要體現(xiàn)。近年來,隨著智能技術的飛速發(fā)展,智能機器人已經(jīng)在各種領域發(fā)揮了重要作用,越來越貼近人們的生活。
中國機器人大賽暨RoboCup公開賽已經(jīng)舉辦多年,武術擂臺賽對抗性激烈、觀賞性強,是進行機器人技術較量的平臺[1]。機器人在比賽中面對的環(huán)境是復雜的,如何利用多個傳感器獲得信息進行正確處理是取得比賽勝利的關鍵。
“創(chuàng)意之星”是一種面向大學生的高級模塊化機器人套件,采用各種可通用的零件組成機器人。零件之間按統(tǒng)一的方式連接,并自由組合,即可形成各種不同的機器人模型,實現(xiàn)更為綜合、技術要求更高的機器人功能。[2]
本文利用“創(chuàng)意之星”機器人套件設計的輪式機器人,運用8個紅外開關傳感器和4個紅外測距傳感器獲得測量信息并進行數(shù)據(jù)融合,其中紅外傳感器用于檢測邊緣,紅外測距傳感器用于檢測距離。通過MultiFLEXTM2-AVR控制器有效地控制由4個舵機和4個直流電機構成的執(zhí)行系統(tǒng)完成機器人的運動,實現(xiàn)機器人的自主登臺、避險、尋敵、對撞等功能。本設計機器人在2017中國機器人大賽武術擂臺賽-無差別1vs1組取得二等獎的優(yōu)異成績。
武術擂臺賽是一種對抗性機器人競賽。雙方機器人啟動后從出發(fā)區(qū)自主登上比賽擂臺,尋找對手并將對手推下擂臺。如果在比賽過程中,機器人被推下擂臺或者自己掉下擂臺,則需要在10s內(nèi)重新識別、尋找并自主登上擂臺繼續(xù)比賽。如果一方機器人整體離開擂臺場地或者無法再行動,則判對方得一分,在固定的時間內(nèi)得分多者為勝。機器人可采用輪式,履帶式或足式,重不超過4kg,投影尺寸不超過300mm×300mm。
圖1為武術擂臺賽場圖。比賽擂臺是放在一個3800mm×3800mm的區(qū)域中間,場地地面為白色,四周有500mm高的黑色圍欄。擂臺是一個2400mm×2400mm×60mm的正方形矮臺,擂臺表面底色從外側四角到中心由純黑到純白的灰度漸變,擂臺中央為正方型紅色區(qū)域,內(nèi)為白色“武”字。擂臺四周有寬為200mm的黑色色帶(圖1中顯示為綠色以示區(qū)別)。圖中蘭色和黃色區(qū)域為雙方出發(fā)區(qū),寬度為400mm。
機器人硬件平臺系統(tǒng)結構圖如圖2所示,包括4個子系統(tǒng):決策系統(tǒng)、感知系統(tǒng)、執(zhí)行系統(tǒng)和通信系統(tǒng)。
本文設計的機器人采用四輪差動式,大小為300mm×300mm。感知系統(tǒng)由8個紅外開關傳感器和4個紅外測距傳感器組成;執(zhí)行系統(tǒng)由4個舵機和4個直流電機構成,直流電機使用BDMC1203驅動,12V/5A鋰電池供電;決策系統(tǒng)控制器采用AVR單片機,它可以提供12個I/O接口、8個A/D接口、8個數(shù)字舵機接口[3]。通信系統(tǒng)通過以太網(wǎng)接口完成與上位機的聯(lián)系。機器人模型中,各種傳感器信號作為數(shù)據(jù)輸入量,舵機和電機的轉動作為數(shù)據(jù)輸出量,以此完成機器人各項動作。
感知系統(tǒng)的安裝如圖3所示。底盤正前、后、左、右各安置一個紅外開關傳感器AD1~AD4,頂部左前、右前、右后、左后各安置一個紅外開關傳感器AD9~AD12。四個紅外測距傳感器AD5~AD8安裝在正面的前、后、左、右,用來測量距離。傳感器從前開始,順時針方向命名。AD5方向為前方。
圖4為執(zhí)行系統(tǒng)的安裝。圖4(a)為舵機安裝方式,左前舵機ID8、右前舵機ID7、右后舵機ID5、左后舵機ID6。圖4(b)為采用2個BDMC1203驅動器配置方式,驅動直流電機,四輪驅動、差速轉彎。ID1控制右側兩個車輪,ID2控制左側兩個車輪。
感知系統(tǒng)采用紅外開關傳感器和紅外測距傳感器的組合,主要用于機器人確定自己的位置以及方向、判斷是否到達擂臺邊緣、識別敵人等 。
(1)紅外開關傳感器
E18-D80NK原理如圖5所示。傳感器發(fā)射紅外線到物體上,經(jīng)物體反射后傳到傳感器接收器,接收器上得到反射信號積累到一定值后會觸發(fā)回路[4]。傳感器為數(shù)字輸出,1表示在觸發(fā)距離內(nèi)未檢測到障礙物,0表示檢測到障礙物。E18-D80NK帶有靈敏度調(diào)節(jié)旋鈕,可以調(diào)節(jié)傳感觸發(fā)距離。
紅外開關傳感器AD1~AD4觸發(fā)距離為40mm,主要用于判斷機器人小車是在臺上還是在臺下,并配合紅外距離傳感器判斷前方是否有敵人。AD9~AD12主要用來進行邊緣檢測,防止機器人掉臺,觸發(fā)距離根據(jù)機器人高度設置,可調(diào)范圍:30mm~800mm。
(2)紅外測距傳感器GP2D12
紅外測距傳感器用來測量傳感器與前方障礙物之間的距離。選用Sharp公司紅外測距傳感器GP2D12,具有體積小、重量輕、接口簡單的特點,是機器人測距的理想選擇。傳感器量程范圍100mm~800mm,輸出0V~2.5V(輸出與距離成非線性反比例關系)。
GP2D12主要由紅外發(fā)射器、PSD(位置敏感檢測裝置)及相關處理電路構成,紅外發(fā)射器發(fā)射一束紅外激光線,紅外光線遇到障礙物被反射回來,透過透鏡投射到PSD上,投射點和PSD中心位置存在偏差a,GP2D12根據(jù)如圖6所示的a、b、α三個值就可以計算出H的值,并輸出相應電平的模擬電壓。
由于GPD2D12輸出值與實際反射距離并非線性關系,在使用之前,要對傳感器進行標定,通過大量的數(shù)據(jù)建立輸出數(shù)據(jù)與實際距離的關系對應表。在使用時即可根據(jù)查表方式來得到輸出數(shù)據(jù)與實際距離的對應關系。本文的采集原則為每5cm采集一次。
表1和圖7為獲得的障礙物距離與MultiFLEXTM2-AVR控制器的ADC輸出值的對應關系,可以看出傳感器的測距與輸出值成反比非線性關系。
表1 紅外測距傳感器的測量距離與返回值
需要說明的是GPD2D12的兩個重要特性:與障礙物的反射角度基本無關;與反射物體的顏色基本無關。
決策系統(tǒng)就是機器人的“大腦”,本設計采用一款小型機器人通用控制器MultiFLEXTM2-AVR,其處理器是ATmega128單片機。ATmega128可以在16MHz的頻率下運行,對于輕量級的自動控制系統(tǒng)來說已經(jīng)完全足夠。具體功能概述如表2。
表2 MultiFLEXTM2-AVR控制器功能概述表
機器人要運動就必須具備執(zhí)行系統(tǒng),執(zhí)行系統(tǒng)就像是機器人的“肌肉”。機器人常用的執(zhí)行機構有直流電機、步進電機、舵機等。本設計采用4個直流電機驅動橡膠輪,4個CDS55XX舵機來控制機械臂。
(1)直流電機
4個直流電機分別安裝于底盤的左右兩側,每組2個,電機的取值決定轉速,取值越大,轉速越快。取值為正,正向轉速,取值為負,反向轉速。左右轉向以差動力實現(xiàn)。需要特別注意的是,左側電機與右側電機為鏡像關系,實現(xiàn)前進動作時,左右電機的取值必須是相反的。表3描述了電機運動和取值的一般規(guī)律。
這只是輪式機器人運動的一般規(guī)律,左右兩側速度不同時,就不能僅僅以運動的一般規(guī)律為唯一標準,需要考慮前一個動作軌跡。
表3 電機運動和取值的一般規(guī)律
(2)舵機
舵機就是控制舵面的電機。本設計采用的CDS55xx舵機有兩種工作模式,即電機模式和舵機模式,電機模式時,它可以整周旋轉,舵機模式時,它只能在0°~300°范圍內(nèi)旋轉。在本設計中用到的是舵機模式,使用舵機來控制機械臂完成登臺和攻擊動作。
機器人舵機采用半雙工串行異步總線進行控制,使用之前需要對舵機進行編號區(qū)分,舵機的調(diào)試和編號可以使用RobotServo Terminal軟件,這個軟件可以對總線上舵機ID搜索,設置參數(shù)(如ID、波特率、加速度以及位置限制等參數(shù)),查看舵機狀態(tài)(如溫度、位置、載荷、電壓等),還可以設置舵機的中值位置等[5]。舵機調(diào)試系統(tǒng)如圖8所示。
CSDS55xx機器人舵機采用總線式通信,可以串聯(lián)使用,但最好是6個以下。因為單組6個CSDS55xx的工作電流會達到3A~8A,使舵機線發(fā)熱,產(chǎn)生比較大壓降,最后導致離控制器最遠的舵機因為沿途舵機線分壓而造成工作電壓過低,從而出現(xiàn)復位、數(shù)據(jù)通信不正常等狀況。
硬件是機器人的軀體,策略是機器人的靈魂,在以硬件結構為輔助的前提下,完美的控制策略是贏得比賽的關鍵。
不掉臺是比賽的關鍵,它的優(yōu)先級要高于攻擊敵人。機器人在比賽的過程中一直要確保自己在擂臺上,通過邊沿識別來漫游,并在漫游的過程中尋找對手并攻擊;如果是在擂臺下,就通過機身周圍布置的傳感器確定擂臺的方向,擺正自身的朝向登上擂臺。
其中研究的重點:自主登臺技術。技術難點:機器人如何識別出自身位置在臺上和臺下,并針對自身不同位置,啟用登臺機構完成登臺動作[6]。機器人識別位置流程圖如圖9所示。
檢測機器人是否在臺上主要設計思想:位于臺上時,AD5~AD8測量值均小于300,四個紅外光電AD1~AD4其中一個檢測到對方,可利用函數(shù)中累加和小于2判斷位于臺上。
位于臺下時,前后(或左右)兩個紅外光電傳感器均檢測到目標(如前檢測擂臺,后檢測圍擋),兩個傳感器累加和等于2,判定機器人位于臺下。
在擂臺下時,首先要檢測機器人朝向,以前方對擂臺為例,此時前方底部紅外光電傳感器AD1檢測到擂臺,底部左側AD4和右側AD2的紅外光電傳感器均未檢測到障礙,頂部4個紅外測距傳感器只有后方AD7檢測到圍欄。
機器人尺寸30mm×30mm,測距傳感器有40mm有效測量距離。檢測是否位于臺上函數(shù)見后文軟件設計部分。
見圖10(a)如果機器人在臺上, AD9~AD12均應該檢測到擂臺,傳感器燈亮,返回值為0,一旦某個位置的傳感器燈滅,返回值為1,代表超出傳感器的有效測量距離,不能檢測到擂臺,那么在這個方向有可能落下擂臺,要采取必要的措施。例如當機器人左前方紅外開關傳感器AD9燈滅,機器人向后退并向右轉90°,當機器人右前方紅外傳感器AD10燈滅,機器人向后退并向左轉90°。后方兩個傳感器同理。不掉臺是比賽的關鍵,它的優(yōu)先級要高于攻擊敵人,根據(jù)比賽經(jīng)驗來看,很多比賽選手把重點放到攻擊策略,從而導致忽略了邊緣檢測輸?shù)舯荣悺?/p>
見圖10(b),通過底部四個紅外開關傳感器AD1~AD4及相應的紅外距離傳感器合作完成敵人探測。AD1~AD4觸發(fā)距離40mm,AD5~AD8判斷閾值141。例如,機器人前方有敵人時,AD1燈亮,AD5大于閾值,電機以1000速度(取值為經(jīng)驗值,主控芯片速度范圍0~1023,正值代表電機正轉,負值代表倒轉。)向前,持續(xù)時間為200ms,直到把對手推下擂臺后,觸發(fā)邊緣檢測,后退。左側有敵人時AD2亮,AD8大于閾值(141),機器人先以500速度左轉,持續(xù)時間400ms,再以500速度向前,持續(xù)400ms。后方、右方同理。
需要說明的是,上述轉速、時間、距離的取值皆為多次調(diào)試經(jīng)驗值,未出現(xiàn)撞不到對方的情況,如果未把對方機器人頂下擂臺,本方機器人會一直頂下為止。如果出現(xiàn)僵持的情況,裁判會讓雙方到比賽起始區(qū)再次登臺。由于參加比賽的絕大部分設計都是在標準模型下的改進方案,機器人動力不會相差太大。對于轉速和時間的最優(yōu)配置仍需要繼續(xù)深入,但是本設計有這樣的局限性。
NorthSTAR是一個圖形化交互機器人控制程序開發(fā)工具。但是在我們實際使用中,發(fā)現(xiàn)圖形化編程可讀性和執(zhí)行效率都很低,所以使用了C語言在Visual Studio編譯環(huán)境中編寫,提高程序的可讀性和靈活性。部分參考程序如下:
為了給機器人登臺做支撐,我們在機器人前后相對底盤垂直方向安裝了4個分別由舵機控制的機械臂。機器人檢測到擂臺后,前機械臂放下?lián)F饳C器人,使其高出擂臺,同時車輪以500速度前進,在車輪摩擦力和機械臂支撐力的共同作用下,前車身翻上擂臺。此時車身處于傾斜狀態(tài),前機械臂收回,后機械臂放下,在支撐力和電機驅動力的共同作用下,機器人以1000速度前進,最后順利登上擂臺,后機械臂收回。通過單一信號接口來傳送電機速度,將主控芯片的輸出的信號用0~1023的數(shù)據(jù)來表示。
本文設計的基于AVR單片機控制的機器人是對參與武術擂臺賽所得出的經(jīng)驗。簡述了硬件平臺的搭建、策略的研究、軟件的設計。設計的機器人可將傳感器采集的數(shù)據(jù)通過控制器處理從而準確判斷自己所處的擂臺位置并實現(xiàn)自主導航,還可以在擂臺上能夠靈活地實現(xiàn)自主登臺、前進、后退、轉彎和攻擊對手。最終獲得“2017中國機器人大賽武術擂臺賽非標準平臺無差別組(1VS1)挑戰(zhàn)賽”第二名的成績,證明了硬件設計的可行性與軟件策略的正確性。
可以改進的地方是,本設計采用了紅外傳感器來定位機器人位置,而未采用灰度傳感器,多灰度傳感器陣列可以通過判斷場地的顏色梯度從而確定自身位置。雖然灰度傳感器易受光線強弱的影響,但是灰度傳感器在定位上的優(yōu)勢是紅外傳感器無法比擬的。所以如何利用好這把雙刃劍,是改進機器人在擂臺漫游效果的關鍵。另外,比賽中擂臺上漫游和掉臺后擂臺位置的檢測策略還有很大提升空間,也是機器人能否獲得更優(yōu)異成績的關鍵之處。