【文章內(nèi)容簡(jiǎn)介】
優(yōu)良的 PWM 調(diào)速,我們將繼電器與場(chǎng)效應(yīng)管結(jié)合起來(lái)使用,成功地實(shí)現(xiàn)了底盤(pán)電機(jī)的正反轉(zhuǎn)和連續(xù)的 PWM 調(diào)速。調(diào)速電路原理圖如圖 34 所示。這種電路結(jié)構(gòu)避免了場(chǎng)效應(yīng)管死區(qū) 影響 ,繼電器的使用大大提高了驅(qū)動(dòng)電路的可靠性。圖中通過(guò) INPUT1 和 INPUT2 兩端控制繼電器將電機(jī)以不同的方式接到電源 VCC 與場(chǎng)效應(yīng)管的漏極之間,以實(shí)現(xiàn)電機(jī)方向的控制。通過(guò)調(diào)節(jié) PWM IN 端控制信號(hào)的占空比來(lái)實(shí)現(xiàn)對(duì)電 機(jī)的調(diào)速。 1 2 3 4 5 6ABCD654321DCBAT i t leN u m be r R e v i s i onS i z eBD a t e : 5 J un 20 06 S he e t o f F i l e : C : \ D o c um e nt s a n d S e tt i ng s \ A d m i n\ 桌面 \ f r e nd \ f r e nd \ N e w a ut o .dd bD r a w n B y :K1H R S 4H S D C 24 VK2H R S 4H S D C 24 VA+M G 1M O T O R D CV C C _2 4 VI N P U T 1I N P U T 2Q1R1100P W M I N1 2U 1 AU L N 28 0 33 4U 1 B U L N 28 0 3A2K3V5V+8out6out7U3T L P 25 0V C C _2 4 VR2200U 2 AT L P 52 1U 2 BT L P 52 1R3 KR4 KV C C _2 4 VV C C _2 4 VR520 0 KR620 0 KD1F R 3 07 D2F R 3 07D3F R 3 07D4F R 3 07D5F R 3 07 圖 34 雙向可調(diào)速電機(jī)驅(qū)動(dòng)電路 10 電機(jī)驅(qū)動(dòng)電路是整個(gè)系統(tǒng)中的 “強(qiáng)電 ”部分,其電流大,干擾強(qiáng),對(duì)核心控制器有很大的影響。為了降低干擾 ,系統(tǒng)配備了兩塊電池,一塊給控 制器供電,另一快給電機(jī)供電,兩個(gè)電路系統(tǒng)使用光電耦合器完全隔離,這樣提高的系統(tǒng)的抗干擾能力。 印刷電路板 由于項(xiàng)目初期,各個(gè)模塊的穩(wěn)定性均不高,為了更換方便,隔離查錯(cuò) ,我們將整個(gè)電路系統(tǒng)分成了三個(gè)電路板,即 DSP 控制板, FPGA 接口板和電機(jī)控制板。 這三個(gè)電路板都有獨(dú)立的電源借口,均可以單獨(dú)工作。 后來(lái)事實(shí)證明, 這種模塊化的方式 ,給電路 查錯(cuò) ,和 有問(wèn)題 板子的更換帶來(lái)了 很大的方便。 DSP 控制核心 如圖 35: 圖 35 DSP 核心 FPGA 接口板如圖 36: 圖 36 FPGA 接口板 11 自動(dòng)機(jī)器人用驅(qū)動(dòng)板如圖 37: 圖 37 自動(dòng)機(jī)器人用驅(qū)動(dòng)板 手動(dòng)機(jī)器人用驅(qū)動(dòng)板如圖 38: 圖 38 手動(dòng)機(jī)器人用驅(qū)動(dòng)板 圖 39 為整個(gè)控制電路組裝后的實(shí)物圖: 12 圖 39 控制電路全圖 從圖中可以看出, 整個(gè)硬件系統(tǒng)是由三塊電路板拼接而成,最上面的是 DSP核心板, 中間為 FPGA 接口 板,最下面為電機(jī)控制板。 13 4 機(jī)器人控制 軟件 分析與設(shè)計(jì) 定 位方式 介紹 定位方式的選擇決定了機(jī)器人的行走方式 和巡航效率 ,是機(jī)器人完成各項(xiàng)任務(wù)的基礎(chǔ)。在 ABU 比賽中使用的最多的就是尋線(xiàn)定位,另外也有不尋線(xiàn)定位的,如 慣性導(dǎo)航 、機(jī)器視覺(jué)、 編碼器 等 。下面將對(duì)各種定位方式進(jìn)行分析 。 尋線(xiàn)定位 由于 ABU 比賽中 的 場(chǎng)地上有白色的引倒線(xiàn), 機(jī)器人可以利用這些白色的引導(dǎo)線(xiàn)來(lái)進(jìn)行定位 。 尋線(xiàn)傳感器一般使用光電式傳感器,通過(guò)多個(gè)光電發(fā)射和接收管,可以獲得機(jī)器人相對(duì)于低下的白色引導(dǎo)線(xiàn)的位置,從而進(jìn)行閉環(huán)控制。 尋線(xiàn)定位方式要解決的問(wèn)題主要是傳感器的穩(wěn)定性和抗干擾能力以及比較完善的尋線(xiàn)算法。 相對(duì) 于 其他的定位方式 而言,尋線(xiàn)比較容易實(shí)現(xiàn),而且成本比較低。在傳感器穩(wěn)定的情況下,如果尋線(xiàn)算法比較完備的話(huà),機(jī)器人將是非常穩(wěn)定的 ,因此,絕大多數(shù)隊(duì)伍都是使用了這種點(diǎn)位方式 。但尋線(xiàn)的定位方法仍然有其弊端。首先,很難獲得比較穩(wěn)定的尋線(xiàn)傳感器 ;其次,這種行走方式?jīng)Q定了機(jī)器人只能“橫平豎直 ”地運(yùn)動(dòng),限制了機(jī)器人的靈活性;最后,由于今年比賽的場(chǎng)地上有很多折線(xiàn),在高速情況下,要能夠順利地通過(guò)這些折線(xiàn)是比較困難的。為了測(cè)試該定位方式的效率 與穩(wěn)定性 ,我們做了一些實(shí)驗(yàn) 。 圖 41 是我們所使用的尋線(xiàn)傳感器方陣。 圖 41 尋線(xiàn)傳感 器方陣 為了尋線(xiàn)的可靠性,我們?cè)跈C(jī)器人底盤(pán)的四周各安裝了一條尋線(xiàn)傳感器,每 14 條有 16 個(gè)光電接收管。 實(shí)驗(yàn)證明,即使是使用了如此多的傳感器的情況下,機(jī)器人在高速過(guò)折線(xiàn)的時(shí)候仍然會(huì)出現(xiàn)錯(cuò)誤。為了提高穩(wěn)定性,必須降低機(jī)器人的巡航速度。 另外,由于傳感器眾多,整個(gè)系統(tǒng)的功耗也很大。 慣性導(dǎo)航 慣性導(dǎo)航的歷史已經(jīng)很久了, 最早的應(yīng)用是飛機(jī)上的陀螺儀 [13]。而其在 ABU機(jī)器人上使用也是 近幾年的事情,而且使用的學(xué)校很少。慣性導(dǎo)航是使用一些慣性制導(dǎo)傳感器,如加速度計(jì)、陀螺儀等,來(lái)記錄當(dāng)前機(jī)器人的位置和角度信息,從而進(jìn)行定位。 對(duì)陀 螺儀輸出的角加速度進(jìn)行積分,即可以得到當(dāng)前的角度,對(duì)加速度進(jìn)行二次積分,也可以得到自己的位置,這使得機(jī)器人完全擺脫了場(chǎng)地上引導(dǎo)線(xiàn)的縛束,實(shí)現(xiàn)全場(chǎng)定位。但是,真正能夠提供高精度,低漂移的陀螺儀和加速度計(jì)非常昂貴,不是一般的學(xué)校能夠承受的起的。 我們也對(duì)陀螺儀進(jìn)行過(guò)測(cè)試。我們購(gòu)買(mǎi)的是 ADI 公司生產(chǎn)的微機(jī)電陀螺儀 ADXRS300。其接口是模擬輸出,需要 AD 采樣。當(dāng)時(shí)我們使用 FPGA 對(duì)其進(jìn)行了測(cè)試,發(fā)現(xiàn)低速平穩(wěn)旋轉(zhuǎn)90 度后,誤差有 1~2 度。而且漂移很?chē)?yán)重,因此其不適合用于機(jī)器人上。 機(jī)器視覺(jué) 機(jī)器視覺(jué) [14]是一種比 較高的技術(shù),迄今為止,在 ABU 中只有四個(gè)學(xué)校使用過(guò),而且其中只有中國(guó)科技大學(xué)和國(guó)防科技大學(xué)的機(jī)器人可以通過(guò)視覺(jué)來(lái)定位。該技術(shù)的門(mén)檻很高,不穩(wěn)定因素也很多,沒(méi)有一定的理論基礎(chǔ),想要在幾個(gè)月的時(shí)間內(nèi)做到穩(wěn)定可靠是很困難的。另外,進(jìn)行圖像處理所需的計(jì)算量和存儲(chǔ)器都非常大,一般的控制器是不能勝任的,需要使用更加強(qiáng)大的處理器。而這 些,對(duì)于我們而言,都是不實(shí)際的。因此,該方案也被淘汰了。 使用編碼器定位 使用增量式編碼盤(pán) [15]來(lái)獲得路程和角度信息在機(jī)器人上使用的也比較普遍。 圖 31 是編碼器的原理圖。編碼器輸出的分辨率 的高低 取決于其內(nèi)部柵格的多少。一般的編碼器輸出兩路相位相差 90 度的方波 [16],這兩相方波可以 用來(lái) 區(qū)分編碼盤(pán)的旋轉(zhuǎn)方向。 利用一個(gè)編碼其可以獲得機(jī)器人前進(jìn)的路程信息,利用兩個(gè) 平行 編碼器的路程差可以獲得機(jī)器人旋轉(zhuǎn)的角度信息 ,也可以用 作反饋來(lái)保證機(jī)器人走直線(xiàn) 。 為了防止編碼盤(pán)打滑,編碼器一般是以從動(dòng)輪的形式安裝在機(jī)器人上。 這種定位方式致命的弱點(diǎn)是 : 其無(wú)法檢測(cè)橫向的偏移,當(dāng)機(jī)器人受到側(cè)面方向的撞擊而發(fā)生側(cè)移時(shí),編碼器無(wú)法檢測(cè)出這種情況下的偏移量,從而給定位帶來(lái)問(wèn)題。因此, 很少有隊(duì)伍單獨(dú)使用編碼其進(jìn)行定位,編碼器很多情 況下只是用來(lái)輔助定位,或者用來(lái)計(jì)算旋轉(zhuǎn)的角度。 在我們使用的控制核心 TMS320LF2407A 中集成了編碼器控制模塊,其分別 15 在兩路方波的上跳沿和下跳沿進(jìn)行采樣,因此該控制模塊相當(dāng)于將輸入的方波進(jìn)行了 4 倍頻,極大地提高了編碼器的精度。 圖 42 編碼器原理圖 方案總結(jié) 根據(jù)以上幾個(gè)小節(jié)的分析,我們可以看出,如果不在現(xiàn)有的基礎(chǔ)上做出改進(jìn)的話(huà),只有尋線(xiàn)定位方式比較適合做該比賽。但我們仔細(xì)研究了一 下編碼的定位方式,發(fā)現(xiàn)可以換一種思路來(lái)利用編碼器所獲得的路程值, 并且其精度和抗干擾能力上有了很大的提升。 從而使得機(jī)器 人使用了以碼盤(pán)作為基礎(chǔ)的定位方式。 機(jī)器人定位系統(tǒng) 以前利用編碼器的時(shí)候,只是對(duì)其當(dāng)前值進(jìn)行處理,并沒(méi)有實(shí)時(shí)地對(duì)歷史值進(jìn)行積分,因此,機(jī)器人在每個(gè)時(shí)刻并不知道自己當(dāng)前角度和位置信息,只知道當(dāng)前所處的狀態(tài)。如當(dāng)機(jī)器人正在走直線(xiàn)的時(shí)候,它只知道自己在走直線(xiàn),并不知到自己在行走過(guò)程中的位置和角度信息,旋轉(zhuǎn)時(shí)也是如此。如果對(duì)從初始狀態(tài)之后所有的值進(jìn)行積分的話(huà)機(jī)器人就可以知道自己當(dāng)前的位置和角度信息了。 定位算法模型 機(jī)器人的 定位信息 使用 ? ?xy? 來(lái)描述。其中 ,xy分別表示機(jī)器人在全局坐標(biāo)系下的坐標(biāo), ? 表示機(jī)器人的方位角。 圖 43 是定位算法模型示意圖,其中GC 表示全局坐標(biāo)系, RC 表示機(jī)器人的局部坐標(biāo)系。 16 圖 43 定位算法模型 當(dāng)機(jī)器人從第 n 個(gè)狀態(tài) (藍(lán)色 ),經(jīng)過(guò)很小的運(yùn)動(dòng)到達(dá)第 n+1 個(gè)狀態(tài) (紅色 )時(shí),左邊和右邊的從動(dòng)輪各 自行走了一段 很小的 圓弧。 設(shè)機(jī)器人左邊編碼器的變化量為 1L ,右邊的變化量為 2L 。機(jī)器人在這個(gè)過(guò)程中旋轉(zhuǎn)的角度 d? 可以表示為: 2 2 1 1L k L kd Le n? ? ? ?? 其中 11 2 rk N??與 22 2 rk N??分別是兩邊編碼器的矯正系數(shù),其與編碼器的 分辨率 N和從動(dòng)輪半徑 r 有關(guān) ; Len 為兩邊編碼器 從動(dòng)輪的 中心輪距 。 同時(shí)根據(jù) ?d 值可以得出在機(jī)器人 坐標(biāo) 系 RC 中 x, y 方向的變化量: 2 2 1 12 2 1 1 [ 1 c o s ( ) ]2 ( )xL k L kd L e n dL k L k ?? ? ?? ? ? ? ?? ? ?, 2 2 1 12 2 1 1 s in ( )2 ( )yL k L kd L e n dL k L k ?? ? ?? ? ?? ? ?。 為了將機(jī)器人坐標(biāo)系 中的 yd , xd ,d? 轉(zhuǎn)換為全局坐標(biāo)系中的位置和角度信息,需要進(jìn)行如下變換: 1nnd???? ??, 1 [ c os( ) si n( ) ]n n x yx x d d??? ? ? ? ? ?, 17 1 [ si n( ) c os( ) ]n n x yy y d d??? ? ? ? ? ? 其中 ? ?nnn yx ? 表示前一時(shí)刻的定位信息, ? ?111 ??? nnn yx ? 表示當(dāng)前時(shí)刻的位置信息。 這樣累加出來(lái)的結(jié)果就可以實(shí)時(shí)地得出機(jī)器人的定位信息了。 從整個(gè)算法上來(lái)看,如果機(jī)器人在橫向出現(xiàn)便偏移的話(huà),位置信息 會(huì) 出現(xiàn) 比較大的誤差,而角度值由于是使用差值 ,故不會(huì)出現(xiàn) 較大的誤差。因此,整個(gè)運(yùn)動(dòng)過(guò)程中, 角度值受到影響的程度很小。 同時(shí)需要指出的是, 在輪式機(jī)器人運(yùn)動(dòng)過(guò)程中,其旋轉(zhuǎn)中心可以認(rèn)為在兩個(gè)主動(dòng)輪的連線(xiàn)中心上, 但 整個(gè)定位系統(tǒng)的 反饋 信息全部 是 從 從動(dòng)輪上的編碼器獲得的, 如果兩者的中心不在同一個(gè)垂線(xiàn)上,則 會(huì)使得 機(jī)器人在旋轉(zhuǎn)的時(shí)候所計(jì)算得到的信息 是實(shí)際值的一個(gè)分量,并且這個(gè)分量不是線(xiàn)性的,無(wú)法對(duì)其進(jìn)行矯正 。因此,必須在安裝上盡量保證從動(dòng)輪連線(xiàn)的中心點(diǎn)和主動(dòng)輪連線(xiàn)的中心點(diǎn)在同一垂線(xiàn)上。理想的安裝方式 的 示意 圖 如圖 44 所示: 主動(dòng)輪從動(dòng)輪 圖 44 編碼器的安裝要求 另外,該定位算法對(duì)編碼器的采樣頻率也有要求 。理論上來(lái)說(shuō), 采樣頻率越高,積分越準(zhǔn)確。 但是,由于整個(gè)計(jì)算 過(guò)程中,不管是使用定點(diǎn)數(shù)還是浮點(diǎn)數(shù)運(yùn)算,都會(huì)產(chǎn)生計(jì)算精度的損失,因此采樣頻率不能太高,當(dāng)然也不能太低。一般保證每次采樣的時(shí)候,編碼器的 變化量為 10 左右 。 編碼器參數(shù)矯正 由于安裝、工藝、測(cè)量等原因,導(dǎo)致編碼器上的一些參數(shù)存在誤差。主要表現(xiàn)在 r 和 Len 的 值不準(zhǔn)。為了得到精確的定位信息,必須對(duì)這兩個(gè)參數(shù)進(jìn)行矯正。 矯正的過(guò)程中應(yīng) 該 先矯正 r 再矯正 Len。 18 先手推機(jī)器人,保證其行走的路線(xiàn)是一條直線(xiàn), 再通過(guò)無(wú)線(xiàn)調(diào)試系統(tǒng)記錄其軌跡,通過(guò)其軌跡的形狀,來(lái)調(diào)整兩邊的 r 值 。如果發(fā)現(xiàn)軌跡是向左的弧線(xiàn),則說(shuō)明左邊的從動(dòng)輪的半徑比右邊小,需要增大左邊的值;如果是向右的弧線(xiàn),處理方式類(lèi)似。 直到調(diào)試系統(tǒng)記錄的軌跡為直線(xiàn)為止。 接下來(lái)等比例放大 (縮小 )兩個(gè) r 值,直到其調(diào)試系統(tǒng)上反映的機(jī)器人所走的長(zhǎng)度和實(shí)際長(zhǎng)度相同位置。 完成對(duì)從動(dòng)輪半徑的矯正之后,需要對(duì)其中心距進(jìn)行矯正。 用手推機(jī)器人,保證機(jī)器人作旋轉(zhuǎn)運(yùn)動(dòng),旋轉(zhuǎn)足夠大的角度之后 (一般是 10圈 ),對(duì)比調(diào)試系統(tǒng) 上記錄的值和實(shí)際機(jī)器人所旋轉(zhuǎn)的角度值,通過(guò)差量的正負(fù)和機(jī)器人的旋轉(zhuǎn)方向,對(duì)中心距 Len 進(jìn)行矯正 。 實(shí)驗(yàn)證明,經(jīng)過(guò)參數(shù)矯正后的機(jī)器人,在沒(méi)有受到嚴(yán)重撞擊的情況下,可以正常行走 10 個(gè)島。 累計(jì)誤差的消除 由于系統(tǒng)的所有定位信息都是由編碼器的值來(lái)確定的,雖然對(duì)編碼器的參數(shù)進(jìn) 行了矯正,但是誤差仍然是存在的, 在長(zhǎng)時(shí)間的工作之后,累計(jì)誤差會(huì)導(dǎo)致機(jī)器人無(wú)法正常定位 。為了保證機(jī)器人能夠長(zhǎng)時(shí)間的 工作 ,需要想辦法消除或者減少累計(jì)誤差。 要修正累計(jì)誤 差,必須依靠一些事先知道的 “絕對(duì) ”信息 [17]。在本次比賽中,可以事先知道的是每個(gè)島的位置和自動(dòng)區(qū)外圍木欄的角度。 可以利用這些信息對(duì)機(jī)器人的定位信息