在创建了ROS的workspace后,需要将workspace中的setup.bash文件写入~/.bashrc 文件中,让其启动:
source /opt/ros/melodic/setup.bash
这句话的目的就是在开新的terminal的时候,运行这个setup.bash,而这个setup.bash的作用是让一些ROS* 开头的命令可以使用。
在工作空间的devel文件夹中存在几个setup.*sh形式的环境变量设置脚本。使用source命令运行这些脚本文件,则工作空间的环境变量设置可以生效(如可以找到该工作空间内的项目)。
source devel/setup.bash
也就是说要运行自己的一个代码,就要source下这个:source devel/setup.bash
当然也可以把他加入到.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
如果用户删除了.bashrc,可以从如下路径拷贝一份原始的.bashrc文件到用户home目录下
cp /etc/skel/.bashrc ~/
setup.bash
创建了ROS 的workspace之后,需要将workspace中的setup.bash文件写入~/.bashrc 文件中,让
其启动,就像这个样子:
source /opt/ros/kinetic/setup.bash
这句的目的就是在开新的terminal的时候,运行这个setup.bash,而这个setup.bash的作用是让一些ROS* 开头的命令可以使用。同时还能够创建一些ROS开头的环境变量,比如:
ROS_PACKAGE_PATH
我们可以在终端输入echo $ROS_PACKAGE_PATH来查看变量的值
当你使用rospack find {packagename}这个语句搜索路径的时候,就会在它会依据ROS_PACKAGE_PATH
所提供的功能包路径里去寻找,不在这个环境变量里的路径就不会去寻找了,即便你有这个功能包,也会显示找不到。
同理当我们rosrun某个包的时候,也需要对应代码所在的工作环境的路径在ROS_PACKAGE_PATH
当中。
参考:ROS 中setup.bash_robinhjwy的博客-CSDN博客
ROS中的setup.bash_泠山的博客-CSDN博客