SLAM 算法复现记录: ring
- ring描述子复现
1. 项目基本信息
- 系统:Ubuntu 20.04
- ROS 版本:Noetic
- 项目地址:https://github.com/lus6-Jenny/RING
-
这是我的复现过程记录,并非教程,因此会有一些不必要的操作
2. 本地复现
- 安装11.1.0的CUDA(和之后的mr-slam对应),然后安装对应版本的pytorch
- 在官方网站可以看到对应的命令:https://pytorch.org/get-started/previous-versions/ pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
- 我的显卡驱动为
sd10@sd10-MS-7D76:~$ nvidia-smi
Sat Mar 8 19:05:14 2025
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.216.03 Driver Version: 535.216.03 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
3. docker复现
- 拉取镜像:
docker pull lus6/ring:noetic - 运行
docker run -itd --gpus all --network host --name ring lus6/ring:noetic - 如果退出后
docker start ring然后再docker exec -it ring bash -
测试:
python3 test.py
- 在docker中安装必要的软件:
apt update && apt install -y libgl1-mesa-glx x11-apps, 之后测试可以了
4. NCLT Dataset数据集下载
- NCLT Dataset下载直接下载或者官方提供的脚本下载:
downloader.py - 注意要把脚本中的
base_dir = 'http://robots.engin.umich.edu/nclt'网址改为https://s3.us-east-2.amazonaws.com/nclt.perl.engin.umich.edu - 然后按照教程下载即可
python2 ./downloader.py --date="2013-01-10" –all - 代理要开全局模式
5. 其他命令
- 退出容器exit或者在另一终端停止:
docker stop ring# 如果你的容器名是 ring或者直接容器ID - 在宿主机启用 X11 访问
xhost +local:root - 使用 -e DISPLAY 和 -v /tmp/.X11-unix:/tmp/.X11-unix 运行docker:
docker run -itd --gpus all --network host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --name ring lus6/ring:noetic - 挂载宿主机的数据集目录:
docker run -it --gpus all --network host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /home/sd10/Downloads/ring/:/home/RING/data --name ring lus6/ring:noetic