![]() ![]() ![]() |
|
|
|
2007/02/06 18:16:03瀏覽129|回應2|推薦24 | |
機器人也需要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年來造成的影響一樣。 (本文原載於:科學人2007年2月號) |
|
( 休閒生活|生活情報 ) |