科學人 2月號/2007 60期 封面故事

機器人 軟體革新    個人電腦革命的領袖比爾.蓋茲預言:機器人學將成為下一個熱門領域。
撰文 比爾.蓋茲(Bill Gates)翻譯 鍾樹人

想像一下親身參與某個新產業的誕生。這是個以創新技術為基礎的產業,其中有幾家知名企業銷售高度專業的商用設備,但也有越來越多新興公司在製造新穎的玩具、專供玩家收藏的玩意兒,以及其他有趣的利基產品。這也是個極為分化的產業,少有共通的標準或平台;計畫很複雜,進展相當遲緩,實際應用也相對稀少。儘管有種種激勵人心的消息與承諾,事實上卻沒有人可以確定這個產業何時(或甚至能否)達到臨界質量(critical mass)。不過如果達到的話,世界很可能就此改變。

當然,這段話也能用來描述1970年代中期的電腦產業,那時艾倫(Paul Allen)和我剛剛創辦了微軟。回到當時,各大公司行號、政府部門與其他機構,全都採用昂貴的大型主機支援運算,一流大學與業界實驗室的研究員正在創造資訊時代的基本構件;英特爾剛剛推出8080微處理器,雅達利(Atari)正在販售紅極一時的電動遊戲「乒乓」(Pong);在自家成立的電腦俱樂部裡,熱心人士努力想發掘出這項新科技究竟能帶來什麼好處。

但我心裡所想的是更遠的未來:機器人產業的興起。這項產業的發展和30年前的電腦業有許多相似之處。想想看,當今自動裝配線上所使用的工業機器人,就如同昨日的大型主機。這項產業的利基產品包括手術專用的機器手臂、部署在伊朗與阿富汗地區用來掃除路邊詭雷的檢查用機器人,以及清理地板的家用機器人。電子公司生產了會模仿人、狗或恐龍的機器玩具,玩家也急欲擁有最新版的樂高機器人系統。

值此同時,一些全球頂尖的人才正試著解決機器人學裡最困難的問題,好比視覺辨識、導航與機器學習,而且漸有成果。2004年,美國國防部高等研究計畫署(DARPA)在加州莫哈未沙漠長達230公里的顛簸道路上,舉辦了一場自動導航機器人「大挑戰」賽車,結果第一名只跑了12公里,車輛就故障了。但是到了2005年,卻有五輛賽車跑完全程,而且冠軍車的平均速度達到每小時30公里。(機器人與電腦產業之間還有另一項有趣的相同點:當今網際網路的前身Arpanet,當初也是由DARPA贊助而催生的。)

不僅如此,機器人產業所面臨的挑戰,也很類似我們30年前在電腦產業裡處理的問題。機器人公司沒有標準的作業軟體,所以可在各種裝置上運作的大眾化應用程式也不存在。機器人處理器與其他硬體的標準化還相當有限,某部機器所用的程式碼鮮少能應用在另一部機器上。無論何時,任何人若想建造新的機器人,通常都得從頭開始。

儘管困難重重,但每當我和機器人領域的人交談時──包括學院內的研究者、創業家、業餘玩家與高中學生,那種興奮與期盼之情,一再讓我回想起艾倫和我當初看著新技術整合,並且夢想總有一天每個家庭的每張書桌上都會有一部電腦的情景。現在,我又看到一股整合的趨勢開始了,可以想見,機器人裝置未來終將成為我們日常生活中普遍存在的一個角色。我相信,許多技術將為新一代的自動裝置開啟大門,包括分散式運算、聲音與視覺辨識,以及無線寬頻連線等,將讓電腦得以代替我們完成實體世界裡的各項工作。我們即將邁入新時代,在這個新時代裡,個人電腦即將起身走下書桌,讓我們能夠看到、聽到、摸到、並且操控另一個地方的物件。

從科幻小說裡走出來
“ROBOT”(機器人)這個名詞,在1921年因為捷克劇作家恰佩克(Karel apek)而變得普遍,其實數千年來,人們一直渴望製作出類似機器人的裝置。在希臘與羅馬神話裡,金工之神以黃金打造了機器奴僕;公元一世紀時,亞歷山大城的海龍(Heron of Alexandria,據信為發明首部蒸汽機的偉大工程師)曾設計出有趣的機器人,據說其中一個還能講話;達文西在1495年描繪了可站立並移動手腳的機器騎士,成了公認第一個人型機器人的設計。

在過去一個世紀,透過艾西莫夫的《我,機器人》等書、「星際大戰」系列等電影,以及「星艦奇航」等電視影集,人型機器已經變成通俗文化裡常見的角色。虛構的情節裡經常出現機器人,代表人們可以接受「終有一天,這些機器將走入人群,並且成為人類的幫手或甚至同伴」這樣的想法。然而,機器人雖然在某些產業佔有重要的一席之地──例如在汽車製造業裡,大約每10個工人就會有一個機器人,但真實的機器人距離科幻小說裡的同伴,還有很大的一段距離。

造成距離的原因之一在於,電腦與機器人比預期中更難感應周遭環境,也無法快速而準確的做出反應。事實證明,想把人類習以為常的能力賦予機器人,比如在房內定位出自己與其他物件的相對方向,對聲音做出反應以及詮釋語音,抓握不同尺寸、質感與易碎度的物件,都是難上加難的事。即使只是分辨打開的門與窗戶之間的不同這般簡單的事,對機器人來說仍然極為不易。

不過研究者已經開始尋找答案了。其中一項有幫助的趨勢是,龐大的電腦運算能力越來越便宜了。100萬赫茲的運算能力在1970年的價格超過7000美元,但現在只要幾毛錢就買得到;100萬位元儲存空間的價格也同樣大幅滑落。為了讓機器人成真,科學家必須解決許多困難的基礎問題,而便宜的運算能力提供了不少幫助。舉例來說,今天的聲音辨識程式已經具有相當不錯的字彙辨識能力,但更大的挑戰是,讓機器能夠理解這些字彙在前後文中的意義。隨著運算能力繼續增強,機器人設計師可望取得必要的運算能力,進而處理更複雜的問題。

機器人的發展還有另一項瓶頸,那就是昂貴的硬體,好比機器人用來測定距離的感應器,以及馬達和伺服電動機,機器人得靠它們才有力量,並且才能夠精細地處理物件。但硬體的價格也在快速滑落,幾年前,機器人用來精確測量距離的雷射測距儀,價格還高達一萬美元左右,現在大概只要2000美元。而新型的超寬頻雷達感應器不僅更精準,價格甚至更便宜。

現在,工程師可在合理的成本之下,為機器人加裝全球定位系統晶片、攝影機、陣列傳聲器(比傳統傳聲器更能從背景雜訊中分辨出特定聲音),以及一大堆附加的感應器,機器人的功能當然變得更強;再加上強大的運算能力與龐大的儲存空間,今天的機器人已經有辦法在房內吸塵,或協助清除路邊的詭雷。幾年前,還沒有任何商用機器能執行這些工作。

機器人也需要BASIC
2004年2月,我造訪了一些美國的頂尖大學,包括卡內基美倫大學、麻省理工學院、哈佛、康乃爾和伊利諾大學,探討電腦在解決社會一些最緊迫的問題上,可扮演什麼重要的角色。我的目標是協助學生了解資訊科學有多麼精采且重要,也希望鼓勵其中一些人以科技為志業。在每一所大學演講完之後,我總是有機會前往學校的資訊科學系,親自參觀一些最有趣的研究計畫。幾乎沒有例外,每次我都會看到至少一個有關機器人的計畫。

當時,學術界和商用機器人公司也曾詢問我在微軟的同事,我們公司是否也有進行機器人方面的研究,或許可在研發上助他們一臂之力。我們並沒有,所以我們決定好好研究一下。於是我請特羅爾(Tandy Trower)展開大規模的訪查工作,和機器人社群的成員好好談一談。特羅爾是我的幕僚之一,也是在公司服務25年的資深員工,他發現大家對機器人的潛力都很感興趣,而且整個產業都希望能有一些工具可減輕研發的難度。特羅爾結束訪查任務之後,在交給我的報告上寫著:「許多人認為機器人產業正面臨技術上的轉捩點,如果能夠移轉到個人電腦架構上,將是更為合理的方法。就像卡內基美倫大學的DARPA大挑戰參賽小組領隊惠塔克說過的,硬體的功能幾乎已經齊全了,現在的問題是怎麼設計出正確的軟體。」

回到個人電腦剛出現的年代,我們知道自己需要一種要素,來把所有的先驅工作帶到臨界質量,才能整合出真正的產業,製造出商業上真正有用的產品。結果顯示,我們需要的是微軟BASIC。我們在1970年代創造的這種程式語言,提供了一個共通的基礎,於是,為特定硬體開發的程式,也能在另一套硬體上執行了。BASIC讓電腦程式設計變得容易許多,吸引越來越多人進入這個產業。雖然許多人在個人電腦的發展上都有卓越的貢獻,但微軟的BASIC卻帶動軟硬體的革新,無疑是個人電腦革命的重要推手。

閱讀過特羅爾的報告之後,有件事似乎清楚了起來。機器人產業若想如30年前的個人電腦產業一般,達成跳躍式的進步,就必須找到這項缺失的要素。因此我請特羅爾召集一小隊人馬,與機器人學的研究者展開合作,研究目的是創造一套程式設計工具,提供基本方針,讓每個對機器人感興趣的人,只要有基本的電腦程式概念,都能輕易撰寫出可在各類硬體上執行的機器人應用程式。看看能否提供共通的低階基礎,以便整合機器人設計中的軟硬體,就像微軟BASIC當初在電腦程式設計上的功能一樣。

挑戰「同作」問題
特羅爾的機器人小組已經開始應用微軟的數種先進技術了。這些技術由微軟首席研究暨策略長蒙迪帶領的小組所研發,其中一項技術解決了機器人設計師最困難的問題之一:如何同時處理來自多個感應器的資料,並且傳送適宜的指令給機器人的馬達,也就是知名的「同作」(concurrency)問題。常見的解決方法為傳統的單執行緒程式──有一個長迴圈,一開始先讀入來自感應器的所有資料,然後處理資料,最後送出結果並決定機器人的行為;然後再一次重頭開始執行迴圈。這個方式的缺點很明顯:即使機器人從感應器收到的最新訊息是,機器已經臨近懸崖邊緣,但由於程式還在迴圈後半部計算軌跡的部份,所以會根據先前輸入的資料,命令輪子快點運轉,機器人很可能根本沒有機會處理新資訊,就跌下了樓梯。

「同作」不僅是機器人學所面臨的挑戰,現在有越來越多的應用軟體是為了分散式電腦網路而寫。程式設計師煞費苦心尋找有效率的編碼方式,好讓程式同時在不同的伺服器上運作。單一處理器的電腦已漸漸被多處理器及「多核心」處理器(具有兩個以上處理器的積體電路,可提升效能)的機器所取代,軟體設計師必須以新的方法,來設計桌上型電腦的應用程式與作業系統。為了充份利用平行處理器的效能,新軟體也必須處理同作問題。

處理同作的方式之一,是撰寫多執行緒程式,允許資料透過不同的路徑傳送。但每個撰寫多執行緒程式碼的設計師都會告訴你,這是非常困難的程式設計工作。蒙迪小組針對同作問題的解答是:「執行期同作協調」(CCR)。這是一個函式庫,也就是一組可以執行特定工作的軟體程式碼,協助設計師更輕易撰寫出可協調多項同步活動的多執行緒應用程式。CCR的設計原本是為了協助程式設計師發揮多核心與多處理器系統的效能,但是結果對機器人學也有同樣的好處。機器人設計師運用函式庫撰寫程式,可大幅降低他們的軟體因為急著把輸出資料傳送給輪子,而無暇讀取來自感應器的輸入,使得機器人撞牆的機會。

除了解決同作問題之外,蒙迪小組的成果也可簡化撰寫分散式機器人應用程式的複雜度。這項技術叫做「去中心式軟體服務」(DSS)。在DSS的協助之下,研發者所設計的應用程式中的各個服務(也就是程式中用來讀取感應器或控制馬達等的部份)可彼此獨立運作,但也能彼此整合,就好比來自不同伺服器的文字、影像與資訊也能夠整合成單一網頁一樣。DSS讓軟體內的不同單元可彼此獨立運作,因此當機器人的某個單元故障時,就可個別關閉再重新啟動(或甚至替換掉),而無需重新啟動整部機器。這個架構若再結合寬頻無線技術,使用者就可輕易從遠端透過網頁瀏覽器監控與調整機器人。

不僅如此,控制機器人裝置的DSS應用程式,再也不需要全部都安裝在機器人身上,而可分散放置於多部電腦內。如此一來,可把複雜的處理工作分派給當今家用電腦裡的高性能硬體處理,機器人的價格或許就不再那麼昂貴了。我相信這個進展會促使全新類型的機器人出現,基本上,這種機器人是可移動的,具有無線設備可與桌上型個人電腦相連,讓電腦負責處理運算需求高的工作,好比視覺辨識與導航。也由於這些周邊設備能以網路彼此連結,可想見的,機器人將可集體合作,完成海底探勘或種植作物等工作。

這些正是微軟的「機器人工坊」(Robotics Studio)的關鍵技術。機器人工坊是特羅爾小組新設計出來的軟體開發套件,其中還有些工具能協助設計師輕易以各種程式語言撰寫機器人應用程式。例如,裡面有種模擬工具可讓機器人設計師在立體的虛擬環境中測試應用程式,而不需要實境測試自己的作品。我們發佈這項產品是為了提供一種人人可負擔的開放平台,協助機器人開發者將軟硬體一併整合進他們的設計中。

家家都有機器人
究竟還要多久,機器人才會變成我們日常生活中的一部份?根據國際機器人聯盟的估計,2004年全球各地個人所用的機器人大約有200萬具,到了2008年,這個數目得再加上700萬。南韓的資訊通訊部希望在2013年之前,能讓國內每個家庭裡都有一具機器人。日本機器人協會則預言,到了2025年,個人機器人產業每年全球的產值將超過500億美元。今天,這個數目約為50億美元。

就好比1970年代的個人電腦產業一般,現在不可能明確預言出,何種應用會在未來帶動這項新產業發展。不過,機器人未來很可能在生理上的輔助,甚至陪伴老年人的心理層面,都扮演重要的角色。機器人設備可能協助殘障朋友行動,增強士兵、建築工與醫療專業人士的氣力與持久力。機器人將繼續擔任危險產業裡的機具,處理危險的物料,並且監控遠端的油管。它們也將協助醫務人員診斷與治療病人,即使病人遠在千里之外。在保全系統與搜救任務上,它們也會是重要的一員。

未來,也許有些機器人會長得像「星際大戰」裡的人型裝置,但絕大部份應該和機器人C-3PO一點兒也不像。事實上,隨著移動式周邊設備越來越普遍,我們也許也會越難精確說出機器人到底是什麼,新機器將變得專業、無所不在,但一點兒也不像科幻片裡的兩腳機器人。到了那時候,我們可能甚至不以機器人來稱呼它們了。但由於這些設備將是人人皆可負擔,對我們的工作、通訊、學習與娛樂也將發生重大的衝擊,就像是個人電腦過去30年來造成的影響一樣。

新家庭成員:未來有些家用機器人也許會長得和科幻小說裡的人型機器一樣,但數量更多的可能是負責做特定家事的移動式周邊設備。