張磊,蔣剛,肖志峰,葉登金
(西南科技大學制造科學與工程學院,綿陽621010)
移動機器人定位系統(tǒng)的可靠性決定機器人工作的可靠度。目前,機器人定位系統(tǒng)的通信多使用串口通信的方式。串口通信速度較慢,通信正確率波動較大,且易受干擾。所以定位系統(tǒng)以CAN總線作為橋梁,使AVR與PC機能快速通信,有機結合,功能互補。AVR單片機AT-mega16做底層數(shù)據(jù)采集有它簡單性與廉價性的特點。ATmega16與PC連為一體的系統(tǒng)設計又使系統(tǒng)有較好的兼容性,基于PC平臺的機器人其他程序可以較好地融合進來,通用性較好。定位系統(tǒng)所用定位航跡算法是用光纖陀螺儀感應機器人角度變化,被動光電碼盤計算機器人坐標位置;超聲波傳感器在有標記位置消除定位誤差,起輔助定位作用。
圖1 基于ATmega16的數(shù)據(jù)采集節(jié)點
光纖陀螺儀、被動光電碼盤和超聲波傳感器輸出數(shù)據(jù)由ATmega16的I/O口PA 1讀入,如圖1所示。
數(shù)據(jù)經(jīng)AT-mega16處理后通過CANL及CANH[1-2]接口將數(shù)據(jù)傳送給PC節(jié)點,如圖2所示。
圖2 CAN總線與PC機數(shù)據(jù)接口
設機器人形體中心當前位置為點p0(x0,y0,θ0),在Δt時間內移動到點p1(x1,y1,θ1);θ1是機器人從x0到x1的角度增量,是陀螺儀在Δt內測量得到的;Δt時間內被動碼盤計量的位移為L;機器人轉彎半徑設為R,O為轉彎中心。圖3(a)中,機器人走直線,這種情況比較簡單。
圖3 基于碼盤+陀螺儀的定位算法
其坐標變換如下[3]:
圖3(b)中,機器人走曲線的情況,其航跡推算如下:
當然根據(jù)轉彎方向的不同,式(8)有所不同。式(8)可更改為:
超聲波傳感器放置在機器人的前端,如圖4所示。CAN總線的數(shù)據(jù)傳輸方式使添加超聲波傳感器數(shù)據(jù)采集節(jié)點方便可行,不需要改變其他數(shù)據(jù)采集點的程序。
圖4 超聲波傳感器定位
根據(jù)余弦定理
其中θ′表示機器人位置相當?shù)貥?的角度變化。地標的位置在機器人運行軌跡的兩側。在機器人軌跡有2處定位誤差校正點。這些地標位置確定,當機器人靠近地標時,可以用公式(10)求機器人精確坐標。
Step1:ATmega16采集光纖陀螺儀數(shù)據(jù),總線傳輸數(shù)據(jù)。
Step2:采集被動碼盤數(shù)據(jù),數(shù)據(jù)發(fā)送至CAN總線。
Step3:PC機接收陀螺及碼盤數(shù)據(jù),根據(jù)2.1節(jié)算法進行機器人定位運算;是否接受超聲波傳感器數(shù)據(jù),接受超聲波數(shù)據(jù)程序轉Step4,不接受超聲波校正數(shù)據(jù)程序轉至Step1。
Step4:接受超聲波傳感器數(shù)據(jù),進行定位誤差校正;根據(jù)第2節(jié)算法,修正移動機器人定位誤差,程序轉Step1。
機器人實驗場地為地板磚地面。實驗場地坐標及場地中地標位置如圖5所示。在“*”位置進行定位誤差校正。
圖5 實驗場地坐標
在上述工作場地用兩種不同的定位系統(tǒng)分別作了20次定位實驗:定位系統(tǒng)1為單片機與PC間通信采用串口通信方式;定位系統(tǒng)2為本文所設計定位系統(tǒng)結果如表1所列。
表1 兩種定位系統(tǒng)定位結果對比
兩種定位方法因為實驗相同的定位算法,所以定位精度沒有太大區(qū)別。機器人在使用定位系統(tǒng)2的軟、硬件進行定位時20次實驗成功率100%;而定位系統(tǒng)1成功率只有90%,有兩次機器人飛車。
本文詳細闡述了基于ATmega16和PC機的移動機器人定位系統(tǒng)的電路與定位算法?;贑AN總線的定位系統(tǒng)工作的機器人能較可靠運行;根據(jù)需要可以方便增添傳感器節(jié)點,而不改動其他節(jié)點程序。
[1]凌威,趙向陽.AVR單片機的CAN總線分析儀設計[J].單片機與嵌入式系統(tǒng)應用,2008(9):54-57.
[2]范偉成,王文良,沈孟良.基于ATmega128單片機的CAN總線接口設計及應用[J].測控技術,2008,27(10):48-50.
[3]王曉娟.基于多傳感器信息的移動機器人定位研究[D].杭州:浙江大學,2010.