洪櫻+馮潔瑜+盧學榮+李忻儀
【摘要】 本文針對智能學步機的基本載體——避障小車功能的不足, 對智能學步機進行算法設計及其優化, 以完善學步機功能及實現功能的多樣化。
【關鍵詞】 智能學步機 算法設計 優化
引言:作為移動機器人的一種,自動避障小車發展迅猛,其內容涵蓋計算機,自動控制,電子,機械等學術領域,且廣泛應用于冶金,交通,國防等生活和軍事領域,具有良好的民用和軍用的發展前景[3]。 根據避障小車迅猛的發展狀況,我們也將它應用于民用領域,將其作為我們所要開發的智能學步機的載體。然而,避障小車所擁有的功能是很有限的,僅僅是遇到障礙物就進行躲開。針對這種情況,我們對避障小車的功能進行優化,及進行新的算法設計,在我們本身的算法的基礎上,我們還可以進行算法的優化,以完善學步機的功能和實現功能的多樣性。
一、智能學步機的基本算法設計
1、直線算法。對于學步機而言,要使其走直線,不需要學步機的避障版塊,即超聲波測距版塊,只需要保持其方向不變,一直向前走即可,此時保持兩邊的車輪的速度保持一定不改變。2、轉彎算法。對于學步機而言,要使其轉彎,不需要學步機的避障版塊, 即超聲波測距版塊,只需要使學步機兩邊輪子的車速不同即可。例如,向右轉時使學步機左邊的輪子速度大于右邊輪子速度,否則左轉。這里利用了雙輪差速驅動原理[2]。3、走圓算法。事實上,走圓算法是轉彎算法的升級版,當保持兩邊輪子的速度差相同且速度不改變時,即可使其不停地轉彎,這個不停轉彎的過程將會構成多個圓。這仍然是使用了雙圓差速驅動原理,利用兩個獨立的輪子實現運動, 這個方法雖然簡單,但很容易控制。它甚至可以實現半徑為 0 的原地轉動。然而在實現走圓算法時,必須要使速度較快,否則,學步機沒轉彎一次將會停頓一次,造成不連續的結果,也就不能成為真正意義上的圓。4、避障算法。對學步機而言,要實現避障算法,我們需要超聲波測距模塊。我們的智能學步機使用了四個超聲波模塊,通過超聲波傳感器網前后左右四個方向將超聲波振動信號向外發射出去,遇到障礙物后發生反射,接收器在接收到反射回來的超聲波以后,通過轉換器將其轉換為脈沖信號[1]。該信號通過 STM32 單片機處理以后轉化為一個值并與預定值相比較,然后做出后續動作。我們需根據學步車的運動環境給他設定一個參考值,考慮到學步機要帶領嬰幼兒學步的安全性,該設定值不能過小,否則當嬰幼兒運動過于激烈時難以控制自身運動撞擊到障礙物而受傷。在設定參考值后,我們即可使用該參考值與超聲波測出的距離相比較。實際上,避障的原理為: 當前方的距離值大于預設參考值時, 直線前行;當前方出現障礙物, 且距離值小于預設參考值時, 小調用停車程序將學步機暫停,此時比較左右后三個方向的距離值與預設值,當左右后距離值有至少一個大于預設參考值時,對左右后值進行比較,選擇距離值大的方向前進。 當左右距離值均小于預設參考值時,學步機直線后退,直接讓嬰幼兒抓住。
二、智能學步機的算法優化
1、一種“由下而上”的隨機算法。在前面我們已經實現了幾個基本的算法,為了減少實時控制已經增加小車運動軌跡的多樣性,我們將幾個不使用避障模塊的算法封裝起來,用一個隨機函數將其控制,成為一個走隨機動作的功能。
2、走圓算法的優化。在生物界中,我們常常可以觀察到一些關于蜜蜂的奇特的現象——蜜蜂常常咋空中飛出一個“ 8”字形,由此得到啟發,我們是否也可以讓學步機像蜜蜂一樣跳起“ 8”字舞呢?由數字 8 我們可以聯想到兩個圓拼接在一起。事實上, 要實現“ 8 字舞”算法,我們必須讓學步機學會分別以順時針和逆時針的方向轉動[2]。這是因為構成數字 8 的兩個圓實際上式兩個不同的圓,它們轉動的方向恰好相反。在學會兩個方向以后,學步機需要在順時針轉動一段特定的時間后切換到逆時針方向,反之亦然。如此,我們即可在走圓算法的基礎上升級為走“ 8 字舞”。
3、避障算法的優化。在前面的避障算法中我們可以發現,超聲波測距是無差別的,也就是說,在超聲波看來, 人和別的障礙物時無區別的。這就看出了我們的產品僅應用超聲波測距的缺陷所在。學步機使得的對象是人,因而它需要將人與其它障礙物區分開來。
為了解決上述問題,我們加入了紅外模塊。堅持以“人”為本的觀點,我們需先使用紅外測出人再使用超聲波模塊測出其它障礙物的距離。再根據紅外的形狀——呈半圓形,我們使用了一個紅外與其它超聲波測距相互結合。其中兩者相結合的方法為:紅外一直開啟,當紅外檢測到有人動物時,就開啟超聲波進行探測,然后比較四個超聲波傳感器傳回來的距離值,往距離值最短的那個超聲波傳感器的反方向躲避。
結語:本文探討和實現了一些基本的智能學步機的算法,并在一定程度上將其升級和優化. 然后可實現的算法和功能還有很多,本文實現和優化的算法很有限,因而對于學步機的算法實現這一模塊, 我們仍然繼續探討和研究,學無止境!
參 考 文 獻
[1] 王化祥, 張淑英. 傳感器原理及應用 [M]. 天津: 天津大學出版社, 2004.
[2] 謝曉石. 機器人走“ 8 字舞”例析 [J]. 實驗教學與儀器, 2015(1): 62-63.
[3] 趙津, 朱三超. 基于 Arduino 單片機的智能避障小車設計 [J]. 自動化與儀表, 2013, 28(5): 1-4.