ATmega16與PC機(jī)的移動(dòng)機(jī)器人定位系統(tǒng)研究
引言
移動(dòng)機(jī)器人定位系統(tǒng)的可靠性決定機(jī)器人工作的可靠度。目前,機(jī)器人定位系統(tǒng)的通信多使用串口通信的方式。串口通信速度較慢,通信正確率波動(dòng)較大,且易受干擾。所以定位系統(tǒng)以CAN總線作為橋梁,使AVR與PC機(jī)能快速通信,有機(jī)結(jié)合,功能互補(bǔ)。AVR單片機(jī)ATmega16做底層數(shù)據(jù)采集有它簡單性與廉價(jià)性的特點(diǎn)。ATmega16與PC連為一體的系統(tǒng)設(shè)計(jì)又使系統(tǒng)有較好的兼容性,基于PC平臺(tái)的機(jī)器人其他程序可以較好地融合進(jìn)來,通用性較好。定位系統(tǒng)所用定位航跡算法是用光纖陀螺儀感應(yīng)機(jī)器人角度變化,被動(dòng)光電碼盤計(jì)算機(jī)器人坐標(biāo)位置;超聲波傳感器在有標(biāo)記位置消除定位誤差,起輔助定位作用。
1 傳感器數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì) 光纖陀螺儀、被動(dòng)光電碼盤和超聲波傳感器輸出數(shù)據(jù)由ATmega16的I/O口PA1讀入,如圖1所示。
圖1 基于ATmega16的數(shù)據(jù)采集節(jié)點(diǎn)
數(shù)據(jù)經(jīng)ATmega16處理后通過CANL及CANH[12]接口將數(shù)據(jù)傳送給PC節(jié)點(diǎn),如圖2所示。
圖2 CAN總線與PC機(jī)數(shù)據(jù)接口
2 定位算法
2.1 航跡推算
設(shè)機(jī)器人形體中心當(dāng)前位置為點(diǎn)p0(x0,y0,θ0),在Δt時(shí)間內(nèi)移動(dòng)到點(diǎn)p1(x1,y1,θ1);θ1是機(jī)器人從x0到x1的角度增量,是陀螺儀在Δt內(nèi)測量得到的;Δt時(shí)間內(nèi)被動(dòng)碼盤計(jì)量的位移為L;機(jī)器人轉(zhuǎn)彎半徑設(shè)為R,O為轉(zhuǎn)彎中心。圖3(a)中,機(jī)器人走直線,這種情況比較簡單。
圖3 基于碼盤+陀螺儀的定位算法
其坐標(biāo)變換如下[3]:
圖3(b)中,機(jī)器人走曲線的情況,其航跡推算如下:
2.2 超聲波輔助定位算法
超聲波傳感器放置在機(jī)器人的前端,如圖4所示。CAN總線的數(shù)據(jù)傳輸方式使添加超聲波傳感器數(shù)據(jù)采集節(jié)點(diǎn)方便可行,不需要改變其他數(shù)據(jù)采集點(diǎn)的程序。
相關(guān)推薦
-
guokaibo666 | 2011-12-12
-
jackwang | 2006-09-17
-
-
jackwang | 2006-09-17
-
-
guokaibo666 | 2011-12-12
評論