天天看點

機器人系統設計與制作:Python語言實作1.2 機器人從哪兒來

<b>1.2 機器人從哪兒來</b>

<b></b>

正如标題所示,本節要介紹的應該是機器人的曆史起源。我們已經知道了一些非常重要的事實,比如“機器人”一詞是由一位捷克作家karel apek在1920年提出的,而且通過事實考證,在那幾年裡,還發生了很多更有趣的事情。為了講述上更有序,讓我們從頭開始來看。

曆史上很難準确地找出一個具體日期,說它就是第一個機器人誕生的時間。在此之前,我們對機器人已經有了一個相對嚴格的定義,是以一直等到20世紀,一個真正的嚴格意義上的機器人才出現。在那之前,我們充其量隻是提到這個名詞而已。

第一個接近機器人的裝置,是一種被稱為“鴿子”的機械鳥。它是公元前4世紀,在意大利的塔倫特姆,由希臘數學家archytas發明的,由蒸汽推動前進。根據我們對機器人的定義可知,它還不能被認為是一個機器人(無法感覺周圍環境已失去資格),但在那個時代已經算是相當接近了。在接下來的幾個世紀,有許許多多的機器人被嘗試建立,如依靠水流來測量時間的鐘表,實物大小的機械圖案,乃至第一個可程式設計的人形機器人(實際上是一艘載有4個機械樂手的船)。所有這些機器存在的問題是它們幾乎都沒有獲得可靠的資訊來源,是以都存在很大争議。

這樣的狀态一直延續了相當長的一段時間,直到20世紀50年代leonardo da vinci的筆記被重新發現。它完整地記錄了1945年發明的一個類人機器(從外形上看起來與人相似的機械裝置),它看起來像一個裝甲騎士。從表面上看,它被設計成可以端坐、揮舞手臂、搖頭,最重要的功能是用來娛樂皇室成員。在18世紀的娛樂行業方面,jacques de vaucanson發明了3個自動玩偶:可以演奏12首歌的長笛樂手,手鼓演奏器,以及最著名的“消化鴨”。這隻鴨子能夠自己移動,發出嘎嘎聲,拍打翅膀,甚至有能力吃東西并将食物消化(不是真正将食物消化,而是把食物存儲收集在一個隐藏的容器内)。它是一個“運動解剖學”的例子,用機械裝置模組化人體或動物解剖學。

我們再來看看接下來的一個世紀裡那些非常類似于機器人的裝置,它們在機器人的曆史演變長河中是不可或缺的。它們中的大部分是由無線電控制的,如nikola tesla的小船,之前陳列在紐約麥迪遜廣場花園的玻璃櫃内。你可以控制它前進、停止、向左或向右轉,打開或關閉燈光,甚至讓它下沉。所有這些在當時似乎并不太令人印象深刻,因為當時的報刊新聞報道認為這是一種“精神控制”。

就是在這樣的社會認知下,我們再一次接觸到機器人這個術語,這也是它第一次被正式公開提到。正如我們之前說過很多次,在1920年karelapek在他的劇本《r.u.r》中正式用到了機器人這個術語。20年後,另一個非常重要的術語又被創造出來了。1942年,issac asimov在他的短篇小說《環舞》(runaround)中第一次提到了機器人學(robotics)這個術語。issac asimov還寫了很多其他關于機器人的故事,是一位當時非常著名的科幻小說家。

然而,在機器人學領域,他更為突出的貢獻是提出了機器人學三定律:

第一定律:機器人不得傷害人類,或坐視人類受到傷害。

第二定律:在不違背第一定律的前提下,機器人必須服從人類的指令。

第三定律:在不違背第一及第二定律的前提下,機器人必須保護自己。

後來,他又補充了機器人零定律:

零定律:機器人不得傷害人類的整體利益,或坐視人類的整體利益受到傷害。

這些定律一定程度上反映了當時人們對稱之為“機器人”的這種機器的态度。看到具有一定智能的機器人奴役真的成為可能,那麼我們在發明設計這種新的智能機器的時候,就算不能直接遵循這些定律,也應該将其作為指導原則牢記在心。同時,雖然很多人還是害怕機器人會帶給我們災難,但從時代發展上看,暫時還不會這樣。機器還将需要擁有一定程度的智能,一定的思考能力,能根據它們自己的想法去行動,這樣才能認為機器人真的來了。我們縱觀機器人的曆史發展過程,雖然在當時機械方面确實有了一定進步,但在智能方面基本還是停滞不前的。

正是在這樣的情況下,到1956年夏天,幾個非常聰明的年輕人(marvin minsky、john mccarthy、herbert simon和allan newell)聚集在一起,讨論要如何給機器創造智能(人工智能),他們被認為是人工智能這個新領域的創始者。

雖然這幾個年輕人當時野心勃勃(有些資料上甚至提到他們計劃在那個夏天就能發明創造出整機智能),但到一些有意思的結果出現之前,還是經過了一段時間。

一個有代表性的案例就是shakey,美國斯坦福國際研究所(sri)1966年發明的一個機器人。它是首台能夠自主進行推理行動的機器人(按照我們現在對機器人的了解)。在此之前的機器人,都是通過執行預編譯程式指令來完成動作的。換句話說,shakey能夠分析更複雜的程式指令,并能自行将複雜指令分解成一系列更簡單的問題。圖1-2所示的這張shakey的圖檔來自于https://en.wikipedia.org/wiki/file:shakeyliveshere.jpg。

它的硬體配置也是非常先進的,它裝有撞擊探測器、聲呐測距儀和電視相機。它可以在一個擺滿各種障礙物的小的封閉的環境裡運作。為了要在這些障礙物間行走,必須要找到一種能夠不碰到并且繞過它們的方法。shakey采用了一種非常簡單的方式。

開始,它先小心翼翼地給自己規劃了一條能繞過這些障礙物的行動路徑(那時候的路徑搜尋技術還不太先進),然後試着慢慢地移動并繞過障礙物。當然,從一個穩定位置開始移動不可避免地會出現一些偏移。shakey在移動過程中就出現了很多這樣的偏移,由此得名為shakey。

那些試圖想教會shakey怎樣去适應周圍環境的研究人員總結出了很多非常重要的經驗。其中a*搜尋算法(一種在兩個目标點之間能非常快速有效地找到最佳路徑的算法)毫無疑問可以算是衆多研究成果之一。這個算法不僅在人工智能或機器人領域,而且在整個計算機科學領域都被認為是最重要的基礎算法之一。

關于機器人的曆史起源,我們還可以讨論很長時間。雖然任何人都能以這個主題寫一本書(當然它本身就是一個很有意思的事情),但這并不是本書主要想講的内容。還是回到我們之前關心的問題:機器人從哪兒來?

簡而言之,機器人主要是從非常基礎的機械自動化發展演變而來的,系統或裝置通過遠端遙控對象使其能夠自主(甚至是自适應)地去完成特定目标。這樣聽起來太複雜了?别擔心,事實上制作一個你自己的機器人,可以不需要了解太深的原理。你見到的絕大部分機器人都是由很多簡單的部分組成的,被拆分的這些小部分都不難了解,并不像整體看起來那樣難懂。

那麼,接下來就來看看怎樣建構一個我們自己的機器人,了解一下這些機器人都是由哪些部分組成的。