ROS文件架构
ROS文件系统级指的是因硬盘上ROS源代码的组织形式,结构可以如下图所示:
注意:上图中的src1和src2在ros文件系统中都叫src,这里用1、2只是进行区分工作空间中的文件夹以及运行包中的文件夹的区别,其实应该是两个文件夹只有一个名字(src)。
WorkSpace — 自定义的工作空间:
|--- build:编译空间,用于存放CMake和catkin的缓存信息、配置信息和其他中间文件。
|--- devel:开发空间,用于存放编译后生成的目标文件,包括头文件、动态&静态链接库、可执行文件等。
|--- src: 源码
|-- package:功能包(ROS基本单元)包含多个节点、库与配置文件,包名所有字母小写,只能由字母、
数字与下划线组成
|-- CMakeLists.txt 配置编译规则,比如源文件、依赖项、目标文件
|-- package.xml 包信息,比如:包名、版本、作者、依赖项...(以前版本是 manifest.xml)
|-- scripts 存储python文件
|-- src 存储C++源文件
|-- include 头文件
|-- msg 消息通信格式文件
|-- srv 服务通信格式文件
|-- action 动作格式文件
|-- launch 可一次性运行多个节点
|-- config 配置信息
|-- CMakeLists.txt: 编译的基本配置
ROS文件系统相关命令
1、增
cakin_create_pkg 自定义包名 依赖包 : 创建新的ROS功能包
sudo apt install xxx :安装ROS功能包
2、删
sudo apt purge xxx :删除某个安装包
3、查
rospack list :列出所有功能包
rospack find 包名 : 查找某个功能包是否存在,如果存在返回安装路径
roscd 包名 : 进入某个功能包
rosls 包名 : 列出某个包下的文件
apt search xxx : 搜索某个功能包
4、改
rosed 包名 文件名 : 修改功能包文件
5、执行
5.1roscore
roscore : 是ROS的系统先决条件节点和程序的集合,必须运行roscore才能使ROS节点进行通信
roscore将启动(ros master)(ros 参数服务器)(rosout 日志节点)
5.2rosrun
rosrun 包名 可执行文件名 : 运行指定的ROS节点
比如:rosrun turtlesim turtlesim_node
5.3roslaunch
roslaunch 包名 launch文件名 : 执行某个包下的launch文件
ROS计算图
1、计算图简介
ros 程序运行之后,不同的节点之间是错综复杂的,ROS 中提供了一个实用的工具:rqt_graph。rqt_graph能够创建一个显示当前系统运行情况的动态图形。ROS 分布式系统中不同进程需要进行数据交互,计算图可以以点对点的网络形式表现数据交互过程。rqt_graph是rqt程序包中的一部分。
2、计算图演示
首先要进行节点的运行
然后再启动新终端,键入:rqt_graph 或 rosrun rqt_graph rqt_graph ,可以最终看到网络拓扑图,可以显示出不同节点之间的关系。