• Catkin工作空间 (重点)


    Catkin工作空间 (重点)

    [TOC]

    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目录下新建功能包并进行功能包程序。

  • 相关阅读:
    阿里P8架构师谈:阿里双11秒杀系统如何设计?
    秒杀系统设计的知识点
    秒杀系统架构优化思路
    秒杀系统解决方案
    Entity Framework Code First (七)空间数据类型 Spatial Data Types
    Entity Framework Code First (六)存储过程
    Entity Framework Code First (五)Fluent API
    Entity Framework Code First (四)Fluent API
    Entity Framework Code First (三)Data Annotations
    Entity Framework Code First (二)Custom Conventions
  • 原文地址:https://www.cnblogs.com/IT-cute/p/13232394.html
Copyright © 2020-2023  润新知