2015年4月11日,第26屆江蘇省青少年科技創新大賽在宜興順利舉行。經過3天的展示、答辯、交流活動,最終,來自江蘇省錫山高級中學高三(9)班的謝超同學,以《基于航位推算法定位與深度優先遍歷的未知環境遍歷系統》斬獲本次大賽最高獎“江蘇省人民政府青少年科技創新培源獎”。謝超同學是本次大賽唯一獲此殊榮的高中生,下面就讓我們走近他的世界,看看他的研究成果是如何一點一滴地醞釀出來的。
流行歌曲《Call?Me?Maybe》的MTV講述了這樣一段有趣的故事:在明媚的陽光下,相貌英俊的男主角在自家后院的草坪上修剪草坪。他優雅地推著剪草機,就像在悠閑地散步。覺得熱了,他便脫下身上那件白色背心,露出勻稱的胸肌。這一幕恰巧被女主角瞥見,一段浪漫的愛情故事就此展開。
我們不妨換個場景:男主角在一片足球場上修剪草坪。這時,恐怕不僅女主角無法對他一見傾心,可憐的男主角也會因此愁眉苦臉,抱怨不已。
我倒是覺得,這種枯燥的工作應當由機器人來完成。也許只要給剪草機安上電池,再加個控制器來操縱它,用蛇形走法走完整個足球場就行了,反正足球場的長寬是已知的,事先設定好路線就行。
可是,如果換在未知環境中呢?要解決這個問題,其實只要解決定位和遍歷這兩大問題,接著設計一個模型車,再測試一下就OK了。
定位就是要確定模型車在未知環境中的絕對坐標和方向。
比如,常見的GPS就是一種手持定位設備,在地球上可應用于經緯度、海拔等信息的定位。你也許會想,既然GPS都可以在地球這么大的環境中定位了,那么應用在上述環境中肯定是輕而易舉的。但是,上述問題定位的精度要求相對較高,民用GPS的定位精度只有幾米,肯定沒法滿足。
不過,還有一種常見的“慣性導航”定位技術非常適合解決這個問題,這種技術被廣泛地應用于航空航天、船舶定位等精度要求高的領域。這種技術聽起來好像很厲害,但從原理上來說卻很好理解。它利用傳感器測出移動物體的加速度,再對加速度二次積分,就能推算出物體的坐標。但是,這種方法還是不可行,原因很簡單,便宜的加速度模塊精度和GPS差不了多少,能達到精度要求的模塊價格至少是五位數,而且操作很復雜。
那怎么辦呢?利用測速測向設備的推算導航,這個辦法和慣性導航差不多,不同的是測速度,然后一次積分,而且模塊便宜,精度又好。這種方法的缺點是有誤差,要用PID進行反饋控制。至于PID如何操作,我也不太清楚。它是大學里自動化專業教授的東西,因此這個方案也行不通。
那么是不是就沒法解決定位問題了呢?條條大路通羅馬!還有一個看起來都算不上是個定位方法的辦法:直接開環控制。所謂開環,我想舉個倒水的例子:你要用飲水機接水,可以用眼睛看水有沒有滿,快滿的時候就松開放水的按鈕,像這樣運用一些參考量來反饋控制輸出量的方法就是閉環控制;相反,如果你接水的時候在和別人聊天,完全沒有注意到水杯里的水位,也就是說這時你的眼睛沒有提供一些參考來供你判斷輸出量(杯中水量)是否達到了預期(倒滿),這就是開環。
開環的好處在于控制簡單。只需要執行部件,即用手按放水按鈕,但不需要提供參考的部件,即眼睛,也不需要根據參考信息來反饋控制輸出量。這種方法的缺點是應對誤差的能力差,閉著眼睛倒水,水可能溢出來。這個方法也不靠譜,看起來完全沒法應用到實踐中。比如,每秒鐘產生1厘米的誤差,十分鐘后就達到了6米,誤差累積起來是很可觀的。
我們不妨換個思路,如果我們能夠使誤差盡可能的小,即使采用開環策略,我們也能在較短的運行時間內獲得較高的精度。這就是我采用的方案,簡單但可行。