ROS:工作空间覆盖

news/2024/11/30 20:46:12/

目录

  • 一、概念
  • 二、示例
    • 2.1操作
    • 2.2原因
  • 三、存在的问题

一、概念

所谓工作空间覆盖,是指不同工作空间中,存在重名的功能包的情形。
ROS 开发中,会自定义工作空间且自定义工作空间可以同时存在多个,可能会出现一种情况: 虽然特定工作空间内的功能包不能重名,但是自定义工作空间的功能包与内置的功能包可以重名或者不同的自定义的工作空间中也可以出现重名的功能包,那么调用该名称功能包时,会调用哪一个呢?比如:自定义工作空间A存在功能包 turtlesim,自定义工作空间B也存在功能包 turtlesim,当然系统内置空间也存在turtlesim,如果调用turtlesim包,会调用哪个工作空间中的呢?

二、示例

2.1操作

1.新建工作空间A与工作空间B,两个工作空间中都创建功能包: turtlesim。
2.在 ~/.bashrc 文件下追加当前工作空间的 bash 格式如下:

source /home/用户/路径/工作空间A/devel/setup.bash
source /home/用户/路径/工作空间B/devel/setup.bash

3.新开命令行source .bashrc加载环境变量
4.查看ROS环境环境变量echo $ROS_PACKAGE_PATH

结果:自定义工作空间B:自定义空间A:系统内置空间

5.调用命令roscd turtlesim会进入自定义工作空间B

2.2原因

ROS 会解析 .bashrc 文件,并生成 ROS_PACKAGE_PATH ROS包路径,该变量中按照 .bashrc 中配置设置工作空间优先级,在设置时需要遵循一定的原则:ROS_PACKAGE_PATH 中的值,和 .bashrc 的配置顺序相反—>后配置的优先级更高,如果更改自定义空间A与自定义空间B的source顺序,那么调用时,将进入工作空间A。

三、存在的问题

存在安全隐患,比如当前工作空间B优先级更高,意味着当程序调用 turtlesim 时,不会调用工作空间A也不会调用系统内置的 turtlesim,如果工作空间A在实现时有其他功能包依赖于自身的 turtlesim,而按照ROS工作空间覆盖的涉及原则,那么实际执行时将会调用工作空间B的turtlesim,从而导致执行异常,出现安全隐患。

注:当在 .bashrc 文件中 source 多个工作空间后,可能出现的情况,在 ROS PACKAGE PATH 中只包含两个工作空间,可以删除自定义工作空间的 build 与 devel 目录,重新 catkin_make,然后重新载入 .bashrc 文件,问题解决。
参考视屏:赵虚左ros入门
在这里插入图片描述


http://www.ppmy.cn/news/757869.html

相关文章

解决Github下载速度慢的问题

分享两款github加速插件来解决Github资源下载速度慢的问题。 这两款脚本使用方法相同,都需要使用脚本管理工具来运行,首先要给你的浏览器安装Tampermonkey(油猴脚本管理器),安装油候脚本管理器后,直接打开这…

git官网下载太慢解决方法

下载传送门 https://npm.taobao.org/mirrors/git-for-windows/ 选择版本 进入后,选择你想要的版本,它里面是 降序排序。 我想下载新版本怎么做?:拉到最底部,如下图所示: 2. 我想下载旧版本怎么做&#…

git下载速度慢解决方案汇总(git慢,亲测第二种方法简单贼快)

如果是文件本身过大的话,可以考虑使用: 一. 使用git shallow clone来下载 git clone https://github.com/xxx --depth 1 cd xxx git fetch --unshallow 解释一下这两条命令: git clone --depth 1 本身会让clone下来的是最近的一个commit的文件夹状态&#xff0c…

flutter下载慢

这里是下载慢 maven { url "https://storage.googleapis.com/download.flutter.io" }maven { url https://maven.aliyun.com/repository/google }maven { url https://maven.aliyun.com/repository/jcenter }maven { url https://maven.aliyun.com/nexus/content/gro…

nodejs下载慢问题

nodejs下载慢 可以切换到如下地址: http://nodejs.cn/download/current/ OR https://nodejs.org/dist/v10.12.0/

Github下载慢的解决办法

Github下载慢的解决办法 当我们用git clone 下载东西的时候时常会遇到下载过慢导致下载失败的情况,以下我将为大家带来解决这个苦恼的办法。 GitHub 下载速度太慢通过如下操作方可解决 git clone https://github.com/xxx.git 改为 git clone https://github.com.c…

几种下载慢的解决办法

几种下载慢的解决办法 Docker Compose安装 # ☆以编译好的二进制包方式安装在Linux系统中 curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-uname -s-uname -m > /usr/local/bin/docker-compose # 以编译好的二进制包方式安装在Li…

github下载慢

方法一: 从GitHub下载文件一直非常慢,查看下载链接发现最终被指向了Amazon的服务器,下载地址是http://github-cloud.s3.amazonaws.com/,从国内访问Amazon非常慢,所以总是下载失败,解决方法时更改host文件&…