- 工作空间
一个典型的ROS工作空间目录结构如下:
所有ROS程序都必须放置在某个ROS工作空间(workspace)下,我们在主目录下创建一个名为catkin_ws的ROS工作空间(ROS工作的空间名字可以随便取,一般约定俗成以_ws结尾).
catkin_ws/ # 工作空间
├── src/ # src目录放置源码
│ ├── CMakeLists.txt # 顶层CMakeLists.txt
│ ├── package_1/ # ROS包1
│ ├── package_2/ # ROS包2
│ └── package_n/ # ROS包n
├── build/ # build目录放置编译结果
├── devel/ # devel目录放置开发相关文件
│ └── setup.bash # 运行该脚本才能让该工作空间下的包被ROS发现
└── install/ # install目录放置安装相关文件
- ROS节点
在运行ROS节点之前,应先启动一个命令行窗口,执行roscore命令启动一个ROS核心,才能执行其他的ROS命令。
运行ROS节点的命令格式如下:
rosrun ROS包名 ROS节点名 [参数1:=值1 参数2:=值2]
例如想要运行feature_tracker包中的feature_tracker节点,需要执行以下命令:
roscore&rosrun feature_tracker feature_tracker _config_file:=~/learning_ros_ws/src/VINS-Mono/config/euroc/euroc_config.yaml _vins_path:=~/learning_ros_ws/src/VINS-Mono
- launch文件
一个完整的应用通常包含很多个ROS节点,一次使用rosrun命令启动这些节点并配置参数较为麻烦,因此将一系列节点和运行参数写进launch文件中,通过roslaunch命令一次启动多个节点。
launch文件一般放在ROS包下的launch目录
运行roslaunch文件的命令格式如下:
rosrun ROS包名 launch文件名
ROS会自动在第一次运行launch文件的窗口调用roscore(可以理解为每个launch文件都有一个缺省的roscore节点),因此只需要一个命令行窗口就可以运行所有相关的ROS节点。
例如,想要运行euroc.launch,命令如下
roslaunch vins_estimator euroc.launch # 运行vins_estimator包下的euroc.launch文件
- package
一个文件夹要被ROS认为是package的话,必须包含以下两个文件:CMakeList.txt和package.xml
老版的xml叫做Manifest.xml