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