欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ROS学习系列教程二 整体框架

程序员文章站 2022-03-10 16:17:52
上一节已经说了,怎么安装系统,现在系统安装好了,是不是要开始写程序了,不要着急,先了解什么是ROS,ROS 的整体框架,后面好继续学习,参考网上的一些资料整理的,侵权请及时联系。一、起源随着机器人领域的快速发展和复杂化,代码的复用性和模块化的需求原来越强烈,而已有的开源机器人系统又不能很好的适应需求。2010年Willow Garage公司发布了开源机器人操作系统ROS(robot operating system),很快在机器人研究领域展开了学习和使用ROS的热潮。ROS系统是起源于2007年斯坦福大...

上一节已经说了,怎么安装系统,现在系统安装好了,是不是要开始写程序了,不要着急,先了解什么是ROS,ROS 的整体框架,后面好继续学习,参考网上的一些资料整理的,侵权请及时联系。
一、起源
随着机器人领域的快速发展和复杂化,代码的复用性和模块化的需求原来越强烈,而已有的开源机器人系统又不能很好的适应需求。2010年Willow Garage公司发布了开源机器人操作系统ROS(robot operating system),很快在机器人研究领域展开了学习和使用ROS的热潮。ROS系统是起源于2007年斯坦福大学人工智能实验室的项目与机器人技术公司Willow Garage的个人机器人项目(Personal Robots Program)之间的合作,2008年之后就由Willow Garage来进行推动。已经有四年多的时间了 (视频)。随着PR2那些不可思议的表现,譬如叠衣服,插插座,做早饭,ROS也得到越来越多的关注。Willow Garage公司也表示希望借助开源的力量使PR2变成“全能”机器人。
二、目标
ROS是开源的,是用于机器人的一种后操作系统,或者说次级操作系统。它提供类似操作系统所提供的功能,包含硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间的消息传递、程序发行包管理,它也提供一些工具程序和库用于获取、建立、编写和运行多机整合的程序。
ROS的首要设计目标是在机器人研发领域提高代码复用率。ROS是一种分布式处理框架(又名Nodes)。这使可执行文件能被单独设计,并且在运行时松散耦合。这些过程可以封装到数据包(Packages)和堆栈(Stacks)中,以便于共享和分发。ROS还支持代码库的联合系统。使得协作亦能被分发。这种从文件系统级别到社区一级的设计让独立地决定发展和实施工作成为可能。上述所有功能都能由ROS的基础工具实现。
三、主要特点
ROS的运行架构是一种使用ROS通信模块实现模块间P2P的松耦合的网络连接的处理架构,它执行若干种类型的通讯,包括基于服务的同步RPC(远程过程调用)通讯、基于Topic的异步数据流通讯,还有参数服务器上的数据存储。但是ROS本身并没有实时性。
1、点对点设计 一张图就看明白了,不细说了
ROS学习系列教程二 整体框架
这个点对点设计在后期激光导航课程中会进行详细讲解。
2、多语言支持
ROS现在支持许多种不同的语言,例如C++、Python、Octave和LISP,也包含其他语言的多种接口实现。其实在我看来,主要还是C和C++,其他语言主要是写的脚本,整体框架还是C和C++。
3、精简与集成
ROS利用了很多现在已经存在的开源项目的代码,比如说从Player项目中借鉴了驱动、运动控制和仿真方面的代码,从OpenCV中借鉴了视觉算法方面的代码,从OpenRAVE借鉴了规划算法的内容,还有很多其他的项目。在每一个实例中,ROS都用来显示多种多样的配置选项以及和各软件之间进行数据通信,也同时对它们进行微小的包装和改动。ROS可以不断的从社区维护中进行升级,包括从其他的软件库、应用补丁中升级ROS的源代码。
4、工具包丰富 这个也不多说,后面用的什么,讲什么
ROS学习系列教程二 整体框架

5、免费并且开源 这个没什么讲的,就是不要钱

好,这一节就这样,若有错误,欢迎指正,技术支持联系方式QQ:2228398717

本文地址:https://blog.csdn.net/qq1451909735/article/details/107450895