王子祺
我們的機器人本次試驗任務的路線如下圖所示。共分4次任務,分別用不同顏色框來表示。在這次智能機器人操作系統中我們做了幾種新的嘗試,取得了不錯的效果,現在介紹如下。
“狀態機”的運用有效提高操作效率
在操作智能機器人的過程中,操作人員常需在各種不同的程序中來回切換,操作工作的繁瑣可想而知。
為了降低操作人員切換程序時繁瑣的操作,我們制作了一個新的操作系統來簡化原有的操作,從而縮短操作時間,提高效率。為了達到這個目的,我們在程序中使用了“狀態機”。
狀態機是一種概念性機器,它能采取某種操作來響應一個外部事件。具體采取的操作不僅能取決于接收到的事件,還取決于各個事件的發生順序。之所以狀態機能做到這一點,是因為機器在跟蹤一個內部狀態,它會在收到事件后進行更新。為一個事件而響應的行動不僅取決于事件本身,還取決于機器的內部狀態。另外,采取的行動還會決定并更新機器的狀態。這樣一來,任何邏輯都可建成一系列事件/狀態組合。
狀態機可歸納為4個要素,即“現態”“條件”“動作”“次態”。這樣的歸納,主要是出于對狀態機的內在因果關系考慮。“現態”和“條件”是因,“動作”和“次態”是果。詳解如下:
①現態:是指當前所處的狀態。
②條件:又稱為“事件”,當一個條件被滿足,將會觸發一個動作,或者執行一次狀態的遷移。
③動作:條件滿足后執行的動作。動作執行完畢后,可以遷移到新的狀態,也可以仍舊保持原狀態。動作不是必需的,當條件滿足后,也可以不執行任何動作,直接遷移到新狀態。
④次態:條件滿足后要遷往的新狀態?!按螒B”是相對于“現態”而言的,“次態”一旦被激活,就轉變成新的“現態”了。
狀態轉移示意圖:
線性加速模塊
當面對較長距離又需要以較快的速度通過時,線形加速模塊可以幫助我們完成這項任務。它相較于直接輸入功率運行的電機模塊的好處是,整個操作過程中車體移動比較穩定,不會有劇烈晃動的情況出現。
陀螺儀傳感器自檢模塊
對于此次試驗場地的特殊性(場地線較直)而又因為光電傳感器對結構要求較高,所以我們使用了對整體結構要求較小的陀螺儀代替了一個光感儀。然而因為未知原因,陀螺儀在某些情況下讀數會不準確,我們采用了陀螺儀自檢模塊,就是在問題出現時可以即時進行修改,從而避免之后程序的不準確。
自動測光值模塊
在實驗過程中有時光感可能讀出不同的值,從而造成程序運行效果不理想。因此我們需要一種能監測機器人所在位置的光值的模塊。但與以前的版本不同的是,因為我們實現了操作系統,所以無論機器人在哪里我們都可以事實測量機器人所在位置的光值。這極大地增強了循線,直角校正的穩定性和可靠性。
程序主要分為兩部分:實時測量當時的光值,對讀取的光值進行處理。
(說明:為了彌補使用不同光感而產生的誤差,所以我們對左右兩個光值進行分別處理。因此有左光感黑/白,右光感黑/白,4個數值要進行處理。上圖僅展示了部分程序。)