ROS基础(三)——工作空间的覆盖
ROS允许多个工作空间并存,每个工作空间的创建、编译、运行方法都相同,用户可以在不同项目的工作空间中创建所需要的功能包。但有一种情况:不同的工作空间中可能存在相同命名的功能包,如果这些工作空间的环境变量都已经设置,那么在使用该功能包的时候,是否会发生冲突?
1、ROS中工作空间的覆盖
ROS的工作空间有一个机制——Overlaying,即工作空间的覆盖。所有工作空间的路径会依次在ROS_PACKAGE_PATH环境变量中记录,当设置多个工作空间的环境变量后,新设置的路径在ROS_PACKAGE_PATH中会自动放置在最前端。在运行时,ROS会优先查找最前端的工作空间中是否存在指定的功能包,如果不存在,就顺序向后查找其他工作空间,直到最后一个工作空间为止。
可以通过以下命令查看所有ROS相关的环境变量,其中包含我们最为关心的ROS_PACKAGE_PATH。
env | grep ros
2、工作空间覆盖示例
通过以下命令安装了ros-kinetic-ros-tutorials功能包。
sudo</