博客
关于我
四. 创建工作空间与功能包
阅读量: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/

    你可能感兴趣的文章
    python网络爬虫实例教程试读_Python网络爬虫实战教程(全套完整版) - 学途无忧网 - 做技术的王者 - Powered By EduSoho...
    查看>>
    Python 使用哈希函数用于加密
    查看>>
    Python 依赖管理的革新——Poetry 深度解析
    查看>>
    python 保留精度及增加去除数字的千位分隔符(金额化数字)
    查看>>
    python 倒计时 9,8,7,。。。。。。0
    查看>>
    Python 入门开发学习笔记之数据的增删改查
    查看>>
    Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境
    查看>>
    Python 八大排序算法合集
    查看>>
    python 关于epoll的学习
    查看>>
    Python 内存管理
    查看>>
    Python 内嵌函数:它们有什么用处?
    查看>>
    Python 内置 sum 函数 vs. for 循环性能
    查看>>
    python 内置slice的用法
    查看>>
    Python 内置时间模块
    查看>>
    python 内部如何实现命名元组?
    查看>>
    Python 写Android App性能:入门到高级
    查看>>
    python 写入json数据到数据库
    查看>>
    Python 出现 TypeError: ‘encoding‘ is an invalid keyword argument for this function 解决方法
    查看>>
    python 出现 TypeError: ‘list‘ object is not callable 的解决方法
    查看>>
    python 函数1
    查看>>