关于ros工作空间devel下setup.bash的理解

在创建了ros的工作空间之后

在工作空间的devel文件夹中存在几个setup.*sh形式的环境变量设置脚本

使用source命令运行这些脚本文件,则工作空间的环境变量设置可以生效(如可以找到该工作空间内的项目)。

source devel/setup.bash

设置环境变量是为了(source devel/setup.bash)系统能够找到这个工作空间

Ubuntu默认使用的终端是bash,需要在bash中设置ros环境变量,最好把它放在家目录的.bashrc目录下,以便系统启动时能够执行其中的source /opt/ros/kinetic/setup.bash指令,使得工作空间中的环境变量可以生效,这样系统终端能够读懂ros命令,执行相应的操作。

当然也可以把他加入到.bashrc中,这样就不用每次都source自己的程序了

.bashrc

是home目录下的一个shell文件,用于储存用户的个性化设置。

.bashrc在每次打开新的终端时都会被读取,所以我们在运行ROS的某些代码的时候,

可以使用export设置环境变量

export <环境变量名>=<值>

上面的命令会覆盖掉环境变量原有值,如果想给同一个环境变量赋予多个值,需要借助以下语法

export THEPATH=$THEPATH:</path>

eg:export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/gzy/catkin_ws/src/ORB_SLAM2/Examples/ROS

你对 .bashrc 所做的任何修改将在下一次启动终端时生效。如果你想立刻生效的话,运行下面的命令:

source ~/.bashrc

创建了ROS 的workspace之后,需要将workspace中的setup.bash文件写入~/.bashrc 文件中,让

其启动,就像这个样子:

source devel/setup.bash

这句的目的就是在开新的terminal的时候,运行这个setup.bash,而这个setup.bash的作用是让一些ROS* 开头的命令可以使用。同时还能够创建一些ROS开头的环境变量,比如:

ROS_PACKAGE_PATH

我们可以在终端输入echo $ROS_PACKAGE_PATH来查看变量的值

当你使用rospack find {packagename}这个语句搜索路径的时候,就会在它会依据ROS_PACKAGE_PATH 所提供的功能包路径里去寻找,不在这个环境变量里的路径就不会去寻找了,即便你有这个功能包,也会显示找不到。

相关推荐
朝朝辞暮i2 小时前
C++ 第 23 课:class —— 开始真正进入面向对象
开发语言·c++·算法
小师兄吃牛肉3 小时前
C语言篇:宏
c语言·开发语言
郑同学的笔记4 小时前
【c++随笔28】strcmp 和 memcmp对比
开发语言·c++
言乐64 小时前
Python根据无法识别搜索词找出可能输入内容模型
开发语言·python·django·virtualenv·pygame
weixin_307779134 小时前
有限产能智能排产与动态重排智能体:从需求解构到技术实现
开发语言·人工智能·算法·架构
kakakahahahaha4 小时前
Windows C盘临时文件清理:%temp%、Windows Temp、Prefetch、Windows.old与hiberfil.sys处理指南
c语言·开发语言·windows
朝朝辞暮i5 小时前
C++ 第 27 课:智能指针 shared_ptr
开发语言·c++·算法
朝朝辞暮i5 小时前
C++ 第 29 课:回调函数 Callback
开发语言·c++·算法
笨笨饿5 小时前
140_AI新手村MCP与Skills是干嘛的
开发语言·人工智能·python·stm32·单片机·嵌入式硬件·物联网
YOLO数据集集合6 小时前
EvoAgent:面向PR研发治理的自进化Multi-Agent Harness系统
java·开发语言·目标检测·agent·自进化