ROS File System

Catkin工作空间

ROS Workspace - catkin Workspace

  1. ROS Workspace - 组织ROS项目文件的文件夹
  2. catkin - 编译工具,将ROS项目的源码编译成可执行的二进制文件,Catkin是基于CMake的编译构建系统
  3. 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

  1. 组织ROS应用中不同的功能模块

  2. 位于src空间中,存放用户代码

  3. ROS Package必须包括两个文件:

    1. package.xml :包括了package的描述信息

      name, description, version, maintainer(s), license

      authors, dependencies, plugins, etc…

    2. 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编译的工作流程如下:

  1. 首先在工作空间catkin_ws/src/下递归的查找其中每一个ROS的package
  2. Catkin(CMake)编译系统依据CMakeLists.txt文件,生成makefiles(放在catkin_ws/build/中)
  3. 然后make刚刚生成的makefiles等文件,编译链接生成可执行文件(放在catkin_ws/devel中)

Catkin是将cmake与make指令做了封装从而完成整个编译过程的工具。

../../_images/Catkin_Build_System.png

更多ROS文件层级相关的概念可以参考以下内容: