荊欣蕊,張前進(jìn)
(河南理工大學(xué),河南 焦作 454003)
眾所周知,位置感知在人們的日常生活中扮演著一個(gè)重要角色。那么如何實(shí)現(xiàn)對(duì)人和物的實(shí)時(shí)定位、高精度定位以及穩(wěn)定定位便成了一個(gè)熱門研究方向。室內(nèi)機(jī)器人、AGV 小車、醫(yī)院、停車場(chǎng)等設(shè)備以及場(chǎng)所也對(duì)定位有著相當(dāng)高的要求。文中以小車為結(jié)構(gòu)載體,設(shè)計(jì)了一款基于柵格地圖與路徑規(guī)劃的室內(nèi)定位小車。
本系統(tǒng)由小車部分和上位機(jī)部分兩大部分組成。小車部分作為主要的控制對(duì)象主要完成按照上位機(jī)規(guī)劃的路徑坐標(biāo)信息進(jìn)行移動(dòng)的任務(wù),然后通過DW1000 定位芯片實(shí)時(shí)測(cè)量運(yùn)動(dòng)中小車與基站間的距離信息并傳輸給上位機(jī);上位機(jī)完成的工作主要包括按照實(shí)際情況制作等比例的柵格地圖、在制作的地圖上可以實(shí)時(shí)顯示小車的當(dāng)前位置并且可以放置障礙和目標(biāo)點(diǎn),按照小車的當(dāng)前位置和設(shè)置的目標(biāo)點(diǎn)尋找最優(yōu)路徑并通過串口發(fā)送給小車。系統(tǒng)總體設(shè)計(jì)框圖如圖1 和2 所示。

圖1 小車控制設(shè)計(jì)框圖
本設(shè)計(jì)采用ST 公司的STM32F103 作為中央處理器,它的功耗很低,具有32 位ARM Cortex-M3 結(jié)構(gòu),有著高達(dá)64kB 的SRAM 和512kB 的FLASH、多個(gè)豐富的定時(shí)器(2 個(gè)基本定時(shí)器、2 個(gè)高級(jí)定時(shí)器以及4 個(gè)通用定時(shí)器)等,是一款性價(jià)比極其強(qiáng)悍的芯片,因此我們選擇了它作為我們的中央處理芯片。
L298N 也是ST 公司的產(chǎn)品,其內(nèi)容包含了4 通道邏輯驅(qū)動(dòng)電路,含有兩個(gè)H 橋的高電壓大電流雙全橋式驅(qū)動(dòng)器,來接收標(biāo)準(zhǔn)的TTL 邏輯電平信號(hào),而且還可以驅(qū)動(dòng)46V、2A 以下的電機(jī),使用PWM 信號(hào)即可實(shí)現(xiàn)電機(jī)的調(diào)速。本設(shè)計(jì)中該模塊主要完成控制小車移動(dòng)的工作。

圖2 上位機(jī)控制設(shè)計(jì)框圖
藍(lán)牙模塊是指具有用于短距離無線通信藍(lán)牙功能的集成電路。本設(shè)計(jì)中使用的藍(lán)牙模塊為ATK-HC05-V11。該模塊具有主從一體的特性,可以同多種攜帶藍(lán)牙功能的智能終端匹配,性價(jià)比極高。且該模塊使用方便,易于操作,因此選擇其作為無線通訊的一種方式。
DW1000 單片無線收發(fā)芯片,是基于超寬帶技術(shù),支持實(shí)時(shí)定位系統(tǒng)中的物體,在室內(nèi)精度為10cm,功耗低,電池可以支持長(zhǎng)時(shí)間的運(yùn)行,在本設(shè)計(jì)中該模塊的主要作用是完成對(duì)小車的定位功能。
GY-901 模塊由精度很高的陀螺儀、地磁場(chǎng)傳感器和加速度計(jì)組成,它采用了高性能的微處理器和先進(jìn)的動(dòng)力學(xué)結(jié)算與卡爾曼濾波算法,可以快速求解出實(shí)時(shí)運(yùn)動(dòng)姿態(tài),而且穩(wěn)定性很高。在本設(shè)計(jì)中該模塊的主要功能是實(shí)時(shí)檢測(cè)小車的姿態(tài),來控制小車走直線。
3.1.1 下位機(jī)開發(fā)軟件是KeilμVision5
KeilμVision5 是美國(guó) Keil Software 公司開發(fā)的產(chǎn)品,它是KeilμVision 的第5 代產(chǎn)品。它不僅支持C 語言編寫,而且也為宏匯編等提供了完整的開發(fā)方案。作為新一代的嵌入式編程軟件,KeilμVision5 為開發(fā)人員提供了簡(jiǎn)易的開發(fā)方式,極大提高了開發(fā)人員的開發(fā)效率。
3.1.2 上位機(jī)開發(fā)軟件——Qt Creator
Qt Creator 是跨平臺(tái)的Qt IDE,是Qt 被Nokia 收購(gòu)后推出的一款新的輕量級(jí)集成開發(fā)環(huán)境(IDE)。此IDE不僅可以跨平臺(tái)運(yùn)行,而且支持的系統(tǒng)包括Linux、Mac OS X 以及Windows。本設(shè)計(jì)中利用這個(gè)軟件來完成開發(fā)任務(wù)。
下位機(jī)主要由小車和測(cè)距組成。小車的程序框圖如圖3 所示。小車調(diào)速是用的PWM 調(diào)速,PWM 又稱脈沖寬度調(diào)制(Pulse Width Modulation),是一種在輸出信號(hào)周期(使能輸出周期和非使能周期的總和)不變的情況下,改變使能輸出信號(hào)的周期和非使能周期,即改變使能輸出周期占輸出信號(hào)周期比例的大小,從而控制輸出功率的方法,就是通過改變脈沖的占空比D=t/T,就可以改變電機(jī)的轉(zhuǎn)速。測(cè)距部分程序框圖如圖4 所示。本設(shè)計(jì)中的DW1000 測(cè)距采用的是雙向測(cè)距(double-sided Two-way Ranging)。

圖3

圖4
通過下位機(jī),我們將DWM1000 模塊測(cè)量的距離信息封裝成幀通過串口發(fā)送給上位機(jī)在接收到數(shù)據(jù)后需要根據(jù)協(xié)議將每個(gè)基站間的距離和標(biāo)簽到基站的距離都計(jì)算出來,然后繪制柵格地圖,我們需根據(jù)串口的位置信息在柵格地圖中顯示出來。
我們已知由基站0 到基站1 的距離,標(biāo)簽到基站0 的距離,標(biāo)簽到基站1 的距離組成的三角形各邊的邊長(zhǎng)和由基站0 到基站2 的距離,標(biāo)簽到基站0 的距離,標(biāo)簽到基站2 的距離組成的三角形各邊的邊長(zhǎng),如圖5 所示,則我們就可以通過海倫公式將小車的坐標(biāo)實(shí)時(shí)展現(xiàn)出來。然后用A*算法進(jìn)行路徑規(guī)劃,A*算法經(jīng)常應(yīng)用于路徑查找和圖形遍歷,它有較好的性能和準(zhǔn)確度。A*算法過程是首先遍歷起點(diǎn)周圍鄰近的點(diǎn),再遍歷已經(jīng)遍歷過點(diǎn)的鄰近點(diǎn),然后按照這個(gè)過程逐步向外擴(kuò)散,直到通過遍歷找到終點(diǎn)。當(dāng)上位機(jī)搜索完路徑后,我們需要將規(guī)劃的路徑坐標(biāo)發(fā)送給下位機(jī),讓小車去執(zhí)行。

圖5
本文通過對(duì)目前主流的室內(nèi)技術(shù)進(jìn)行比較與分析,并對(duì)超寬帶定位技術(shù)的定位方法和定位算法進(jìn)行了研究;對(duì)目前的定位算法進(jìn)行了分析和比較,并使用A*算法對(duì)路徑進(jìn)行規(guī)劃。但是定位技術(shù)和路徑規(guī)劃技術(shù)是綜合諸多學(xué)科的技術(shù),本文對(duì)其的研究尚存不足。在后續(xù)的學(xué)習(xí)工作中,將在超寬帶定位技術(shù)和優(yōu)化A*算法方面進(jìn)一步探究,做更深層次的研究與學(xué)習(xí)。