ROS史话36篇.18 ROS飞天金刚龟与视觉传感器
ROS的第三个版本D版本,于2011年3月发布,吉祥物是菱背龟(Diamondback),亦称为金刚龟,因背部有菱形图案而得此名。乔许·埃林森设计此版本的ROS海报中,无数只金刚龟在菱形风筝的助力下,在空中自由地飞翔。
这时,已经有很多大学和机器人公司加入到ROS开源社区,提供了对各自机器人的驱动,比如Nao人形机器人(法国), Care-O-bot(德国), 乐高 NXT 教育机器人(美国),Erratic(美国亚利桑那大学), miabotPro(英国)。到D版本的发布,已经有50种机器人支持ROS。
这时的ROS还做了如下变化
模块化的粒度更小,有利于增量化更新。模块小型化也有助于减低内存的使用。
图形用户界面从ROS核心中分离出来,这样对于不需要图形用户界面的用户就不需要编译这一部分的代码。
修改版权和软件归属权的条例,有利于在乎所有权的开发者继续对ROS做出贡献。
创建了ROS问答社区,方便用户交流。
在这个版本里增加了对Kinect的支持。Kinect在2010年随微软的XBox推向市场,2011年Kinect已经很流行了,到这年三月份,已经累计销售了1000多万台。从外观上看,Kinect配备三个摄像头,中间的摄像头为RGB彩色摄像头,左右两个分别为红外发射器和红外CMOS接收器,两个摄像头构成深度传感器。
获取深度图像的技术原理是光编码技术,属于结构光的一种。光编码技术对激光散斑进行编码,将编码后的散斑发射出去,再由红外相机接受信号,通过分析信号模式变化,计算深度信息。
另一种方式采用飞行时间(TOF)技术,通过投射红外线,计算发射和返回的时间差来计算深度信息。TOF对深度信息的获取更迅速,也更准确。
Kinect是一款面向消费群体的娱乐设备,随微软的游戏机Xbox一起销售。科研人员发现他不仅仅是一款娱乐设备,还是一个性价比极高的科研设备,后来基于Kinect各类算法层出不穷。
因此,车库顺势而为,为这个ROS版本提供了Kinect深度相机的驱动。ROS于是采用了PrimeSense 的驱动OpenNI Kinect。ROS里的驱动主要由文森特·莱保德(Vincent Rabaud)和图利·弗特(Tully Foote)来维护。
文森特·莱保德毕业于加州大学圣地亚哥分校(The University of California,San Diego),获博士学位。圣地亚哥在加州的最南端,与墨西哥接壤。在“此岸与彼岸”提到加州的这个城市。
图利·弗特本科就读于加州理工学院(CaliforniaInstitute of Technology),硕士研究生毕业于宾夕法尼亚大学(University ofPennsylvania),一所位于美国宾夕法尼亚州费城的私立研究型大学,八所常春藤盟校之一1。后面,我们还会详细讲图利·弗特。
通过Kinect采集获得的是,可视范围内的深度数据,即可视范围内物体到相机的距离。从这些深度数据,可以计算出3D点云(Point Cloud)。这样,点云处理算法就要跟进,因此ROS加入了点云库(Point Cloud Library, PCL)的0.1版本,这是一个开源的软件库,包含大量与点云有关的算法,包括显示点云数据、滤波、分割、特征提取、配准、重建等,支持Windows和Linux等平台,也可以在一些嵌入式开发板上使用。PCL在三维点云中的地位相当于OpenCV在图像处理和计算机视觉中的地位。
PCL是由莱度·茹苏(Radu B. Rusu)在车库期间创建的开源点云处理软件。那时,点云数据和点云数据处理在逆向工程已经应用的很广泛了,只是很少有人把自己的算法和代码开源出来。莱度·茹苏毕业于德国慕尼黑工业大学(TechnischeUniversität München),后来负责由车库孵化的 Open Perception公司,致力于2D/3D 数据的处理。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号