ROS英语称为Robot Operating System,翻译成中文,就是机器人操作系统。这是一个具有误导性的名字,柳树车库内部并不是所有人都赞同使用这个名字。他们非常清楚这个软件系统并不是一个操作系统。这个名字太大了,太具有挑战性和侵略性。
其实为了给这个软件起一个名字,大家确实费了不少心思,有一段时间,大家每天都要坐在一起,就像给自己的孩子起名一样,开开脑洞。比如曾经起过的名字有PACKMOS,RMOS,PRP,ROSIX。。。。
直到有一天,申请到了ros.org这个域名,命名的讨论才终于停止。这样,这个孩子有了一个后来响当当的名字ROS。
在2009年初推出了ROS 0.4公众测试版(Mango Tango),这时的ROS,以及后续的测试版本是用果汁的名字来命名的。
ROS 0.4发布在开源代码托管网站SourceForge上,供大家测试。为了能够让公众测试,柳树车库内部做了大量的测试工作。对于一个分布式系统,系统的稳定性是关键。
这时候的ROS 0.4关注的仅仅是稳定性,尤其是机器人在连续工作几天后,整个软件系统是否依然能稳定运行,不会出现死机。
ROS 0.4发布之前的最后一项测试是让PR2机器人在ROS平台上稳定无误的运行2天,期间还要完成相当多的任务,比如在地面跑3.14公里,还要完成避障的任务。这个测试又称为“2π”测试(2天跑π公里)。成功通过这个测试后,ROS 0.4才正式对外发布。
其实,大家可能注意到,即使是现在ROS版本,连续工作几天后,依然会出现系统崩溃的情况。ROS的稳定性其实还没有很好的解决。
现在我们所用ROS的整体框架在ROS 0.4这个版本中已初具雏形了。在2009,柳树车库连续推出了多个版本:
· 5月推出了ROS 0.5测试版(Mojito Mambo)
· 6月推出了ROS 0.6公众测试版(Watermelon Chill)
· 7月推出了ROS 0.7测试版(mo’ beta)
· 9月推出了ROS 0.8测试版(TropicalEnergy)
· 10月推出了ROS 0.9测试版(C Monster)
· 11月推出了ROS 0.10测试版(Red Rhapsody)
· 2010年1月推出了ROS 0.11测试版(berry blast)
ROS 0.4(Mango Tango),ROS 0.5(Mojito Mambo),ROS 0.6(Watermelon Chill),ROS 0.7(mo’ beta),ROS 0.8(TropicalEnergy), ROS 0.9(C Monster),ROS 0.10(Red Rhapsody),ROS 0.11(berry blast)
这样,经过近一年的测试后,终于在2010年初推出了ROS 1.0测试版。并在当年三月份推出了正式发行版本:ROS Box Turtle。ROS的第一个版本为B,就起名Box Turtle,C 是 C Turtle,D 是 Diamondback。而且相应的单词还要跟乌龟有关。
到现在(2018年5月)已经发行了12个版本,最新版本是ROS Melodic Morenia,上一个版本是L版,就用ROS Lunar Loggerhead。
我现在看到ROS的每一个版本是按照英语字母顺序,取字母表中对应的字母依次命名。
这也与我们常见的飓风命名方式一样:1947 年美国气象局和军方合作,首次给热带气旋命名,给当年第四号飓风起了个名字 George,但因为在当时这不能算是正式的名字,所以并没有公布于众。
直到 1950 年,美国气象局才开始系统地给热带风暴和飓风命名,方式是按照字母顺序,取拼写字母表中对应字母的代码。比如轮到 A,就起名 Able,B 是 Baker,C 是 Charlie。这套字母表是二战时期英美加部队使用的(参见 Joint Army/Navy Phonetic Alphabet)。
从E版本开始[1],ROS的命名就开始借鉴Ubuntu的命名方法,用一个形容词加一种乌龟名来命名。形容词和乌龟名的首字母要跟代表版本的字母一样。比如E版本是Electric Emys(电动+泽龟)来表示。
前面几个版本的名字是车库自己内部取得。到后来,车库,及OSRF也不知道如何取名,就成立了一个ROS 起名委员会,征求大家的意见。比如等Lunar Loggerhead名字确定后,2017年5月就开始讨论M版本应该用哪个名字,最后命名委员定为ROS Melodic Morenia。
[1] http://www.chelonia.org/byspecies.htm#H