ATmega16與PC機的移動機器人定位系統研究
圖4 超聲波傳感器定位
根據余弦定理
所以有
其中θ′表示機器人位置相當地標1的角度變化。地標的位置在機器人運行軌跡的兩側。在機器人軌跡有2處定位誤差校正點。這些地標位置確定,當機器人靠近地標時,可以用公式(10)求機器人精確坐標。
3 算法實現步驟
Step1: ATmega16采集光纖陀螺儀數據,總線傳輸數據。
Step2: 采集被動碼盤數據,數據發送至CAN總線。
Step3: PC機接收陀螺及碼盤數據,根據2.1節算法進行機器人定位運算;是否接受超聲波傳感器數據,接受超聲波數據程序轉Step4,不接受超聲波校正數據程序轉至Step1。
Step4: 接受超聲波傳感器數據,進行定位誤差校正;根據第2節算法,修正移動機器人定位誤差,程序轉Step1。
4 實驗結果及分析4.1 數據來源 機器人實驗場地為地板磚地面。實驗場地坐標及場地中地標位置如圖5所示。在“*”位置進行定位誤差校正。
圖5 實驗場地坐標
4.2 結果分析
在上述工作場地用兩種不同的定位系統分別作了20次定位實驗:定位系統1為單片機與PC間通信采用串口通信方式;定位系統2為本文所設計定位系統結果如表1所列。
表1 兩種定位系統定位結果對比
兩種定位方法因為實驗相同的定位算法,所以定位精度沒有太大區別。機器人在使用定位系統2的軟、硬件進行定位時20次實驗成功率100%;而定位系統1成功率只有90%,有兩次機器人飛車。
結語
本文詳細闡述了基于ATmega16和PC機的移動機器人定位系統的電路與定位算法。基于CAN總線的定位系統工作的機器人能較可靠運行;根據需要可以方便增添傳感器節點,而不改動其他節點程序。
評論