利用ROS进行机器人开发,我想大多数企业是想借助ROS实现机器人的导航、定位与路径规划,它的出现大大降低了机器人领域的开发门槛,开发者无需向前人一样走众多弯路,掌握多种知识才能开始实现机器人设计的梦想,他们可以利用ROS的基础框架配合选定的功能包快速实现系统原型,从而让开发人员将重心集中于核心算法研究上,当然用户也可以单独选用某些功能包,将其集成在已有的产品中,实现特定功能。那么机器人定位导航除了借助ROS实现,还有其他方案吗?在公布另一种自主定位导航方案前,我们先来了解下ROS机器人操作系统的优缺点!
ROS的优缺点剖析
1.优点
ROS的设计者考虑到各开发者使用的开发语言不同,因此ROS的开发语言独立。因此,除了官方提供的功能包之外,ROS还聚合了全世界开发者实现的大量开源功能包,如思岚科技(SLAMTEC)就发布了针对其自主研发的激光雷达RPLIDAR的ROS功能包RPLIDAR_ROS。这些开源功能包与 ROS一起构成了强大的开源生态环境。
ROS的系统结构设计也颇有特色,ROS运行时是由多个松耦合的进程组成,每个进程ROS称之为节点(Node),所有节点可以运行在一个处理器上,也可以分布式运行在多个处理器上。在实际使用时,这种松耦合的结构设计可以让开发者根据机器人所需功能灵活添加各个功能模块。
2.缺点
ROS作为一个开源系统,除了具有以上优点外,也存在一定的不足之处,比如,ROS因为将功能分布在各个节点之中,节点间基于消息机制通信,通讯部分消耗了很多系统资源。尤其是当所有节点位于同一个处理器时,ROS仍然一直执行相应的消息分发,节点间的数据传递通过内存复制,大量的系统资源都浪费在通讯上,使得系统必须选用高性能的处理器和存储系统以弥补损耗。换句话说,利用ROS来实现SLAM,需要配备性能优越的硬件设备,这对于一些小型化嵌入式平台,尤其是实际的机器人产品里,其对计算资源、存储空间的消耗会使成本大幅上升。
除了ROS本身系统设计的局限性外,利用ROS实现SLAM需要深入的调整优化,耗费大量人力与时间成本。更为重要的是,针对具体的机器人产品,如扫地机器人,还需要独特的贴边清扫、折回清扫、多房间自主导航等功能,目前已有的ROS系统,只能实现简单的建图,无法满足扫地机器人的实际需要。
除了ROS,机器人定位导航还有什么方案?
在机器人商用应用开发的道路上,很多技术团队和公司针对机器人特定功能开发着相应商用产品,特别是在移动机器人领域,思岚科技的Slamware控制模块就将SLAM算法,导航,定位等功能集成在一个体积很小的模块,并且提供了多平台的SDK方便用户使用。针对扫地机器人等具体领域应用,思岚科技也提供完整的解决方案,整合了其特有的贴边清扫、往复式打扫、区域划分、断点续扫、自动回充等功能,方便扫地机器人厂家进行整合,不需要进行二次开发。
ROS的出现,为机器人研发提供了标准化的框架,其方便的代码重用,可以加快机器人产品原型设计和算法验证,但要真正做到稳定可靠,选择已有的成熟解决方案能大幅度降低研发成本,快速获得产品原型,投入市场。