偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.
全部博文(1751)
分类: 其他平台
2020-04-16 14:02:17
如今,机器人已成为当下研究的热门,想要完成一个机器人的开发会涉及到机械、电子、通讯、软件等诸多学科,作为一个系统性的工程,必然需要花费大量时间,仅靠一人或一个团队之力去造出一个机器人显然是不科学的。因此,随着技术的进步,机器人产业分工开始走向细致化、多层次化。如今的底盘、激光雷达、电机、摄像头等等元器件都有不同企业专供,社会分工加速了机器人行业的发展。
随着机器人的快速发展及复杂化,代码复用性需求也越来越强烈,也因此诞生了很多开源机器人系统,ROS(Robot Operating System)就是其中之一。ROS是专为机器人软件开发所设计出来的一套电脑操作系统架构。它是一个开源的元级操作系统(后操作系统),提供类似于操作系统的服务,包括硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间消息传递、程序发行包管理,它也提供一些工具和库用于获取、建立、编写和执行多机融合的程序。
ROS最初起源于2007年斯坦福大学的人工智能实验室项目与机器人技术公司Willow Garage的个人机器人项目之间的合作,该项目组创建了灵活的、动态的软件系统的原型,用于机器人技术。提供了大量资源进一步扩展了这些概念,经过具体的研究测试实现之后,无数的研究人员将他们的专业性研究贡献到ROS核心概念和其基础软件包,这期间积累了众多的科学研究成果。ROS软件的开发自始至终采用开放的BSD协议,在机器人技术研究领域逐渐成为一个被广泛使用的平台。
对于大多企业来说,利用ROS进行机器人开发,是想实现机器人的导航、定位与路径规划。自ROS的面世,开发者可以少走很多弯路,也大大降低了机器人领域的开发门槛,他们可以利用ROS的基础框架配合选定的功能包快速实现系统原型,从而让开发人员将重心集中于核心算法研究上,当然用户也可以单独选用某些功能包,将其集成在已有的产品中,实现特定功能。当然在借助ROS来实现机器人的定位导航,除了拥有一定优点外,也存在一些不足之处。
ROS的优点
ROS的设计者考虑到各开发者使用的开发语言不同,因此ROS的开发语言独立。因此,除了官方提供的功能包之外,ROS还聚合了全世界开发者实现的大量开源功能包,如思岚科技(SLAMTEC)就发布了针对其自主研发的激光雷达RPLIDAR的ROS功能包RPLIDAR_ROS。这些开源功能包与 ROS一起构成了强大的开源生态环境。
ROS的系统结构设计也颇有特色,ROS运行时是由多个松耦合的进程组成,每个进程ROS称之为节点(Node),所有节点可以运行在一个处理器上,也可以分布式运行在多个处理器上。在实际使用时,这种松耦合的结构设计可以让开发者根据机器人所需功能灵活添加各个功能模块。
ROS的不足
除了以上优点外,ROS也存在一定的不足之处,比如,ROS因为将功能分布在各个节点之中,节点间基于消息机制通信,通讯部分消耗了很多系统资源。尤其是当所有节点位于同一个处理器时,ROS仍然一直执行相应的消息分发,节点间的数据传递通过内存复制,大量的系统资源都浪费在通讯上,使得系统必须选用高性能的处理器和存储系统以弥补损耗。换句话说,利用ROS来实现SLAM,需要配备性能优越的硬件设备,这对于一些小型化嵌入式平台,尤其是实际的机器人产品里,其对计算资源、存储空间的消耗会使成本大幅上升。
除了ROS本身系统设计的局限性外,利用ROS实现SLAM需要深入的调整优化,耗费大量人力与时间成本。更为重要的是,针对具体的机器人产品,如扫地机器人,还需要独特的贴边清扫、折回清扫、多房间自主导航等功能,目前已有的ROS系统,只能实现简单的建图,无法满足扫地机器人的实际需要。
除了ROS,在机器人商用化道路上,很多技术企业针对机器人定位导航也开发了对应的产品,思岚科技的SLAMWARE模块化定位导航方案就是其中之一,将SLAM算法、导航、定位等功能集成在一个体积很小的模块,并且提供了多平台的SDK方便用户使用。针对扫地机器人等具体领域应用,思岚科技也提供完整的解决方案,整合了其特有的贴边清扫、往复式打扫、区域划分、断点续扫、自动回充等功能,方便扫地机器人厂家进行整合,不需要进行二次开发。
ROS的出现加快了机器人产品原型设计及算法验证,为机器人研发提供了标准化的框架。但要做到真正的稳定可靠性,选择已有的成熟解决方案可以大大降低研发成本,快速获得产品原型,抢占市场先机。