Authors: Jianhao Jiao, Jinhao He, Changkun Liu, Sebastian Aegidius, Xiangcheng Hu, Tristan Braud, Dimitrios Kanoulas
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.
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 litevlocInstall 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.gitCreate 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.txtEnter this code to check whether torch-related packages are installed
python test_torch_install.pyBuild LiteVLoc as the ROS package (optional)
catkin build litevloc -DPYTHON_EXECUTABLE=$(which python)- Instruction in Performing Map-free Benchmarking
- Instruction in Running LiteVLoc with Offline Data
- Instruction in Running LiteVLoc with Simulated Matterport3d Environment
Issue: cannot import name 'cache' from 'functools'
Replace the original code with Link
from functools import lru_cache
@lru_cache(maxsize=None)
def xxxIssue: /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.5Issue: 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
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.