您當前的位置:首頁 > 寵物

機器人作業系統(ROS)史話篇連載9(烏龜)

作者:由 張新宇 發表于 寵物時間:2022-10-29

張新宇

烏龜的來源

每一個ROS版本的釋出,都伴隨著一個新的烏龜吉祥物和小圖示。

很多初學者,甚至有一定經驗的人都不瞭解為什麼ROS要用烏龜,ROS的設計者是怎麼想的?

機器人作業系統(ROS)史話篇連載9(烏龜)

機器人作業系統(ROS)史話篇連載9(烏龜)

圖:ROS四個版本烏龜小圖示

ROS在英語中,表示“龜”有兩個詞,一是Tortoise,二是Turtle。容易搞混。

Tortoise指陸上生長的烏龜。

Turtle泛指各種烏龜,陸生的和海里的。海龜則稱為“See Turtle”。

國人在英文課本學的是Tortoise,比較少見Turtle。

在美國,很多孩子從小就開始學習程式設計了。為了讓小孩子容易上手,就會有人開發一些適用於孩子的程式語言和程式設計環境。這樣的程式設計環境儘可能避免複雜的操作,至少沒有讓人眼花繚亂的介面。比如,現在面向小朋友比較流行的程式設計有美國麻省理工學院開發的小貓(英文名SCRATCH)簡易程式設計,卡耐基梅隆大學開發的愛麗絲(ALICE)三維圖形程式設計環境。透過簡單的拖動圖示就可以進行程式設計,這樣的程式設計環境使得學習門檻大大降低了,可以讓小孩子的注意力集中到程式設計上。

車庫的創始人和早期員工都是軟體工程師,他們很小的時候就開始學習程式設計。那時他們用的是Logo語言,一種面向兒童的計算機程式設計語言。為了讓程式設計更容易理解,更有趣,美國施樂公司帕克研究中心(Xerox PARC)開發了一款機器人,背上背了一個半圓形蓋子,可以在地板上運動,長得非常像一個烏龜。它的動作非常慢,大家給這個機器人起了一個非常形象的名字,“烏龜”。下圖就是這個海龜機器人。

機器人作業系統(ROS)史話篇連載9(烏龜)

機器人作業系統(ROS)史話篇連載9(烏龜)

圖: Logo程式語言、烏龜機器人和烏龜繪圖

最開始,人們是用Logo語言來控制這個海龜的機器人。透過程式設計,輸入指令,可以讓這個烏龜機器人前進,還可以讓它原地轉動。海龜機器人底部有一隻畫筆,在移動和轉動的時候,可以在地板上留下畫筆的痕跡。根據計算機輸入的指令和海龜機器人的移動,就可以在地面上畫出不同形狀的圖形。

可是,這個實物的海龜機器人當時非常貴,人們就開發了一套海龜繪圖系統來替代實物海龜。這樣即使沒有實物海龜機器人,也可以利用海龜繪圖系統,進行學習程式設計。在這個繪圖系統中,螢幕上的圖示就是一個小海龜。

海龜繪圖使得Logo使用者可以透過簡單的程式設計創作出豐富多彩的視覺效果或圖案。假想一隻帶著畫筆的海龜可以接受簡單的命令,例如向前走50步,右轉90度,再向前走50步,再右轉90度。透過對這隻海龜傳送命令,可以讓它繪製出較為複雜的圖形,例如正方形,三角形,圓等。海龜的移動相對於它本身所在的位置。例如,命令“右90”意味著讓海龜右轉90度,學習者可以站在海龜的角度來思考它將如何執行命令,這使得程式設計更加形象化,也更易於理解。

機器人作業系統(ROS)史話篇連載9(烏龜)

向前50步 右轉90度 向前50步 右轉90度

圖: Logo中的小烏龜

ROS裡面有一個turtlesim系統,就是受Logo的海龜繪圖系統啟發,幫助人們學習ROS而設計的。Tutlesim的烏龜形象,甚至程式指令和Logo裡面都是一模一樣的。

ROS第一個版本的吉祥物BoxTurtle就是模仿Logo程式設計語言的吉祥物,一隻小海龜。

現在有不少為孩子設計的APP採用烏龜的形象。比如下面這個Move The Turtle程式設計APP。

機器人作業系統(ROS)史話篇連載9(烏龜)

標簽: 海龜  程式設計  烏龜  ROS  logo