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

网友投稿 809 2022-05-30

第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提供了大量可视化、调试等工具组合,用以配置、启动、自检、调试、可视化、仿真、登录、测试、终止分布式计算系统。

     ▲    能力:具有控制、规划、预测、定位操纵等功能。

《 无人驾驶原理与实践》一第2章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源代码都是公开发布的。

机器人 自动驾驶 华为开源镜像站 Mirrors

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring MVC DispatcherServlet改造为 CSE RestServlet 常见问题汇编
下一篇:【鲲鹏云移植干货分享14】RocketMQ 4.0.0安装指导
相关文章