1 简介
最近在看GNSS/Vision/IMU组合导航的相关内容,其中GVINS是一个跳不过的项目,而且经过一番调研之后发现,目前开源的GNSS/Vision/IMU紧组合系统似乎还只有GVINS这一家,所以想要对这个项目进行学习,并在此基础上做一些改进。由于GVINS是基于ROS Kinetic开发的,而我的电脑安装的是ROS Noetic,安装过程中存在一些兼容性问题,在此记录一下。
最近在跑一些模型时需要用到Docker,但出现了无法使用宿主机GPU的情况,在此记录一下解决过程。
首先介绍一下Docker吧,照例,Wiki上的介绍:
Docker容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、更能高效地利用服务器。 容器更多的用于表示软件的一个标准化单元。由于容器的标准化,因此它可以无视基础设施(Infrastructure)的差异,部署到任何一个地方。
简单来说,Docker可以理解为一个实现原理不同的虚拟机,可以将程序运行需要的环境进行一个整体的打包,然后部署到任何支持Docker的平台上,方便复现与调试。
当前组内开发的程序是基于ROS1进行的,所以需要在本地搭建一个ROS1环境来运行和修改。查阅ROS官网后发现ROS版本与Ubuntu版本有着较为严格的对应关系,根据ROS1版本页面总结的对应关系如下表所示,ROS1官方已经不支持Ubuntu 20.04以后的版本了,Ubuntu 22.04之后只能安装ROS2,而ROS2与ROS1之间还是存在着较大的架构差异的,ROS2并不能向下兼容ROS1。
| Ubuntu | ROS | Release date | End of Life (EOL) |
|---|---|---|---|
| 14.04 | Indigo Igloo | July 22nd, 2014 | April, 2019 |
| 16.04 | Kinetic Kame | May 23rd, 2016 | April, 2021 |
| 18.04 | Melodic Morenia | May 23rd, 2018 | June 27, 2023 |
| 20.04 | Noetic Ninjemys | May 23rd, 2020 | May, 2025 |