我的视觉SLAM学习的小小入门---Ubuntu18配置VINS-MONO

本文详细记录了一位初学者在Ubuntu 18.04上配置ROS Melodic和Vins-mono的过程,包括更换软件源、安装ROS、配置依赖库等步骤,遇到的问题及解决方法,并最终成功运行Vins-mono的体验。尽管朋友指出仅运行数据集不算入门,但这标志着SLAM学习之旅的开始。

前言

作为一名才接触视觉SLAM的菜鸟,除了捧着高翔老师的书看着那晦涩难懂的代码与理论,就是跟着高翔老师的课程囫囵吞枣地学着。但是似乎总不见成效,时常想象着何时可以像大佬们一样建图。

Vins-mono可算的上好好地满足了一把我的虚荣心吧。这篇文章也是简单地分享一下我在配置Vins-mono上的一点小小的经验吧。

ROS系统的配置

GitHUb
上,官方给出了推荐的配置

Ubuntu and ROS Ubuntu 16.04. ROS Kinetic.

但是作为一个感受野只局限于顶部标题的憨憨,我果断选择下载了代码,并开开心心地下载 ROS Kinetic,结果显然失败了,我的系统版本为18.04.1(在终端中输入uname -a 查看),无法下载ROS Kinetic.好吧,那就下载适配的版本吧。
1.建议首先换源,步骤如下:

1.备份相关配置  cp /etc/apt/source.list /etc/apt/source.list.bak
 2.vim  /etc/apt/source.list

在弹出的窗口中输入国内镜像的相关配置。

清华源相关配置如下:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricte
<think>首先,用户的问题是基于之前的引用内容,但引用可能不是直接相关的。用户的问题是:"我想查询vins-monovins-fusion的配置环境是否可以公用 请问vins-monovins-fusion的配置环境能否公用" 梳理引用:[^1]提到安装Ubuntu16.04环境下安装VINS-MONOVINS-Fusion,建议创建一个独立的ROS空间用于VINS-Fusion。[^2]是关于学习笔记的。[^3]描述了VINS-Mono的功能包。[^4]记录学习过程。[^5]提到VINS-Fusion和VINS-Mono的编译问题。 关键点:从[^1]来看,它建议在安装VINS-MONO后,再创建另一个ROS空间来安装VINS-Fusion。这表明它们可能需要独立的配置环境。 系统指令要求: - 所有行内数学表达式用$...$,例如变量。 - 独立公式用$$...$$。 - 使用中文回答。 - 生成相关问题。 - 引用的段落末尾自然地添加引用标识。 我的回答需要结构清晰,帮助用户逐步解决问题。 回答结构: 1. **直接解答问题**:基于引用,解释是否可以公用配置环境。 - 从[^1],它说:"在vins-mono的基础上直接再创建一个ROS空间安VINS-Fusion即可",这意味着推荐使用独立的ROS空间,暗示配置环境可能不完全公用。 - ROS环境通常使用catkin工作空间来管理包。每个工作空间独立编译和运行包。 2. **理由阐述**:解释为什么可能需要独立的配置环境。 - VINS-MonoVINS-Fusion可能共享一些依赖,但它们可能有不同的依赖版本或配置- 创建独立的ROS空间可以避免冲突,比如包冲突、路径重叠等。 3. **建议**:给出实用建议。 - 推荐使用独立的ROS工作空间。 - 提到如何管理共享依赖,比如某些核心库。 4. **生成相关问题**:最后添加相关问题部分。 - 基于主题,如安装、配置、优化等。 语言:使用中文。 添加引用:在相关段落末尾添加引用标识,例如[^1]。 数学表达式:如果有数学内容,用LaTeX格式,但在这个问题中,可能没有太多数学内容。如果提到变量,用$...$。 最终回答: - 开头总结:不能完全公用,推荐独立配置- 详细解释。 - 生成相关问题。 </think>基于您提供的引用内容和我对VINS-MonoVINS-Fusion的了解,我将逐步分析它们的配置环境是否可以公用。VINS-MonoVINS-Fusion都是基于ROS(Robot Operating System)的视觉惯性SLAM系统,它们共享部分核心算法(如特征跟踪和优化),但代码库和执行环境可能有差异[^2][^3]。下面详细说明: ### 1. **配置环境是否可以公用?** - **不能完全公用**。根据引用[^1],在Ubuntu系统上安装VINS-Fusion时,建议在已有VINS-Mono的环境基础上,**创建一个独立的ROS工作空间**(例如`~/vfusion/src`),而不是直接复用VINS-Mono配置环境。这是因为: - **潜在的依赖冲突**:VINS-Fusion虽然基于VINS-Mono扩展(支持多传感器融合),但可能引入额外的依赖库或版本要求(如OpenCV、Eigen或特定ROS包),如果公用同一个ROS空间,可能导致编译错误或运行时冲突[^1][^5]。例如,引用[^3]提到VINS-Mono包含多个功能包(如`feature_tracker`和`vins_estimator`),而VINS-Fusion可能修改这些包或添加新组件。 - **环境隔离需求**:ROS工作空间(通过`catkin_init_workspace`初始化)是独立的,每个空间有自己的编译环境和路径变量。公用同一空间可能导致符号冲突(如重复的包名)或路径覆盖,影响系统稳定性[^1][^4]。 - **实践建议**:从引用[^5]可看出,编译VINS-Fusion时可能遇到环境问题(如Docker代理问题),这进一步支持了独立配置的必要性。公用环境虽理论上可行,但实际中易出错。 - **部分共享可能性**:基础依赖(如ROS版本、Ubuntu系统库或某些通用库)可以公用。例如,两者通常在Ubuntu 16.04/18.04 + ROS Kinetic/Melodic环境中运行[^1][^5]。您可以先安装公共依赖,再为每个项目创建独立ROS空间来避免冲突[^1]。 ### 2. **推荐配置方法** 为了确保稳定运行,建议采用以下步骤: 1. **安装公共基础环境**: - 使用Ubuntu 16.0418.04系统(ROS兼容性好)。 - 安装ROS Kinetic(Ubuntu 16.04)或Melodic(Ubuntu 18.04),并配置核心包如`catkin`、`OpenCV`和`Eigen`。 - 安装必要依赖,例如: ```bash sudo apt-get install ros-kinetic-cv-bridge ros-kinetic-tf # 示例命令 ``` 2. **为VINS-Mono创建独立ROS空间**: ```bash mkdir -p ~/vmono/src cd ~/vmono/src catkin_init_workspace cd .. catkin_make source devel/setup.bash # 下载并编译VINS-Mono代码 ``` 3. **为VINS-Fusion创建独立ROS空间**: ```bash mkdir -p ~/vfusion/src # 参考[^1] cd ~/vfusion/src catkin_init_workspace cd .. catkin_make source devel/setup.bash # 下载并编译VINS-Fusion代码 ``` 这样,您可以通过`source`命令切换环境(例如`source ~/vmono/devel/setup.bash`运行VINS-Mono),避免干扰[^1][^4]。 ### 3. **注意事项** - **版本兼容性**:确保VINS-Fusion的代码分支与VINS-Mono兼容(官方文档可能有推荐版本)。 - **依赖冲突处理**:如果遇到问题(如OpenCV版本冲突),使用`LD_LIBRARY_PATH`隔离环境变量[^5]。 - **性能影响**:独立空间略微增加磁盘占用,但稳定性高于公用配置[^1][^3]。 总之,**VINS-MonoVINS-Fusion的配置环境不建议完全公用**,建议通过独立ROS工作空间管理。如需进一步优化,可参考相关学习笔记[^2][^4]。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值