Thanks to visit codestin.com
Credit goes to github.com

Skip to content

RPL-CS-UCL/litevloc_code

Repository files navigation

LiteVLoc: Map-Lite Visual Localization for Image-Goal Navigation (ICRA2025)

Authors: Jianhao Jiao, Jinhao He, Changkun Liu, Sebastian Aegidius, Xiangcheng Hu, Tristan Braud, Dimitrios Kanoulas

Overview of LiteVLoc

LiteVLoc is a hierarchical visual localization framework designed to enable efficient and robust camera pose estimation using lightweight topometric maps. Our goal is for this package to serve as a foundational tool for scalable navigation, empowering researchers and developers to build advanced robotic systems with ease.


We use the AR glass to create a lightweight topometric map for camera pose estimation and path planning. We can show an image as a goal (like the picture previously captured by your friend) a to the robot, and the robot can autonomously guide you to navigate to the goal. Please check our paper for the technical details and website for more demonstrations.

Requirements

Create the workspace

mkdir -p catkin_ws/src/
cd catkin_ws/src/

Create conda environment (python>=3.8 should be compatible, but have not tested)

conda create --name litevloc python=3.8
conda activate litevloc

Install image-matching-methods

git clone [email protected]:gogojjh/image-matching-models.git --recursive
cd image-matching-models && python -m pip install -e .

Install VPR-evaluation-methods

git clone [email protected]:gogojjh/VPR-methods-evaluation.git

Create conda environment (NVIDIA GeForce RTX 4090 and CUDA 11.8 with Python 3.8)

git clone https://github.com/RPL-CS-UCL/litevloc_code
conda install pytorch=2.0.1 torchvision=0.15.2 pytorch-cuda=11.8 numpy=1.24.3 -c pytorch -c nvidia # use the correct version of cuda for your system
pip install -r requirements.txt

Enter this code to check whether torch-related packages are installed

python test_torch_install.py

Build LiteVLoc as the ROS package (optional)

catkin build litevloc -DPYTHON_EXECUTABLE=$(which python)

We provide several usage of LiteVLoc

  1. Instruction in Performing Map-free Benchmarking
  2. Instruction in Running LiteVLoc with Offline Data
  3. Instruction in Running LiteVLoc with Simulated Matterport3d Environment

Issues

Issue: cannot import name 'cache' from 'functools'

Replace the original code with Link

from functools import lru_cache
@lru_cache(maxsize=None)
    def xxx

Issue: /lib/aarch64-linux-gnu/libp11-kit.so.0: undefined symbol: ffi_type_pointer, version LIBFFI_BASE_7.0 using cv_bridge

Change the .so. Complete tutorial is shown here

rm /Rocket_ssd/miniconda3/envs/litevloc/lib/libffi.so.7
ln -s /usr/lib/aarch64-linux-gnu/libffi.so.7 /Rocket_ssd/miniconda3/envs/litevloc/lib/libffi.so.7
/Rocket_ssd/miniconda3/envs/litevloc/lib/libtiff.so.5
ln -s /usr/lib/x86_64-linux-gnu/libtiff.so.5 /Rocket_ssd/miniconda3/envs/litevloc/lib/libtiff.so.5

Issue: ImportError: /lib/aarch64-linux-gnu/libgomp.so.1: cannot allocate memory in static TLS block

Set this in the bash file: export LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libgomp.so.1

Acknowledgement

If this work is helpful to your research, please consider citing LiteVLoc.

@inproceedings{jiao2025litevloc,
  title={LiteVLoc: Map-lite visual localization for image goal navigation},
  author={Jiao, Jianhao and He, Jinhao and Liu, Changkun and Aegidius, Sebastian and Hu, Xiangcheng and Braud, Tristan and Kanoulas, Dimitrios},
  booktitle={2025 IEEE International Conference on Robotics and Automation (ICRA)},
  pages={5244--5251},
  year={2025},
  organization={IEEE}
}
This work was supported by the UKRI FLF [MR/V025333/1] (RoboHike).
For the purpose of Open Access, the author has applied a CC BY public copyright license to any Author Accepted Manuscript version arising from this submission.
Prof.Dimitrios Kanoulas is also with Archimedes/Athena RC, Greece.

About

LiteVLoc: Map-Lite Visual Localization for Image Goal Navigation

Resources

Stars

Watchers

Forks

Packages

No packages published