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

張新宇

烏龜的來源

每一個ROS版本的發布,都伴隨著一個新的烏龜吉祥物和小圖標。

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

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

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

  • Tortoise指陸上生長的烏龜。
  • Turtle泛指各種烏龜,陸生的和海里的。海龜則稱為「See Turtle」。

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

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

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

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

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

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

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

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

圖: Logo中的小烏龜

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

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

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


推薦閱讀:

OpenAI 重磅文章出爐,8 種虛擬機器人模擬環境成為亮點
你如何看待如今機器人的發展?
機器人可以統治世界?
2018年,終於,發那科開始動手了?
【轉載】蘇育任:人工智慧機器人能信耶穌嗎?

TAG:機器人 | 機器人操作平台ROS |