天天看點

機器人系統設計與制作:Python語言實作1.3 機器人上都有什麼

<b>1.3 機器人上都有什麼</b>

<b></b>

在本章一開始的時候,我們就試圖給出一個比較完美的(現代意義上的)機器人的定義。事實證明,我們所提出的這個定義不僅能夠描述我們所知道(或想要知道)的機器人,還給我們提出了重要的名額——在一個機器人上最可能有什麼。我們再來看看定義:

“機器人是存在于實體世界中的自主系統,能夠感覺周圍環境,依靠自身判斷采取行動并完成特定目标。”

那麼,機器人上哪些部分是最重要的?下面就是我們所列出的重要部分。

1.3.1 肢體

很難讓一個沒有實體軀幹肢體的機器人存在于實體世界中。顯然,擁有實體軀幹肢體的機器人更有其優勢(在現實實體世界中,這樣的實體機器人會比計算機模拟仿真更令人興奮),但也需要更高的花費。例如,實體機器人在某個時間隻能出現在一個地方,幾乎不太可能改變它的實體形狀,同時它的功能也會受到實體實體的限制。由于機器人所處的環境也是真實實體世界,可以假設機器人不是實體世界裡的唯一對象。這就帶來了一定程度的挑戰,例如,要確定機器人不會撞到牆,不會撞到人或其他物體,甚至是另一個機器人。當然,為了做到這一點,機器人就需要具有感覺周圍環境的能力,正如我們定義裡所描述的那樣。

1.3.2 傳感器

我們已經在一定深度上讨論了機器人傳感器的重要性,沒有它們,機器人就迷失了方向。那麼,問題就來了:“機器人通過傳感器具體能感覺到什麼?”在許多其他地方(從科技角度來說),這主要取決于給定的環境中機器人要完成的任務和目标,機器人的整體設計和功率的消耗等。一個好的機器人設計者和程式開發人員會綜合考慮所有的這些因素,使得機器人最後可以通過感覺周圍環境得到适量的資訊,來完成它的任務并達到目的。

感覺中一個非常重要的概念就是狀态。機器人的狀态本質上就是在任意給定時刻表示自身的所有狀态參數。例如,如果我們假定一個機器人裝有聲音傳感器(可以測量周圍環境的噪聲等級),但是無法知道它此刻還剩餘多少電量,這種情況下我們可以稱之為部分可觀測(partially-observable)。另一方面,如果這個機器人裝有一個傳感器,它能夠獲得機器人的每一個輸出值并感覺周圍環境的每一個實體特性,這種情況下我們可以稱之為完全可觀測(fully observable)。

既然我們已經能夠知道機器人在周圍環境中的狀态了,那麼我們就需要機器人對周圍環境做出一些反應,這需要一個類似的執行器。

1.3.3 執行器

當我們在解釋機器人定義的時候,就已經接觸到了執行器這個概念(雖然很簡單),我們已經知道執行器是讓機器人去做一些實際的動作,而具體承擔着幹重活、累活的那部分,被稱為執行機構,它也屬于整個執行器中的一部分。

之前我們一直沒有提及,執行器能夠對機器人的兩種主要活動起到輔助作用:運動和操控。

一般來說,運動顧名思義就是從a點移動到b點。在機器人學的子領域裡,這是一個非常有意思的課題,叫作移動機器人學。這個子領域的研究遍及各式各樣的機器人,包括在空中飛的、水下遊的以及陸地上行走的。

對于操控來說,就是讓機器人将物體從一個地方搬運到另一個地方。在機器人學中,對機械臂的控制也是一個非常有意思的過程,它包括大部分不同工況下的各種各樣的機械臂,主要用在工業領域。

從完整性上考慮,機器人上不同的執行器都有哪些差別?從最主要的功能上看,它們都是各種各樣的電動機帶着幾個輪子,讓機器人可以動起來。

一旦我們從周圍環境中得到資料資訊,就能夠根據這些資訊産生适當的行為。但在這兩者之間我們還忽略了一個問題:是什麼連接配接着傳感器和執行器呢?

1.3.4 控制器

最終,我們對整個系統得出了這樣一個結論:如果沒有控制器,機器人不可能完全地自主要制。控制器需要使用來自傳感器的資料,來決定下一步要做什麼,進而通過執行器進行一些操作。看起來這是一個簡單的描述,但最後事實證明控制器部分很難進行精确的操作,特别是當你第一次用它們的時候。

對于大多數機器人業餘愛好者和大部分的移動機器人來說,控制器通常是一些可用低級程式設計語言進行程式設計控制的微處理器。當然,一個機器人也經常會使用多個控制器。然而,盡管多個控制器确實能夠在主要制器突然發生意外情況的時候起到備份作用,以及在由多控制器組成的子產品化系統中,每個子產品都可以通過獨立的控制器去控制,但這些都不是輕而易舉所能夠實作的。其中,最關鍵的技術就是多控制器之間的通信,這需要大量的專業知識提供支撐。

現在,我們已經準備好了一個機器人需要的所有建構塊,下面簡要讨論一下它的組織架構。這看起來好像不太重要,但事實證明預先擁有一個好的設計方案可以節省很多的資源、物力和人力。那麼,現在讓我們開始系統地搭建一個完整的機器人體系架構。