本文解释使用ROS 过程中环境变量的设置,以及相关技巧,参考:http://wiki.ros.org/kinetic/Installation/Ubuntu
在ROS wiki中安装ROS过程中需要设置环境变量,为什么要设置环境变量呢? 其实就是为了在运行脚本时能够找到对应的路径,我们可以将这个变量加入到.bashrc
文件里面,这样就不用每次打开终端时都进行设置了。相关命令如下:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
第一条命令echo
用于在shell中打印shell变量的值,或者直接输出指定的字符串, >>
是重定向符号,就是将前面echo
的内容写入到>>
后面的~/.bashrc
文件中。
注意:
如果你只需要改变当前脚本的环境变量,只需要在当前终端中输入:
source /opt/ros/kinetic/setup.bash
source
命令也称为“点命令”,也就是一个点符号.
,它是bash
的内部命令。功能:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句 ,source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录.所以上面语句其实就是为了让setup.bash
执行一次。
怎么看ROS的环境变量是否设置成功了呢?
运行下面命令:
echo &ROS_PACKAGE_PATH
这个命令其实就是将ros包的路径给打印出来:
/opt/ros/kinetic/share
或者使用下面命令查看ROS相关的环境变量:
User@ubuntu:/opt/ros/kinetic$ env | grep ROS
ROS_ROOT=/opt/ros/kinetic/share/ros
ROS_PACKAGE_PATH=/home/User/Disk/ros_robotics_projects_ws/src:/opt/ros/kinetic/share
ROS_MASTER_URI=http://localhost:11311
ROS_VERSION=1
ROS_DISTRO=kinetic
ROS_ETC_DIR=/opt/ros/kinetic/etc/ros
可以看到其实我的ROS_PACKAGE_PATH
变量其实有两个路径,一个是我的工作空间/home/User/Disk/ros_robotics_projects_ws/src
,一个是ROS本身的安装路径/opt/ros/kinetic/share
这样在运行功能包的时候,就会按照这个顺序先查询我的工作空间,如果没有找到就会去找安装路径。
我们可以用下面的命令的验证一下寻找功能包的路径是什么:
rospack find turtlesim
rospack
命令就是跟功能包相关的,turtlesim
是我们安装的一个乌龟的功能包,用上面这个命令rospack find [package]
就能将查询路径打印出来。
其实还有个更直接修改环境变量的办法:
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/User/catkin_ws/src
关于环境变量的设置,这篇文章讲的很好:https://blog.csdn.net/robinhjwy/article/details/79597095