码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ROS工程实践1—创建工作空间和功能包


    ROS使用Catkin编译系统
    src 代码空间

    用于存储所有功能包的代码
    build 编译空间

    用于存储编译过程产生的缓存和中间文件
    devel 开发空间

    用于放置编译生成的可执行文件
    install 安装空间

    非必须的,可在目录下用该命令生成

    catkin_make install

    可以将可执行文件安装到此空间
    创建工作空间

    1.创建工作空间

    mkdir创建文件夹

    1. mkdir -p ~/catkin_ws/src
    2. cd ~/catkin_ws/src
    3. catkin_init_workspace #catkin编译工具在初始化工作空间

    2.编译工作空间

    cd转到对应的目录

    1. cd ~/catkin_ws/
    2. catkin_make #catkin_make将编译文件夹下的所有源码并完成相应配置

    3.设置工作空间的环境变量

    source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录
    执行setup.bash来设置工作空间的环境变量,便于调用新生成的文件

    source devel/setup.bash
    

    通过进一步设置可以使得环境变量在不仅是当前,而且在所有终端生效
    echo 输出
    WS为工作空间的路径,可用pwd命令来查看当前目录

    echo "source WS/catkin_ws/devel/setup.bash" >> ~/.bashrc

    示例:
    echo “source /home/hermanye/catkin_ws/devel/setup.bash”>> ~/.bashrc

    4.检查环境变量是否生效

    如果反馈的路径包含了工作空间路径则成功

    echo $ROS_PACKAGE_PATH

    创建功能包

    功能包目录下的
    CMakeLists.txt记录功能包编译规则
    package.xml描述功能包属性的信息,包含功能包的依赖信息

    1.进入代码空间内创建功能包:

    cd ~/catkin_ws/src
    catkin_create_pkg package_name depend1  depend2 depend3

    示例:
    catkin_create_pkg learning_pkg_creating std_msgs roscpp rospy
    创建一个名为learning_pkg_creating,依赖std_msgs、roscpp、rospy功能包的新功能包

    2.编译功能包
    回到工作空间根目录编译并设置环境变量

    cd ~/catkin_ws/
    catkin_make
    source ~/catkin_ws/devel/setup.bash

    如果已经将设置环境变量包含在终端配置文件中,则只需要新开一个终端就可以默认执行source ~/catkin_ws/devel/setup.bash

  • 相关阅读:
    Vue 组件间的通信方式
    苹果手机iOS18最新升级:植入AI人工智能,国内百度文心一言,国外GPT4o来辅助
    【Git-Exception】Git报错:fatal: unable to auto-detect email address
    【AI视野·今日NLP 自然语言处理论文速览 第五十六期】Tue, 17 Oct 2023
    第01章 第01章 数据结构基础和算法简介
    力扣(LeetCode)176. 第二高的薪水(2022.06.25)
    【测试开发】一文带你了解什么是软件测试
    三体系ISO认证是什么?能给企业带来哪些好处?
    如何把握好Shopee节日大促?Shopee77大促营销策略
    C++打怪升级(二)- 引用详解
  • 原文地址:https://blog.csdn.net/weixin_51060040/article/details/126539566
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号