学习新事物方法高于技术本身,如果没有把握"BIG PICTURE"的话很难理解进去通过以下几点进行理解ROS:
- ROS实际上不是操作系统,他只是一个通信的框架一个代码管理的架构。任务嘚时序规划和CPU资源分配工作都是靠LINUX来实现所以,ROS脱离不了LINUXROS依附在LINUX上。
- 机器人的核心平台是:多传感器和处理器之间的通信处理器和執行器之间的通信,这些通信必须保持一个统一的时钟试想如果从传感器传回来的数据时间上不同步,那就谈不上数据融合了
- ROS主要解決了两个问题:其一,让设备间的通讯有一个统一的调度中枢(ROSCORE)通过这个中枢控制信号传递,让开发者明白机器人的活动状态其二,代码管理的框架让不同开发者采用不同语言进行混合开发,这样可以集成各种软件的优势协同工作有点类似于异构系统。
ROS系统的架構主要被设计和划分成三部分没一部分都代表一个层级的概念:
第一级是文件系统级。你将会使用这一组概念来理解ROS的内部构成文件夾结构,以及工作所需要的核心文件
第二级是计算图级,体现的是进程和系统之间的通信你将会看到ROS各个概念和功能,包括建立系统处理各类进程,与多台计算机通信等
第三级是开源社区级。这个层级是非常重要的因为开源社区的大力支持才使得ROS在快速的发展。
1、理解ROS文件系统级别
刚接触ROS里面涉及了很多的陌生的概念,但当你理解了这些概念之后就会轻车熟路,倍感亲切了ROS的文件系统结构洳下图所示:
- 功能包(Package):功能包是ROS中软件组织的基本形式。一个功能包具有最小的结构和最少的内容用于创建ROS程序。它可以包含ROS运行嘚进程(节点)配置文件等。
- 功能包清单(Manifest):功能包清单提供关于功能包许可信息,依赖关系编译标志等的信息。功能包清单是┅个blogs.com/cv-pr/p/4837240.html