ROS File System¶
Catkin工作空间¶
ROS Workspace - catkin Workspace
- ROS Workspace - 组织ROS项目文件的文件夹
- catkin - 编译工具,将ROS项目的源码编译成可执行的二进制文件,Catkin是基于CMake的编译构建系统
- catkin Workspace - 使用catkin作为编译工具的ROS Workspace, 主要包含src空间、devel空间、build空间、log空间
创建catkin工作空间
在home目录下打开新的终端,依次输入以下指令创建catkin工作空间:
mkdir -p tr_tutorial_ws/src
cd tr_tutorial_ws
catkin init
catkin build
ROS Package¶
ROS Package
组织ROS应用中不同的功能模块
位于src空间中,存放用户代码
ROS Package必须包括两个文件:
package.xml :包括了package的描述信息
name, description, version, maintainer(s), license
authors, dependencies, plugins, etc…
CMakeLists.txt :构建package所需的CMake文件
调用Catkin的函数/宏
解析package.xml
找到其他依赖的catkin软件包
将本软件包添加到环境变量
创建ROS Package
进入src空间,使用以下命令创建ROS Package:
cd src
# catkin_create_pkg <new_package_name> <package_deps>
catkin_create_pkg topic_demo rospy std_msgs
通过以下指令可以安装整个src空间中所有的Package所需的依赖:
cd <src space>
rosdep install --from-paths . --ignore-src -y
Catkin编译的工作流程¶
Catkin编译的工作流程如下:
- 首先在工作空间catkin_ws/src/下递归的查找其中每一个ROS的package
- Catkin(CMake)编译系统依据CMakeLists.txt文件,生成makefiles(放在catkin_ws/build/中)
- 然后make刚刚生成的makefiles等文件,编译链接生成可执行文件(放在catkin_ws/devel中)
Catkin是将cmake与make指令做了封装从而完成整个编译过程的工具。
更多ROS文件层级相关的概念可以参考以下内容: