茍淞 周加樂(lè) 劉宏
摘 要:本設(shè)計(jì)采用Arduino和STM32單片機(jī)最小系統(tǒng),運(yùn)用光電和運(yùn)動(dòng)姿態(tài)傳感器,結(jié)合PID自動(dòng)控制算法和A*路徑規(guī)劃算法,通過(guò)設(shè)計(jì)系統(tǒng)運(yùn)行的總體框架,開(kāi)發(fā)出了一款在具有基本自主循跡功能的基礎(chǔ)上,結(jié)合了路徑規(guī)劃能力的智能循跡車。通過(guò)在競(jìng)賽中實(shí)際檢驗(yàn),本設(shè)計(jì)實(shí)現(xiàn)了在迷宮地圖中的全場(chǎng)定位以及路徑規(guī)劃中的預(yù)設(shè)巡航行駛和最短路徑行駛的功能,并達(dá)到了較佳的控制效果。本設(shè)計(jì)方案亦可作為相關(guān)機(jī)器人競(jìng)賽項(xiàng)目的基礎(chǔ)參考方案。
關(guān)鍵詞:智能循跡車;路徑規(guī)劃;A*算法;Arduino;STM32
中圖分類號(hào):TP23 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2018)22-0092-02
Abstract: This design adopts Arduino and STM32 single chip microcomputer minimum system, uses photoelectric and motion attitude sensor, combines PID automatic control algorithm and A* path planning algorithm, through the design of the overall framework of the system operation, and based on the basic autonomous tracking function, an intelligent tracking vehicle is developed, which combines the ability of path planning. Through the actual test in the competition, this design realizes the full field positioning in the labyrinth map and the preset cruising and the shortest path driving in the path planning, and achieves the better control effect. This design scheme can also be used as the basic reference scheme of the related robot competition projects.
Keywords: intelligent tracking vehicle; path planning; A* algorithm; Arduino; STM32
引言
在近年來(lái)的各類機(jī)器人比賽中,智能循跡車因其具有技術(shù)性、競(jìng)技性和創(chuàng)新性,而成為了一個(gè)熱門(mén)項(xiàng)目。智能循跡車系統(tǒng)結(jié)合傳感器學(xué)、自動(dòng)控制、嵌入式、路徑規(guī)劃技術(shù)等于一體,集成程度高,使用的算法較為多樣,能夠體現(xiàn)開(kāi)發(fā)者的創(chuàng)新水平。路徑規(guī)劃技術(shù)是循跡車自主導(dǎo)航行駛的核心技術(shù),運(yùn)用了該技術(shù)的智能循跡車或自走機(jī)器人可以按程序設(shè)定完成規(guī)定路徑巡航和自主探索兩點(diǎn)之間的最短路徑等任務(wù)。在眾多的移動(dòng)機(jī)器人路徑規(guī)劃算法中,A*算法[1]已得到廣泛應(yīng)用、驗(yàn)證以及推廣。本設(shè)計(jì)結(jié)合循跡控制和路徑規(guī)劃,運(yùn)用了PID控制算法[2]、運(yùn)動(dòng)傳感器姿態(tài)解算[3]、全場(chǎng)定位和A*路徑規(guī)劃,綜合達(dá)到了預(yù)期控制效果。
1 智能循跡車設(shè)計(jì)分析
1.1 智能循跡車設(shè)計(jì)要求
設(shè)計(jì)智能小車實(shí)現(xiàn)能夠在白色底黑色線(25mm寬)地圖上以自動(dòng)循跡行駛為基礎(chǔ),完成按任意預(yù)設(shè)路徑巡航行駛和探索兩點(diǎn)間最短路徑行駛的任務(wù)。地圖如圖1。
1.2 智能循跡小車硬件組成
1.2.1 微控制器
本設(shè)計(jì)使用Arduino Mega 2560為主控制器,這是一款主頻16MHz的8位AVR核心處理器,主要負(fù)責(zé)循跡控制和路徑規(guī)劃控制。輔助處理器選用了STM32F103T8,ARM 32-bit CortexTM-M3內(nèi)核,主頻72MHz,憑借其較快的運(yùn)算速度,負(fù)責(zé)解算姿態(tài)傳感器得到的數(shù)據(jù),并將解算得到的最新姿態(tài)數(shù)據(jù)通過(guò)串口通信的方式發(fā)送給Arduino Mega 2560。
1.2.2 傳感器
根據(jù)設(shè)計(jì)需求選用兩種類型的傳感器,一類是用于檢測(cè)白底黑線地圖的紅外傳感器;另一類是獲取智能小車即時(shí)方向姿態(tài)的HMC5883地磁傳感器。
(1)紅外反射傳感器采用6個(gè)TCRT5000組成的橫排陣列,通過(guò)6個(gè)傳感器返回的不同數(shù)值組合,進(jìn)行循跡運(yùn)動(dòng)的PID控制和路徑規(guī)劃的節(jié)點(diǎn)識(shí)別和判斷。
(2)HMC5883模塊包括先進(jìn)的HMC118X系列磁阻傳感器,附帶霍尼韋爾專利的集成電路包括放大器、自動(dòng)消磁驅(qū)動(dòng)器、偏差校準(zhǔn)、能使羅盤(pán)精度控制在1到2度,為智能小車在路徑規(guī)劃中提供精確的方向數(shù)據(jù)。
聯(lián)合上述兩類傳感器數(shù)據(jù),實(shí)現(xiàn)了智能循跡車在地圖上的全場(chǎng)定位。
1.2.3 驅(qū)動(dòng)部分
智能小車采用三角底盤(pán)布置,前萬(wàn)向輪,后兩輪獨(dú)立驅(qū)動(dòng),L298N驅(qū)動(dòng)兩個(gè)直流減速電機(jī),通過(guò)雙H橋電路,實(shí)現(xiàn)由Arduino Mega 2560發(fā)送的PWM信號(hào)來(lái)調(diào)節(jié)左右電機(jī)的轉(zhuǎn)速,加以增量式PID控制算法,從而控制智能循跡車的運(yùn)動(dòng)。
1.3 系統(tǒng)運(yùn)行總體構(gòu)架
根據(jù)智能循跡車的基本功能,設(shè)計(jì)了如下系統(tǒng)運(yùn)行框架,如圖2所示。
2 路徑規(guī)劃
路徑規(guī)劃技術(shù)需建立在以下三大條件的基礎(chǔ)上:第一要建立地圖模型;第二要獲取自身即時(shí)位置坐標(biāo);第三有合理的路徑規(guī)劃算法支持。在本設(shè)計(jì)中,路徑規(guī)劃根據(jù)其功能分為按預(yù)設(shè)路徑行駛和按最短路徑行駛。
2.1 按預(yù)設(shè)路徑巡航行駛
此功能的實(shí)現(xiàn),需要小車通過(guò)地圖信息以及傳感器數(shù)據(jù)進(jìn)行全場(chǎng)定位。智能小車遍歷地圖全局,從地圖左下角到右上角,將讀取到的信息構(gòu)建二維數(shù)組a[11][9]存儲(chǔ)地圖節(jié)點(diǎn)(黑線橫縱交點(diǎn)記為一個(gè)節(jié)點(diǎn))信息,根據(jù)地圖實(shí)際情況一共記錄了78個(gè)有效節(jié)點(diǎn)。
按預(yù)設(shè)路徑行駛流程:首先以不同標(biāo)志位代表小車的前進(jìn)、左轉(zhuǎn)、右轉(zhuǎn)和調(diào)頭的操作,將預(yù)設(shè)路徑按預(yù)設(shè)順序的標(biāo)志位數(shù)組存儲(chǔ)。其次,小車通過(guò)記錄節(jié)點(diǎn)序號(hào)和小車指向數(shù)據(jù)進(jìn)行全場(chǎng)定位,實(shí)現(xiàn)節(jié)點(diǎn)與數(shù)組中的標(biāo)志位一一對(duì)應(yīng),從而實(shí)現(xiàn)按預(yù)設(shè)路徑行駛。
2.2 按最短路徑行駛(A*算法)
本設(shè)計(jì)中的智能機(jī)器車最短路徑行駛部分實(shí)際運(yùn)用了A*算法。A*算法是一種靜態(tài)路網(wǎng)中求解最短路徑最有效的直接搜索方法,使用評(píng)價(jià)函數(shù)f(n)=g(n)+h(n)考察節(jié)點(diǎn)n的代價(jià), f(n)代表從起始節(jié)點(diǎn)經(jīng)節(jié)點(diǎn)n到目標(biāo)節(jié)點(diǎn)的路徑長(zhǎng)度估計(jì);g(n)代表從起始節(jié)點(diǎn)到達(dá)當(dāng)前節(jié)點(diǎn)的實(shí)際路徑長(zhǎng)度;h(n)代表從節(jié)點(diǎn)n到達(dá)目標(biāo)節(jié)點(diǎn)的最短路徑。算法實(shí)現(xiàn)的程序中,用OPEN列表存放新生成的節(jié)點(diǎn),CLOSE列表存放將要拓展和已拓展的節(jié)點(diǎn)。求解最短路徑程序流程圖如圖3所示。
3 結(jié)束語(yǔ)
智能循跡車采用Arduino和STM32單片機(jī)作為控制核心,輔以光電傳感器和運(yùn)動(dòng)姿態(tài)傳感器,達(dá)到了設(shè)計(jì)目的。本文重點(diǎn)分析了智能循跡車中路徑規(guī)劃的實(shí)現(xiàn)方案,對(duì)A*算法的具體應(yīng)用流程進(jìn)行了總結(jié),在循跡基礎(chǔ)功能上,實(shí)現(xiàn)了全場(chǎng)定位、按預(yù)設(shè)路徑巡航和最短路徑探索。通過(guò)在競(jìng)賽中對(duì)該設(shè)計(jì)進(jìn)行應(yīng)用和驗(yàn)證,進(jìn)一步證實(shí)了本設(shè)計(jì)方案具有一定的基礎(chǔ)性和通用性。
參考文獻(xiàn):
[1]Hart P, Nilsson N, Raphael B. A Formal Basis for the Heuristic Determination of Minimum Cost Paths[J]. IEEE Transactions on Systems Science and Cybernetics,1968,4(2):100-107.
[2]曹平軍,曲林偉,王強(qiáng),等.某驅(qū)動(dòng)步進(jìn)電動(dòng)機(jī)增量PID控制研究[J].艦船電子工程,2017,37(08):162-164.
[3]王孚貴,朱兆優(yōu),李星,等.基于STM32的MPU9255姿態(tài)解算算法的實(shí)現(xiàn)[J].電子世界,2017(22):69+71.
[4]李陽(yáng),盧健,何耀幀.基于ROS系統(tǒng)自主路徑規(guī)劃與避障小車的研究[J].科技風(fēng),2018(04):248.
[5]范縣成,孫新柱,房穩(wěn),等.迷宮機(jī)器人走迷宮算法仿真設(shè)計(jì)[J].安徽工程大學(xué)學(xué)報(bào),2017,32(01):44-49.