explaingit

xuankuzcr/global-lvba

Analysis updated 2026-05-18

445C++Audience · researcherComplexity · 5/5LicenseSetup · hard

TLDR

A research tool that refines a robot's camera and LiDAR-based 3D map after initial scanning, correcting drift for pixel-accurate results.

Mindmap

mindmap
  root((Global-LVBA))
    What it does
      Refines 3D maps
      Fixes camera poses
      Reduces layering artifacts
    Tech stack
      C++
      Ceres Solver
      OpenCV
      ROS catkin
    Use cases
      Robotics mapping
      LiDAR camera fusion
      Post-processing SLAM data
    Audience
      Robotics researchers
      Computer vision engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Refine a robot's 3D point cloud map after recording it with LiDAR and cameras.

USE CASE 2

Correct camera position errors down to the pixel level for research-grade accuracy.

USE CASE 3

Reduce layering or smearing artifacts in point clouds captured over long paths.

USE CASE 4

Post-process data from a LiDAR-inertial-visual odometry system like FAST-LIVO2.

What is it built with?

C++Ceres SolverEigenOpenCVPythonROS

How does it compare?

xuankuzcr/global-lvbalucasfrre/bongocat-desktopgridex/gridex
Stars445445449
LanguageC++C++C++
Setup difficultyhardeasyeasy
Complexity5/51/52/5
Audienceresearchergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires ROS catkin, Ceres Solver, compiling SiftGPU, and prepared LiDAR/camera datasets.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

Global-LVBA is a research tool for robots and vehicles that build maps of their surroundings using both cameras and LiDAR, a sensor that measures distance with laser pulses. It is meant to run after a system like FAST-LIVO2 has already produced an initial map and set of camera positions, and its job is to clean up and sharpen that result. When a robot moves through a space while scanning it, small errors build up over time. These errors can make the resulting 3D point cloud map look layered or smeared instead of solid, and can leave the camera's recorded positions slightly off from where objects actually are. Global-LVBA takes the whole recorded path at once, rather than looking at short overlapping windows, and adjusts everything together so the point cloud lines up more consistently and the camera positions match the scene down to the pixel level. The project is written in C++ and depends on several specialized libraries: Ceres Solver for the underlying math optimization, Eigen for linear algebra, OpenCV for image processing, and Python 3.8 as a supporting tool. Building it requires compiling a bundled component called SiftGPU and then building the whole project with catkin, the build system used by the ROS robotics framework. To use it, you need a specific folder structure containing timestamped images with recorded camera poses, timestamped point cloud files with recorded LiDAR poses, and optionally a COLMAP feature matching database, since the README notes that COLMAP produces better feature matches than the built in matching tool. A ready made example dataset is provided so you can test the pipeline before using your own recordings. The project is released under the MIT license, meaning it can be used freely, including for commercial purposes, as long as the copyright notice is kept.

Copy-paste prompts

Prompt 1
Walk me through building Global-LVBA with catkin, Ceres Solver, and SiftGPU on Ubuntu.
Prompt 2
Explain the dataset folder structure Global-LVBA expects, including image_poses.txt and lidar_poses.txt.
Prompt 3
Show me how to run the lvba.launch example with the LVBA-Dataset.
Prompt 4
Help me set up FAST-LIVO2 to produce the input files Global-LVBA needs.

Frequently asked questions

What is global-lvba?

A research tool that refines a robot's camera and LiDAR-based 3D map after initial scanning, correcting drift for pixel-accurate results.

What language is global-lvba written in?

Mainly C++. The stack also includes C++, Ceres Solver, Eigen.

What license does global-lvba use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is global-lvba to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is global-lvba for?

Mainly researcher.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.