一文读懂自动驾驶中的机器人操作系统ROS

一.什么是机器人操作系统ROS

1.ROS(Robot Operating System)是一个操作系统

ROS是对机器人的硬件进行了封装,不同的机器人、不同的传感器,在ROS里可以用相同的方式表示(topic等),供上层应用程序(运动规划等)调用。

一文读懂自动驾驶中的机器人操作系统ROS_第1张图片
计算机OS与机器人OS对比示意图,图片引用自Nao

2.ROS是一种跨平台模块化软件通讯机制

ROS用节点(Node)的概念表示一个应用程序,不同node之间通过事先定义好格式的消息(Topic),服务(Service),动作(Action)来实现连接。

因为ROS本身是基于消息机制的,开发者可以根据功能把软件拆分成为各个模块,每个模块只是负责读取和分发消息,模块间通过消息关联。

一文读懂自动驾驶中的机器人操作系统ROS_第2张图片

3.ROS是一系列开源工具

很多知名的机器人开源库,比如基于quaternion的坐标转换、3D点云处理驱动、定位算法SLAM等都是开源贡献者基于ROS开发的。


二.机器人操作系统ROS特性

1.系统安全可靠

去中心化

ROS重要节点需要热备份,以便宕机时可以随时切换。主节点宕机后,备份节点被切换为主节点,并且用备份的主节点完成信息初始化。

实时监控和报警

对于运行的节点实时监控其运行数据,并检测到严重的错误信息时报警。
一文读懂自动驾驶中的机器人操作系统ROS_第3张图片

 基于ZooKeeper的监控和报警

节点宕机状态恢复

节点宕机的时候,需要通过重启的机制恢复节点,这个重启可以是无状态的,但有些时候也必须是有状态的,因此状态的备份格外重要。节点的宕机检测也是非常重要的,如果察觉到节点宕机,必须很快地使用备份的数据重启。

2.系统通信性能提升
由于无人驾驶系统模块很多,模块间的信息交互很频繁,提升系统通信性能会对整个系统性能提升的作用很大。

3.系统资源管理与安全性
如何解决资源分配与安全问题是无人驾驶技术的一个大课题。


三.ROS在自动驾驶上的应用

想要制造无人驾驶汽车,有很多关键问题需要解决。

怎么在车内搭建可靠的网络,如何管理内存、存储数据和日志记录,如何使传感器和计算机能够同时相互通信,以及如何确保它们都很稳定且安全。

机器人操作系统ROS为许多问题提供了开源解决方案。
一文读懂自动驾驶中的机器人操作系统ROS_第4张图片

要保证一个复杂的系统稳定、高效地运行,每个模块都能发挥出最大的潜能,需要一个成熟有效的管理机制。

在无人驾驶场景中,ROS提供了这样一个管理机制,使得系统中的每个软硬件模块都能有效地进行互动。原生的ROS提供了许多必要的功能,但是这些功能并不能满足无人驾驶的所有需求,因此我们在ROS之上进一步地提高了系统的性能与可靠性,完成了有效的资源管理及隔离。

我们相信随着无人驾驶技术的发展,更多的系统需求会被提出,比如车车互联、车与城市交通系统互联、云车互联、异构计算硬件加速等,我们也将会持续优化这个系统,力求让它变成无人驾驶的标准系统。



 

你可能感兴趣的:(知识,机器人,自动驾驶,人工智能,ROS)