博客
关于我
四. 创建工作空间与功能包
阅读量:511 次
发布时间:2019-03-07

本文共 1283 字,大约阅读时间需要 4 分钟。

ROS 工作空间与功能包配置指南

一、工作空间(workspace)概述

工作空间是ROS开发中的核心文件夹,用于存储项目相关文件,类似于IDE的工程文件夹。每个工作空间包含以下四个主要文件夹:

  • src(代码空间,Source Space)

    用于存放功能包(package),是功能包的主要开发目录。

  • build(编译空间,Build Space)

    存放编译过程中生成的中间文件,不需独立管理。

  • devel(开发空间,Development Space)

    包含编译生成的可执行文件、库文件及开发脚本(在ROS 1中使用,ROS 2则仅保留install)。

  • install(安装空间,Install Space)

    存放通过install命令安装的文件及可执行文件(ROS 1和ROS 2均使用)。

  • 注意事项:

    在ROS 2中,devel和install具有重复功能仅保留install,ROS 1仍维持devel和install.


    二、创建工作空间

    1. 创建工作空间

    新建工作空间:

    mkdir -p ~/catkin_ws/srccd ~/catkin_ws/srccatkin_init_workspace

    工作空间命名可自定义,src目录名不可更改。

    2. 编译工作空间

    进入根目录并编译:

    cd ~/catkin_ws/catkin_make

    catkin_make生成build和devel文件夹,catkin_make install可选用安装目标。

    3. 设置环境变量

    source devel/setup.bash

    添加ROS环境变量ROS_PACKAGE_PATH以让系统识别工作空间中的功能包。

    4. 检查环境变量

    执行以下命令验证:

    echo $ROS_PACKAGE_PATH

    三、创建功能包

    1. 创建步骤

    使用以下命令创建功能包(注意位置在src下):

    mkdir -p ~/catkin_ws/src/功能包名cd ~/catkin_ws/src/功能包名catkin_create_pkg 包名 [依赖1] [依赖2] ...

    2. 依赖管理

    依赖项可为ROS->{库名},如std_msgs, roscpp等标准库包裹功能包开发。

    3. 编译功能包

    进入工作空间根目录:

    cd ~/catkin_ws/catkin_make

    4. 设置环境变量

    运行以下命令后,可执行功能包程序:

    source ~/catkin_ws/devel/setup.bash

    5. 检查功能包

    运行以下命令查看功能包列表:

    rospack list

    四、功能包必备文件

    1. package.xml

    包含功能包信息,如名称、版本、维护人等,适用于ROS包管理器。

    2. CMakeLists.txt

    定义功能包的编译规则,指导CMake生成可执行目标文件。

    每个功能包需其它工具在ROS环境下可行,建议参考ROS公式项目结构。


    通过以上配置,您可以在终端轻松创建并管理ROSSYS工作空间和功能包。如需深入探讨某一部分,请参考ROS官方文档或社区资源。

    转载地址:http://ouunz.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现runge kutta龙格-库塔法算法(附完整源码)
    查看>>
    Objective-C实现segment tree段树算法(附完整源码)
    查看>>
    Objective-C实现selection sort选择排序算法(附完整源码)
    查看>>
    Objective-C实现sha256算法(附完整源码)
    查看>>
    Objective-C实现shell sort希尔排序算法(附完整源码)
    查看>>
    Objective-C实现sieve of Eratosthenes埃拉托色尼筛法算法(附完整源码)
    查看>>
    Objective-C实现sieveOfEratosthenes埃拉托色尼筛法求素数算法 (附完整源码)
    查看>>
    Objective-C实现similarity search相似性搜索算法(附完整源码)
    查看>>
    Objective-C实现SinglyLinkedList单链表算法(附完整源码)
    查看>>
    Objective-C实现SizeBalancedTree大小平衡树(附完整源码)
    查看>>
    Objective-C实现skew heap倾斜堆算法(附完整源码)
    查看>>
    Objective-C实现Skip List跳表算法(附完整源码)
    查看>>
    Objective-C实现slack message松弛消息算法(附完整源码)
    查看>>
    Objective-C实现slow sort慢排序算法(附完整源码)
    查看>>
    Objective-C实现tanh函数功能(附完整源码)
    查看>>
    Objective-C实现z-algorithm算法(附完整源码)
    查看>>
    Objective-C实现Zeller 的同余算法 (附完整源码)
    查看>>
    Objective-C实现zellers congruence泽勒一致算法(附完整源码)
    查看>>
    Objective-C实现Zero One Knapsack零一背包计算算法(附完整源码)
    查看>>
    Objective-C实现一个Pangram字符串至少包含一次所有字母算法(附完整源码)
    查看>>