码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 是使用local_setup.bash 还是 setup.bash


    编译完ros2程序后,我们会发现install目录下有两个脚本local_setup.bash 和 setup.bash。执行程序前,通常需要source一下install目录下的脚本,以便环境变量准备就绪。这样ros2 run和ros2 launch就能找到对应的执行文件和依赖。

    下面的内容是从setup.bash中截取出来的一段。可以发现它会先source 一下/opt/ros/galactic目录再source 一下/home/ubuntu/turtlebot3_ws/install目录,最后再source一下当前目录。这样就会把外部的多个工作空间囊括进来。如果多个工作空间中有相同名字的功能包可能就会互相冲突。

    # source chained prefixes
    # setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script
    COLCON_CURRENT_PREFIX="/opt/ros/galactic"
    _colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash"
    # setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script
    COLCON_CURRENT_PREFIX="/home/ubuntu/turtlebot3_ws/install"
    _colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash"
    
    # source this prefix
    # setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script
    COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)"
    _colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash"
    
    unset COLCON_CURRENT_PREFIX
    unset _colcon_prefix_chain_bash_source_script
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    而local_setup.bash只会source脚本所在目录。这样只会查找当前install目录下的执行文件和依赖。

    所以如果系统里有多个ROS工作空间,谨慎一点的方法是:

    1、先source一下/opt/ros/galactic/local_setup.bash

    2、在source一下某个用户的工作空间。

    如果系统里就一个自己建的用户工作空间。那就直接source用户工作空间中install目录下的setup.bash。一切都搞定了。

    它会帮你先source一下/opt/ros/galactic/local_setup.bash,这样就有系统的安装的ros执行程序和依赖了。然后再帮你source本用户空间的install/local_setup.bash。

    参考:

    https://colcon.readthedocs.io/en/released/developer/environment.html#workspace-level

    https://answers.ros.org/question/292566/what-is-the-difference-between-local_setupbash-and-setupbash/


    觉得有用就点赞吧!

    我是首飞,一个帮大家填坑的机器人开发攻城狮。

    另外在公众号《首飞》内回复“机器人”获取精心推荐的C/C++,Python,Docker,Qt,ROS1/2等机器人行业常用技术资料。

  • 相关阅读:
    Kotlin进阶指南 - 单元测试
    react路由组件传参三种方式使用
    java微服务 Dubbo面试题/SpringCloud面试题
    【java|golang】1662. 检查两个字符串数组是否相等
    ChatGPT引领:打造独具魅力的论文
    Map常见的遍历方式-keySet 和 entrySet
    【愚公系列】2022年11月 .NET CORE工具案例-.NET 7中的WebTransport通信
    SpringBoot进阶-日志等级配置与操作
    二维卷积输出特征图的计算公式
    SpringBoot框架——8.MybatisPlus常见用法(常用注解+内置方法+分页查询)
  • 原文地址:https://blog.csdn.net/shoufei403/article/details/125473492
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号