4-ROS1-catkin相关REP128文档

本教程介绍了catkin的HFS文件夹布局,有助于读者理解catkin包的各个空间概念。至于为什么选择deepin而不是ROS通用的ubuntu,也仅仅是为了支持国产系统。鉴于本人水平有限,如哪位攻城狮网友发现本文存在的问题,烦请留言指正,谢谢!

摘要

REP为文档和调试过程中如何引用计算机路径提供了命名约定

基本原理

编写这个REP的目的是为了读写文档更容易,统一,并消除交流过程中的歧义。

推荐布局

workspace_folder/        --工作区
  src/                   --源码空间
    CMakeLists.txt       --catkin/cmake/toplevel.cmake的一个链接
    package_1/
      CMakeLists.txt
      package.xml
    ...
    package_n/
      CATKIN_IGNORE      --可选标记,用于告知不处理package_n,此文件的类型[目录,常规文件均可]不重要,甚至可以是一个悬空的链接.
      CMakeLists.txt
      package.xml
  build/                 --编译空间,在此空间调用构建系统,不一定在工作区中
    CATKIN_IGNORE        --标记此文件夹在构建遍历时可忽略。在源码空间在于工作区顶层目录时,此文件要为空。
  devel/                 --开发空间
    bin/
    etc/
    include/
    lib/
    share/
    .catkin              --标记该目录是开发空间,此文件包含用分号分隔的源码空间路径列表
    env.bash
    setup.bash
    setup.sh
    ...
  install/               --安装空间,已安装文件所在位置,不一定在工作区中
    bin/
    etc/
    include/
    lib/
    share/
    .catkin              --标记此文件夹为安装空间,文件是空的
    env.bash
    setup.bash
    setup.sh
    ...

工作区中的元素

当谈到工作区时有以下几个名称:

  • 工作区-workspace:工作空间是您要在其中进行开发的文件夹。此目录保存与开发有关的文件有助于保持开发模型的分离。
  • 源码空间 source space:catkin会在源码空间所在目录查找要构建的包。这个目录在工作区的顶层目录,并存储toplevbel.cmake[即包顶层的CMakeLists.txt]。每个希望catkin从源码编译的包都必须是这个目录的子目录。
  • 构建空间 build space:是调用cmake生成CMakeCache等工作目录的文件夹.典型的cmake调用方式如下:
cmake ../src
  • 开发空间 development space:开发空间是在安装前生成的二进制文件和库存放的目录。此目录近似于FHS布局,但是只包含来自源码空间的文件。在构建完成后,此文件夹将包含运行已构建包中节点所需要的所有文件。开发空间不能是包含ROS包的文件夹。

  • 安装空间 install space:如果调用了cmake install,cmake将所有要安装的文件复制到此目录。可以使用-DCMAKE_INSTALL_PREFIX=作为cmake选项将其安装空间设置为任何目录。cmake的默认值是/usr/local/。安装空间和开发空间也不能嵌套。

    • 系统安装空间[system install space]:系统安装空间是安装空间的一个特例,它期望所有用户都可共享安装。通常默认值是/opt/ros/ROSDISTRO
  • 结果空间 result space:结果空间也可用作开发空间或者安装空间。从视觉来区分的话,结果空间仅仅是有result-space。建议在文档中将结果空间成为result-space.例如
    shell source RESULT-SPACE/setup.bash

overlay

catkin风格的工作空间,可将一个工作空间叠加在另外一个工作空间上面,任何在高覆盖层的包会掩盖低覆盖层的包。
**注意:**覆盖任何包时,依赖此包的所有包都会被覆盖。创建叠加的时候必须检查此选项。catkin在devel和install使用FHS风格布局。使用指向devel或者install空间的CMAKE_PREFIX_PATH可以将这些空间包含到另一个工作空间中。如果是一个安装空间必须调用make install ,devel空间必须调用make

示例

假设在家目录下有如下几个工作空间

~/workspace1/
    src/
    build/
    devel/
~/workspace2/
    src/
    build/
    devel/
~/workspace3/
    src/
    build/
    devel/

示例1

安装workspace1到系统中

# 方法1
export CMAKE_INSTALL_PREFIX=/opt/ros/groovy
cd ~/workspace1/build
cmake ../src
make
make install
# 方法2
cd ~/workspace1/build
cmake -DCMAKE_INSTALL_PREFIX=/opt/ros/groovy ../src
make
make install

示例2

将worksapce2叠加在workspace1的devel空间上

source ~/workspace1/devel/setup.bash
cd ~/workspace2/build
cmake ../src
make

示例3

将workspace2叠加到workspace1的devel空间,再叠加到系统安装空间

source ~/workspace1/devel/setup.bash
cd ~/workspace2/build
cmake ../src
make

示例4

将workspace 3叠加在本地workspace2之上,将workspace安装在workspace1之上,将devel space安装在系统安装之上

cd ~/workspace2/build
cmake -DCMAKE_INSTALL_PREFIX=~/ws2_installed ../src
make
make install

source ~/ws2_installed/setup.bash

cd ~/workspace3/build
cmake ../src
make

关联GItee

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值