Catkin工作空间 (重点)

Posted it-cute

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Catkin工作空间 (重点)相关的知识,希望对你有一定的参考价值。

Catkin工作空间 (重点)

1 Catkin工作空间

  • 工作空间(workspace)是一个存放工程开发相关文件的文件夹。

    src:代码空间(Source Space)
    build:编译空间(Build Space)
    devel:开发空间(Development Space)
    install:安装空间(Install Space)
    
  • Catkin工作空间是创建、修改、编译catkin软件包的目录。catkin的工作空间,直观的形容就是一个仓库,里面装载着ROS的各种项目工程,便于系统组织管理调用。在可视化图形界面里是一个文件夹。

  • 我们自己写的ROS代码通常就放在工作空间中,本节就来介绍catkin工作空间的结构。

1.1 创建catkin工作空间

创建一个 catkin 工作空间:

$ mkdir -p ~/catkin_ws/src  # 创建了第二层级的文件夹src,这是放ROS软件包的地方
$ cd ~/catkin_ws/src        # 进入工作空间,catkin_make必须在工作空间这个路径上执行
$ catkin_init_workspace     # 初始化src目录,生成的CMakeLists.txt为功能包编译配置

1.2 编译工作空间

$ cd ~/catkin_ws   # 回到工作空间,catkin_make必须在工作空间下执行;
$ catkin_make     # 开始编译,调用系统自动完成编译和链接过程,构建生成目标文件

注意: catkin编译之前需要回到工作空间目录,catkin_make在其他路径下编译不会成功。

编译完成后,如果有新的目标文件产生(原来没有),那么一般紧跟着要source刷新环境,使得系统能够找到刚才编译生成的ROS可执行文件。这个细节比较容易遗漏,致使后面出现可执行文件无法打开等错误。

catkin_make命令也有一些可选参数,例如:

catkin_make [args]
  -h, --help            帮助信息
  -C DIRECTORY, --directory DIRECTORY
                        工作空间的路径 (默认为 ‘.‘)
  --source SOURCE       src的路径 (默认为‘workspace_base/src‘)
  --build BUILD         build的路径 (默认为‘workspace_base/build‘)
  --use-ninja           用ninja取代make
  --use-nmake           用nmake取‘make
  --force-cmake         强制cmake,即使已经cmake过
  --no-color            禁止彩色输出(只对catkin_make和CMake生效)
  --pkg PKG [PKG ...]   只对某个PKG进行make
  --only-pkg-with-deps  ONLY_PKG_WITH_DEPS [ONLY_PKG_WITH_DEPS ...]
                        将指定的package列入白名单CATKIN_WHITELIST_PACKAGES,
                        之编译白名单里的package。该环境变量存在于CMakeCache.txt。
  --cmake-args [CMAKE_ARGS [CMAKE_ARGS ...]]
                        传给CMake的参数
  --make-args [MAKE_ARGS [MAKE_ARGS ...]]
                        传给Make的参数
  --override-build-tool-check
                        用来覆盖由于不同编译工具产生的错误

注意, 对于 Python 3 用户,在一个空的 catkin 工作空间中第一次运行 catkin_make的命令应为:

$ catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

这将会配置 catkin_make 使用 Python 3.你可以在随后的构建中只使用 catkin_make

1.3 设置环境变量

另外,如果你查看一下当前目录应该能看到 ‘build‘ 和 ‘devel‘ 这两个文件夹。在 ‘devel‘ 文件夹里面你可以看到几个 setup.*sh 文件。source 这些文件中的任何一个都可以将当前工作空间设置在ROS工作环境的最顶层。接下来首先 source 一下新生成的 setup.*sh 文件:

$ source devel/setup.bash   # 刷新坏境

1.4 检查环境变量

要想保证工作空间已配置正确,需确保ROS_PACKAGE_PATH环境变量包含你的工作空间目录,采用以下命令查看:

$ echo $ROS_PACKAGE_PATH
#  出现 /home/<youruser>/catkin_ws/src:/opt/ros/kinetic/share

到此你的工作环境已经搭建完成。

创建好了一个ROS的工作空间了,接下来就是在catkin_ws工作空间下的src目录下新建功能包并进行功能包程序。

以上是关于Catkin工作空间 (重点)的主要内容,如果未能解决你的问题,请参考以下文章

ROS系统 创建工作空间与功能包

catkin 工作空间 - Package 组成

可以在 catkin 工作空间之外创建 ROS 节点吗?

在 ROS 工作空间中使用 catkin_make 时 Qt 出现的问题

ros开发

创建一个catkin工作空间