A-A+

机器人操作系统(ROS)史话篇连载9(乌龟)

2017年10月02日 ROS 暂无评论 阅读 143 次

作者:张新宇

 

乌龟的来源

每一个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。

标签:

给我留言

Copyright © ExBot易科机器人实验室 保留所有权利.   Theme   Robin modified by poyoten

用户登录

分享到: