ROS入门_1.19 总结篇: ROS基础概念与基本操作

一:ros的系统架构

    ros系统架构主要分为三个部分:

文件系统级

计算图级

开源社区级

1. 文件系统级


功能包(package):是ROS中软件组织的基本形式,一个功能包具有最小的结构和最少的内容,用于创建ROS程序;--指的是一种特定的文件结构和文件夹组合

功能包清单:manifests.xml  通过这个文件实现对功能包的管理;

功能包集(stack):将几个具有某些功能的功能包组织在一起,如导航功能包集;

功能包集清单:stack.xml

消息类型:消息类型的说明存储在 my_package/msg/MyMessageType.msg 中

服务类型:对服务类型的描述说明文件在ROS中定义了服务的请求和响应的数据结构,存储在 mypackage/MyserviceType.srv 中;


1.1 功能包

      如果你在一个文件夹下看到 manifest.xml ,那么这个文件夹很可能是一个功能包;其中<depend> 标记显示当前功能包安装之前必须先安装哪些功能包;<export> 标记告诉系统编译该功能需要使用什么编译标志,引用哪些头文件等;


1.2 文件系统工具 
    ROS中大量代码分散在众多的packages和stacks之中. 使用Linux命令工具ls 和 cd已不能满足检索要求。因此ROS提供了一套自己的命令工具来完成与这些命令相似的工作. (要善于使用ros的命令工具,否则使用Linux命令将会很麻烦)

    如果不知如何使用,可用 rosxxx help 查看此命令的用法:


1.2.1 rospack

     USAGE: rospack <command> [options] [package]

(1) find的参数,作用是返回相应package或者stack的目录路径

robot@robot:~$ rospack find rosaria_client
/home/robot/catkin_ws/src/rosaria_client
1.2.2 roscd  用于快速进入相关功能包的目录(若使用cd 则需输入完整目录)

robot@robot:~$ roscd rosaria_client
robot@robot:~/catkin_ws/src/rosaria_client$ 
1.2.3 rosed 可以使你通过package的名字直接编辑一个package中的文件而不用输入package的整个路径.  

 $ rosed [package_name] [filename]

robot@robot:~$ rosed rosaria_client teleop.cpp
1.2.4  roscp 从功能包复制文件

usage: roscp package filename target

roscp rosaria_client teleop.cpp ~/catkin_ws/src/1.cpp
1.2.5  roscd log用于切换到ROS存储知识文件的目录 

1.2.6 使用rosls 用于列出指定的package和stack中的文件和目录

详见相关此链接:http://wiki.ros.org/rosbash 点击打开链接


2. 计算图级

     ROS会创建一个连接到所有进程的网络,在系统中的任何节点都可以访问此网络,并通过该网络与其他节点交互,获取其他节点发布的信息,并将自身数据发布到网络上。

  

node : 就是一个可执行程序
topic :topic 是一个话题,节点发布消息到话题上面 
message:在一个消息,消息是ROS的一个数据类型。用于订阅和发布一个话题 
rosout :相当于 stdout 
master:节点服务器,用于帮助找到彼此的节点
rosnode list 能够列出所有活跃的节点 
rostpolic list 所有节点运行的话题 
roservice list 所有节点的运行服务 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值