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