天天看點

機器人系統設計與制作:Python語言實作1.4 如何制作機器人

<b>1.4 如何制作機器人</b>

<b></b>

如果我們試圖從本章前面部分去簡要抽象地了解機器人的組成部分,那麼概括起來主要有以下三個過程:感覺部分(由傳感器完成)、行動部分(通過執行器完成)和規劃部分(如果一定要有的話,由控制器完成)。我們可以通過給機器人配置不同的體系結構得到不同的功能屬性,這主要取決于如何搭建連接配接這三個過程(這些構模組化塊也稱為基元)。下面,我們來說說三個非常基礎的體系架構(也稱為範例)。

1.4.1 反應式控制

反應式控制應該算是最簡單的一種機器人控制結構(或範例),它可以與前面描述的基元連接配接在一起。如圖1-3所示,在這個範例裡沒有規劃過程參與。傳感部分直接相連到行動部分,這就意味着周圍的環境感覺資料一進來,執行器就會根據預先定義好的方式去行動。

就像你身體的條件反射,其實并不需要将刺激資訊發送到大腦,再由大腦來決策(這個過程會較為緩慢),而是通過最近的脊髓迅速地進行反應。反應式控制的機器人行動非常快,沒有任何複雜的計算,已将預先定義好的行動方式存儲在機器人的某處。

1.4.2 分級(協商)控制

假定你曾經根據象棋規則編寫過國際象棋程式,并利用其與機器人對弈,先是機器人下一步,然後是機器人的對手下一步,諸如此類。很明顯,在這樣的一個設定環境下,機器人的反應速度并不需要非常快。但是,如果它能夠對将要發生的事做一些規劃預測就會更加聰明,這樣它就可以根據對手目前的棋路來預測對手下一步甚至下幾步的棋路,進而調整自己的政策。

類似這樣的結構設定就是一種十分理想的分級(或協商)控制範例。從圖1-4中可以看到,感覺、規劃、行動形成一個閉環。是以,不管什麼樣的情況,這個系統都可以主動地針對所要達到的目标進行規劃控制。

1.4.3 混合控制

到目前為止,我們所讨論的控制範例或是快速但不太靈活,或是聰明但相對緩慢。但在許多情況下我們真正需要的,有可能是介于兩者之間的。那麼,混合控制模式正試圖提供這樣一種控制範例。

我們該如何在實體機器人上使用混合控制呢?假設,我們要搭建一個機器人服務生,在咖啡店裡為客人送咖啡飲料(本書裡的大部分内容剛好都在談這個問題)。那麼,這樣的機器人服務生,它自己肯定要知道這個咖啡店裡的環境設定(如桌椅的擺放位置等)。一旦它得到一個任務指令,去給指定的顧客送一杯咖啡,它就需要規劃出一條路線,并沿着這條路線移動。雖然我們可以預先給機器人設定好幾條适合它走的固定路徑,但咖啡店裡還會有其他随機出現的顧客,是我們無法預知的。在送咖啡的過程中,我們既不能讓機器人撞到桌子或椅子,又不能讓它碰撞到随機出現的顧客。為此,我們需要一個能夠進行實時調整的反應式控制器。

圖1-5這張圖畫出了混合控制模式的結構示意圖。我們可以看到,機器人先是進行任務規劃,任務拆分為一系列反應式控制模式執行的動作。這裡需要注意一個很有趣的事情,感覺資料有助于系統的任務規劃(因為需要根據它做規劃)和動作執行(因為要進行反應式控制)。

圖1-4 分級控制 圖1-5 混合控制

這就是一個機器人簡單的制作過程!現在,你知道了什麼是機器人,它來自哪裡,如何制作一個機器人,它都需要哪些部分組成,以及如何将它們系統地搭建在一起。是時候自己搭建一個機器人了!