《 无人驾驶原理与实践》一第2章ROS入门

举报
华章计算机 发表于 2019/05/30 19:57:52 2019/05/30
【摘要】 本书摘自《 无人驾驶原理与实践》一第2章,编著是申泽邦 雍宾宾 周庆国 李良 李冠憬

第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的发展依托于一个强大的社区。wikirosorg尤其关注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源代码都是公开发布的。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。