所谓工作空间覆盖,是指不同工作空间中,存在重名的功能包的情形,虽然特定工作空间内的功能包不能重名,但是自定义工作空间的功能包与内置的功能包(如ros的小海龟节点)可以重名或者不同的自定义的工作空间中也可以出现重名的功能包,那么调用该名称功能包时,会调用哪一个呢?
结论:功能包重名时,会按照 ROS_PACKAGE_PATH 查找,配置在前的会优先执行。
隐患:存在安全隐患,比如当前工作空间B优先级更高,意味着当程序调用 turtlesim 时,不会调用工作空间A也不会调用系统内置的 turtlesim,如果工作空间A在实现时有其他功能包依赖于自身的 turtlesim,而按照ROS工作空间覆盖的涉及原则,那么实际执行时将会调用工作空间B的turtlesim,从而导致执行异常,出现安全隐患。