Note:偶然看到的滴滴研究院的无人驾驶竞赛,了解一下。

ROS:专为机器人软件开发所设计出来的一套电脑操作系统架构。是一个开源的元级操作系统(后操作系统),提供类似操作系统的服务,包括硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间的消息传递、程序发行包管理,同时提供一些工具和库用于获取、建立、编写和执行多机融合的程序。

插曲:什么是元级操作系统呢?

ROS的首要设计目标是在机器人研发领域提高代码复用率。ROS是一种分布式处理框架(又名Nodes),使得可执行文件能被单独设计,并且在运行时松散耦合。

ROS概念,分为三个层次:

Filesystem level:

文件系统层概念就是你在碟片里遇到的资源,例如:

Packages:ROS的基本组织,可以包含任意格式文件。一个Package可以包含ROS执行时处理的文件(nodes),一个ROS的依赖库 ,一个数据集合,配置文件或一些有用的文件在一起。

Manifests:manifest.xml提供关于Package元数据,包括它的许可信息和Package之间依赖关系,以及语言特性信息像编辑旗帜(编译优化参数)。

Stacks:Stacks是Packages的集合,提供一个完整的功能,像“navigation stack”  Stack与版本号关联,同时也是如何发行ROS软件方式的关键。

Manifest Stack Manifests:Stack manifes(stack.xml)提供关于Stack元数据,包括它的许可信息和Stack之间依赖关系。

Message(msg) types:信息描述,位置在路径:my_package/msg/MyMessageType.msg,定义数据类型在ROS的messages ROS里面。

Serivice(srv) types:服务描述,位置在路径:my_package/srv/MyServiceType.srv,定义这个请求和相应的数据结构在ROS service里面。

Communication level

Computation Graph level:

计算图就是用ROS的P2P(peer-to-peer 网络传输协议)网络集中处理所有的数据。

最新文章

  1. Struts2入门(五)——OGNL和标签库
  2. 【Mybatis高级映射】一对一映射、一对多映射、多对多映射
  3. C#导入导出数据你该知道的方法。
  4. SQL Server 取日期时间部分
  5. 【原创】验证代理IP是否有用
  6. Oracle中建表和指定表空间
  7. EBS应用服务器启动指南
  8. Java 中方法的重载
  9. Php的安装与配置
  10. POJ1573——Robot Motion
  11. Qt实现360安全卫士10.0界面(编译时出现的一些问题)
  12. Nginx+Varnish
  13. shell二位数组——终端字符下降动画
  14. nginx知识点简单回顾
  15. MySQL5.7.21解压版安装详细教程以及一些问题的解决
  16. MongoDB自学(4)
  17. jquery解决file上传图片+图片预览
  18. Provider Pattern for Beginners in .net
  19. 前端打印日志到localStroge并导出
  20. sql 列名无效

热门文章

  1. Codeforces Round #587
  2. 图论--网络流--费用流--POJ 2156 Minimum Cost
  3. win10 手动安装mysql-8.0.11-winx64.zip
  4. CSS躬行记(9)——网格布局
  5. Navicat12.1系列安装,破解以及破解navicat报错的解决方案
  6. Pycharm修改HTML模板
  7. 深入理解JS中的对象(一)
  8. c++(qt)程序员微信群
  9. Android 源码结构分析
  10. [hdu4631 Sad Love Story]最近点对,枚举