ros基础学习(一)

注:

笔记是阅读《ros机器人程序设计》和ros wiki记录的,想了解的更详细可以阅读这些内容。 

ROS

Robot Operating System机器人操作系统缩写,提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。
它提供了硬件抽象、设备驱动、函数库、可视化工具、消息传递和软件包管理等诸多功能

ROS安装

ros安装wiki
这里安装介绍的很详细,之后的学习也可以阅读wiki

ros系统架构

1:文件系统级

这里写图片描述

功能包:
ros软件组织的基本形式,具有创建ros程序的最小结构和最少内容。用一种特定的文件结构和文件夹组合。
结构:
    include/package_name:目录包含你所需要的库的头文件。
    msg/:你要开发的非标准信息,ros中包含很多标准信息。
    scripts/:包括bash, python,或任何其他的可执行脚本文件。
    src/: 源代码文件。
    srv:ros中的服务类型。
    CMakeList.txt:是cmake生成的文件。

创建使用功能包用到ros命令行工具,rospack,它能获取信息或再系统中查找工作空间。
功能包清单:
提供一个功能包许证信息,依赖关系,编译标记信息等,一个包的清单由package.xml文件管理
功能包集::
多个功能包组合在一起。
消息
Message (msg) type , 消息是一个进程(节点)发送到其他进程(节点)的信息。
    ros使用一种简化的消息类型语言来描述消息,Ros中有很多预定义的消息类型,自定义的消息类型放到msg目录下,
    以.msg结尾,
    消息类型:  字段和常亮     eg:int32 id

了解消息的ros命令行工具, rosmsg,
服务
Service (srv)type, 服务描述,存储着ros中关于服务的定义,由每个进程提供服务的请求和响应。
    一种简化的服务描述语言,和msg相似,用来是实现进程(节点)之间的直接请求和响应,服务保存再srv目录下。
    以.srv文件后缀结尾。

ros控制服务的命令行工具 , rossrv.
工作空间:
一个包含功能包,可编译源文件,编译包的文件夹。
包含目录:
    src:源码空间,放置功能包,项目,克隆包等,重要的文件有CMakeList.txt,当配置功能包时CMakeList.txt
        调用cmake
    build:cmake和catkin为功能包和项目保存缓存信息,配置和其他中间件文件。
    devel:开发空间,用来保存编译后的程序。

2:计算图级

ros会创建一个链接到所有进程(节点)的网络,在这个网络中,所有的节点都可以访问这个网络,并通过这个网络与
其他节点进行交互,获取其他节点发布到网络的信息,

计算图级示例图。
示例图

节点:
主要的计算执行进程,创建并链接到ros网络,最好让每个节点都执行单一功能,这样更好维护。
    rosnode为节点维护的命令行工具。
节点管理器
用于节点的名称注册和查找
参数服务器
能使数据通过关键字存储再一个系统的核心位置
主题:
由ros网络对消息进行的路由和消息管理的数据总线,每条消息都要发布到响应的主题,节点可以通过订阅主题,
    接受其他节点发布到该主题的消息。可以说主题就是一个中转站。
服务
区别与节点,节点的交互需要通过主题,是多对多的交互,服务是从某一个节点获得请求或响应,允许我们
    与某节点直接进行交互,注意这里的服务名唯一。
rossrv
消息记录包
类似日志的工能,保存ros中的消息,

3:开源社区级

这里可以网上了解,主要是ros的资源,通过独立的网络社区分享软件和知识。

猜你喜欢

转载自blog.csdn.net/tst116/article/details/79385538