荊欣蕊,張前進
(河南理工大學,河南 焦作 454003)
眾所周知,位置感知在人們的日常生活中扮演著一個重要角色。那么如何實現(xiàn)對人和物的實時定位、高精度定位以及穩(wěn)定定位便成了一個熱門研究方向。室內(nèi)機器人、AGV 小車、醫(yī)院、停車場等設備以及場所也對定位有著相當高的要求。文中以小車為結(jié)構(gòu)載體,設計了一款基于柵格地圖與路徑規(guī)劃的室內(nèi)定位小車。
本系統(tǒng)由小車部分和上位機部分兩大部分組成。小車部分作為主要的控制對象主要完成按照上位機規(guī)劃的路徑坐標信息進行移動的任務,然后通過DW1000 定位芯片實時測量運動中小車與基站間的距離信息并傳輸給上位機;上位機完成的工作主要包括按照實際情況制作等比例的柵格地圖、在制作的地圖上可以實時顯示小車的當前位置并且可以放置障礙和目標點,按照小車的當前位置和設置的目標點尋找最優(yōu)路徑并通過串口發(fā)送給小車。系統(tǒng)總體設計框圖如圖1 和2 所示。
圖1 小車控制設計框圖
本設計采用ST 公司的STM32F103 作為中央處理器,它的功耗很低,具有32 位ARM Cortex-M3 結(jié)構(gòu),有著高達64kB 的SRAM 和512kB 的FLASH、多個豐富的定時器(2 個基本定時器、2 個高級定時器以及4 個通用定時器)等,是一款性價比極其強悍的芯片,因此我們選擇了它作為我們的中央處理芯片。
L298N 也是ST 公司的產(chǎn)品,其內(nèi)容包含了4 通道邏輯驅(qū)動電路,含有兩個H 橋的高電壓大電流雙全橋式驅(qū)動器,來接收標準的TTL 邏輯電平信號,而且還可以驅(qū)動46V、2A 以下的電機,使用PWM 信號即可實現(xiàn)電機的調(diào)速。本設計中該模塊主要完成控制小車移動的工作。
圖2 上位機控制設計框圖
藍牙模塊是指具有用于短距離無線通信藍牙功能的集成電路。本設計中使用的藍牙模塊為ATK-HC05-V11。該模塊具有主從一體的特性,可以同多種攜帶藍牙功能的智能終端匹配,性價比極高。且該模塊使用方便,易于操作,因此選擇其作為無線通訊的一種方式。
DW1000 單片無線收發(fā)芯片,是基于超寬帶技術,支持實時定位系統(tǒng)中的物體,在室內(nèi)精度為10cm,功耗低,電池可以支持長時間的運行,在本設計中該模塊的主要作用是完成對小車的定位功能。
GY-901 模塊由精度很高的陀螺儀、地磁場傳感器和加速度計組成,它采用了高性能的微處理器和先進的動力學結(jié)算與卡爾曼濾波算法,可以快速求解出實時運動姿態(tài),而且穩(wěn)定性很高。在本設計中該模塊的主要功能是實時檢測小車的姿態(tài),來控制小車走直線。
3.1.1 下位機開發(fā)軟件是KeilμVision5
KeilμVision5 是美國 Keil Software 公司開發(fā)的產(chǎn)品,它是KeilμVision 的第5 代產(chǎn)品。它不僅支持C 語言編寫,而且也為宏匯編等提供了完整的開發(fā)方案。作為新一代的嵌入式編程軟件,KeilμVision5 為開發(fā)人員提供了簡易的開發(fā)方式,極大提高了開發(fā)人員的開發(fā)效率。
3.1.2 上位機開發(fā)軟件——Qt Creator
Qt Creator 是跨平臺的Qt IDE,是Qt 被Nokia 收購后推出的一款新的輕量級集成開發(fā)環(huán)境(IDE)。此IDE不僅可以跨平臺運行,而且支持的系統(tǒng)包括Linux、Mac OS X 以及Windows。本設計中利用這個軟件來完成開發(fā)任務。
下位機主要由小車和測距組成。小車的程序框圖如圖3 所示。小車調(diào)速是用的PWM 調(diào)速,PWM 又稱脈沖寬度調(diào)制(Pulse Width Modulation),是一種在輸出信號周期(使能輸出周期和非使能周期的總和)不變的情況下,改變使能輸出信號的周期和非使能周期,即改變使能輸出周期占輸出信號周期比例的大小,從而控制輸出功率的方法,就是通過改變脈沖的占空比D=t/T,就可以改變電機的轉(zhuǎn)速。測距部分程序框圖如圖4 所示。本設計中的DW1000 測距采用的是雙向測距(double-sided Two-way Ranging)。
圖3
圖4
通過下位機,我們將DWM1000 模塊測量的距離信息封裝成幀通過串口發(fā)送給上位機在接收到數(shù)據(jù)后需要根據(jù)協(xié)議將每個基站間的距離和標簽到基站的距離都計算出來,然后繪制柵格地圖,我們需根據(jù)串口的位置信息在柵格地圖中顯示出來。
我們已知由基站0 到基站1 的距離,標簽到基站0 的距離,標簽到基站1 的距離組成的三角形各邊的邊長和由基站0 到基站2 的距離,標簽到基站0 的距離,標簽到基站2 的距離組成的三角形各邊的邊長,如圖5 所示,則我們就可以通過海倫公式將小車的坐標實時展現(xiàn)出來。然后用A*算法進行路徑規(guī)劃,A*算法經(jīng)常應用于路徑查找和圖形遍歷,它有較好的性能和準確度。A*算法過程是首先遍歷起點周圍鄰近的點,再遍歷已經(jīng)遍歷過點的鄰近點,然后按照這個過程逐步向外擴散,直到通過遍歷找到終點。當上位機搜索完路徑后,我們需要將規(guī)劃的路徑坐標發(fā)送給下位機,讓小車去執(zhí)行。
圖5
本文通過對目前主流的室內(nèi)技術進行比較與分析,并對超寬帶定位技術的定位方法和定位算法進行了研究;對目前的定位算法進行了分析和比較,并使用A*算法對路徑進行規(guī)劃。但是定位技術和路徑規(guī)劃技術是綜合諸多學科的技術,本文對其的研究尚存不足。在后續(xù)的學習工作中,將在超寬帶定位技術和優(yōu)化A*算法方面進一步探究,做更深層次的研究與學習。