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