《 无人驾驶原理与实践》一第2章ROS入门
第2章
ROS入门
ROS[1](Robot Operating System)是目前最广泛使用的一种开源机器人软件平台,它的诞生极大地提升了机器人系统开发的效率[2]。目前,部分无人驾驶系统的软件实现仍然依赖于ROS平台。对于高速自动驾驶开发,ROS的实时性略显不足,但由于ROS具有强大的系统底层通信功能,以及来自世界各地的优秀工程师的共同维护,在无人驾驶底层系统的实现上,ROS仍然是开源框架中最好的选择,诸如百度Apollo、Autoware、Udacity等无人驾驶车辆原型都是基于ROS开发的。百度Apollo在ROS平台的基础上增加了实时性的框架,以满足高速自动驾驶实时控制的需求。同时,ROS2已经开始在积极探索和开发实时性系统通信功能,以进一步满足高速自动驾驶开发需求。
2.1ROS简介〖*2〗
2.1.1ROS是什么
ROS即机器人操作系统,包括[6]:
▲ 通信平台:ROS提供了一种发布/订阅式的通信框架,用以简单、快速地构建分布式计算系统[3]。
▲ 工具:ROS提供了大量可视化、调试等工具组合,用以配置、启动、自检、调试、可视化、仿真、登录、测试、终止分布式计算系统。
▲ 能力:具有控制、规划、预测、定位操纵等功能。
▲ 平台支持:ROS的发展依托于一个强大的社区。wikirosorg尤其关注ROS的兼容性和支持文档,它提供了一套“一站式”方案使得用户能够快速搜索并学习来自全球开发者数以千计的ROS程序包。
2.1.2ROS的历史
ROS起源于2007年斯坦福大学人工智能实验室的STAIR项目与机器人技术公司Willow Garage的个人机器人项目(Personal Robots Program)之间的合作,2008年之后由Willow Garage来推动,如今已被许多学校、公司研发机构等使用,为机器人编程提供了快速方法和标准。
2.1.3ROS的特性
ROS的特性如下:
▲ 点对点设计:ROS的点对点设计,以及服务和节点管理器等机制,可以实现很好的分布式网络运算拓扑结构,能够适应多机器人遇到的挑战。
▲ 分布式设计:程序可以在多台网络计算机中运行和通信。
▲ 多语言:ROS现在支持多种语言,如C++、Python、Octave和LISP,也包含其他语言的多种接口实现。语言无关的消息处理让多种语言可以自由混合和匹配使用。
▲ 轻量级:鼓励将所有驱动和算法逐渐发展成为与ROS没有依赖的单独的库。ROS建立的系统具有模块化的特点,各模块中的代码可以单独编译,而且编译使用的CMake工具使它很容易就实现精简的理念。
▲ 免费且开源:大多数的ROS源代码都是公开发布的。
- 点赞
- 收藏
- 关注作者
评论(0)