ROS文件系统
ROS文件系统级指的是在硬盘上ROS源代码的组织形式,其结构大致可以如下图所示:
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文件系统相关命令
ROS 的文件系统本质上都还是操作系统文件,我们可以使用Linux命令来操作这些文件,不过,在ROS中为了更好的用户体验,ROS专门提供了一些类似于Linux的命令,这些命令较之于Linux原生命令,更为简介、高效。文件操作,无外乎就是增删改查与执行等操作,接下来,我们就从这五个维度,来介绍ROS文件系统的一些常用命令。
1、增
catkin_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 包名 文件名 (修改功能包文件)
需要安装vim
比如:rosed turtlesim Color.msg
5.执行
5.1roscore
是 ROS 的系统先决条件节点和程序的集合, 必须运行 roscore 才能使 ROS 节点进行通信。
roscore 将启动:
-
ros master
-
ros 参数服务器
-
rosout 日志节点
用法:
roscore
或(指定端口号)
roscore -p xxxx
5.2rosrun
rosrun 包名 可执行文件名 (运行指定的ROS节点)
比如: rosrun turtlesim turtlesim_node
5.3 roslaunch
roslaunch 包名 launch文件名 (执行某个包下的 launch 文件)