要保证一个复杂的系统稳定、高效地运行,每个模块都能发挥出最大的潜能,需要一个成熟有效的管理机制。
什么是机器人操作系统ROS
1.ROS(Robot Operating System)是一个操作系统
ROS是对机器人的硬件进行了封装,不同的机器人、不同的传感器,在ROS里可以用相同的方式表示(topic等),供上层应用程序(运动规划等)调用。
计算机OS与机器人OS对比示意图,图片引用自Nao
2.ROS是一种跨平台模块化软件通讯机制
ROS用节点(Node)的概念表示一个应用程序,不同node之间通过事先定义好格式的消息(Topic),服务(Service),动作(Action)来实现连接。
因为ROS本身是基于消息机制的,开发者可以根据功能把软件拆分成为各个模块,每个模块只是负责读取和分发消息,模块间通过消息关联。
3.ROS是一系列开源工具
很多知名的机器人开源库,比如基于quaternion的坐标转换、3D点云处理驱动、定位算法SLAM等都是开源贡献者基于ROS开发的。
机器人操作系统ROS特性
1.系统安全可靠
去中心化
ROS重要节点需要热备份,以便宕机时可以随时切换。主节点宕机后,备份节点被切换为主节点,并且用备份的主节点完成信息初始化。
实时监控和报警
对于运行的节点实时监控其运行数据,并检测到严重的错误信息时报警。
基于ZooKeeper的监控和报警
节点宕机状态恢复
节点宕机的时候,需要通过重启的机制恢复节点,这个重启可以是无状态的,但有些时候也必须是有状态的,因此状态的备份格外重要。节点的宕机检测也是非常重要的,如果察觉到节点宕机,必须很快地使用备份的数据重启。
2.系统通信性能提升
由于无人驾驶系统模块很多,模块间的信息交互很频繁,提升系统通信性能会对整个系统性能提升的作用很大。
3.系统资源管理与安全性
如何解决资源分配与安全问题是无人驾驶技术的一个大课题。
ROS在自动驾驶上的应用
想要制造无人驾驶汽车,有很多关键问题需要解决。
怎么在车内搭建可靠的网络,如何管理内存、存储数据和日志记录,如何使传感器和计算机能够同时相互通信,以及如何确保它们都很稳定且安全。
机器人操作系统ROS为许多问题提供了开源解决方案。
要保证一个复杂的系统稳定、高效地运行,每个模块都能发挥出最大的潜能,需要一个成熟有效的管理机制。
在无人驾驶场景中,ROS提供了这样一个管理机制,使得系统中的每个软硬件模块都能有效地进行互动。原生的ROS提供了许多必要的功能,但是这些功能并不能满足无人驾驶的所有需求,因此我们在ROS之上进一步地提高了系统的性能与可靠性,完成了有效的资源管理及隔离。
我们相信随着无人驾驶技术的发展,更多的系统需求会被提出,比如车车互联、车与城市交通系统互联、云车互联、异构计算硬件加速等,我们也将会持续优化这个系统,力求让它变成无人驾驶的标准系统。
转载自智能网联汽车网,文中观点仅供分享交流,不代表本公众号立场,如涉及版权等问题,请您告知,我们将及时处理。