自动驾驶中的机器人操作系统ROS
''要保证一个复杂的系统稳定、高效地运行 , 每个模块都能发挥出最大的潜能 , 需要一个成熟有效的管理机制 。 ''
1.什么是机器人操作系统ROS
1.ROS(RobotOperatingSystem)是一个操作系统
【自动驾驶中的机器人操作系统ROS】ROS是对机器人的硬件进行了封装 , 不同的机器人、不同的传感器 , 在ROS里可以用相同的方式表示(topic等) , 供上层应用程序(运动规划等)调用 。

文章图片
计算机OS与机器人OS对比示意图 , 图片引用自Nao
2.ROS是一种跨平台模块化软件通讯机制
ROS用节点(Node)的概念表示一个应用程序 , 不同node之间通过事先定义好格式的消息(Topic) , 服务(Service) , 动作(Action)来实现连接 。
因为ROS本身是基于消息机制的 , 开发者可以根据功能把软件拆分成为各个模块 , 每个模块只是负责读取和分发消息 , 模块间通过消息关联 。
3.ROS是一系列开源工具
很多知名的机器人开源库 , 比如基于quaternion的坐标转换、3D点云处理驱动、定位算法SLAM等都是开源贡献者基于ROS开发的 。
2.机器人操作系统ROS特性
1.系统安全可靠
去中心化
ROS重要节点需要热备份 , 以便宕机时可以随时切换 。 主节点宕机后 , 备份节点被切换为主节点 , 并且用备份的主节点完成信息初始化 。
实时监控和报警
对于运行的节点实时监控其运行数据 , 并检测到严重的错误信息时报警 。

文章图片
基于ZooKeeper的监控和报警
节点宕机状态恢复
节点宕机的时候 , 需要通过重启的机制恢复节点 , 这个重启可以是无状态的 , 但有些时候也必须是有状态的 , 因此状态的备份格外重要 。 节点的宕机检测也是非常重要的 , 如果察觉到节点宕机 , 必须很快地使用备份的数据重启 。
2.系统通信性能提升
由于无人驾驶系统模块很多 , 模块间的信息交互很频繁 , 提升系统通信性能会对整个系统性能提升的作用很大 。
3.系统资源管理与安全性
如何解决资源分配与安全问题是无人驾驶技术的一个大课题 。
3.ROS在自动驾驶上的应用
想要制造无人驾驶汽车 , 有很多关键问题需要解决 。
怎么在车内搭建可靠的网络 , 如何管理内存、存储数据和日志记录 , 如何使传感器和计算机能够同时相互通信 , 以及如何确保它们都很稳定且安全 。
机器人操作系统ROS为许多问题提供了开源解决方案 。

文章图片
要保证一个复杂的系统稳定、高效地运行 , 每个模块都能发挥出最大的潜能 , 需要一个成熟有效的管理机制 。
在无人驾驶场景中 , ROS提供了这样一个管理机制 , 使得系统中的每个软硬件模块都能有效地进行互动 。 原生的ROS提供了许多必要的功能 , 但是这些功能并不能满足无人驾驶的所有需求 , 因此我们在ROS之上进一步地提高了系统的性能与可靠性 , 完成了有效的资源管理及隔离 。
我们相信随着无人驾驶技术的发展 , 更多的系统需求会被提出 , 比如车车互联、车与城市交通系统互联、云车互联、异构计算硬件加速等 , 我们也将会持续优化这个系统 , 力求让它变成无人驾驶的标准系统 。
推荐阅读
- 原创 爱情中的女人,都希望得到男人的这几样东西,男人别假装不懂
- 省油王中的本田CRV怎么样?CRV车主说的是实话!
- 原创 刘备生命中的四大贵人,诸葛亮排名末尾,排第一的是个商人
- 好吃又不增脂,它们才是泡面中的减肥伴侣
- 「连麦两会」两位90后村支书隔空分享战“疫”中的乡村管理经验,共谋致富奔小康之路
- 成功抄底是每个散户心中的梦想,前提得要
- 每个人眼中的洛神不一样,那你眼中的朱婷等女排是什么样?
- 12万多带L2级自动驾驶,标配8气囊,首购雷凌推荐豪华版
- 震惊,红小豆竟能帮助你清除血管中的胆固醇!你知道吗?
- 炉石传说:恶毒猎上分攻略,释放你心中的野兽
