GithubHelp home page GithubHelp logo

dmiitriyjarosh / balm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hku-mars/balm

0.0 1.0 0.0 181.98 MB

An efficient and consistent bundle adjustment for lidar mapping

License: GNU General Public License v2.0

C++ 98.97% CMake 0.85% Dockerfile 0.14% Shell 0.04%

balm's Introduction

BALM 2.0 ADOPTION

Docker image

You can find Dockerfile in project. Build it with docker build -t balm:1.0 .. Already built docker image was uploaded to Dockerhub and can be found at https://hub.docker.com/repository/docker/dmitrii12/balm . To run Docker image use docker run --rm --mount src=/pathOfInputFolder,target=/catkin_ws/src/BALM/datas/benchmark_realworld,type=bind --mount src=/pathOfOutputFolder,target=/catkin_ws/src/BALM/output,type=bind balm:1.0. Format of Docker input: put all pcds with names fullx.pcd to input folder, where x is the frame number starting from 0. Also add file alidarPose.csv with initial poses for each pcd in format of transform matrix (4x4, each row on its own line). Format of Docker output: result of the algorithm will be placed to file pose_result.csv in output folder. Format of poses is x y z qx qy qz qw (like in Tum but without timestamp).

Efficient and Consistent Bundle Adjustment on Lidar Point Clouds

BALM 2.0 is a basic and simple system to use bundle adjustment (BA) in lidar mapping. It includes three experiments in the paper. We try to keep the code as concise as possible, to avoid confusing the readers. It is notable that this package does not include the application experiments, which will be open-sourced in other projects. The paper is available on Arxiv and more experiments details can be found in the video.

Related papers:

Efficient and Consistent Bundle Adjustment on Lidar Point Clouds

BALM: Bundle Adjustment for Lidar Mapping

1. Prerequisited

1.1 Ubuntu and ROS

Ubuntu 64-bit 20.04. ROS Installation. (Noetic recommended)

1.2 PCL and Eigen

Follow PCL Installation (1.10 recommended)

Follow Eigen Installation (3.3.7 recommended)

2. Build

Clone the repository and catkin_make:

cd ~/catkin_ws/src
git clone https://github.com/hku-mars/BALM
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash

Note: Before compilation, the file folder "BALM-old" had better be deleted if you do not require BALM1.0, or removed to other irrelevant path.

3. Run the package

3.1 Consistency experiments

roslaunch balm2 consistency.launch

3.2 Benchmark on virtual point cloud

roslaunch balm2 benchmark_virtual.launch

3.3 Benchmark on real-world dataset

roslaunch balm2 benchmark_realworld.launch

Due to the file size, other dataset will be uploaded to one drive later.

4. Applications

  1. Lidar-Inertial odometry with sliding window optimization: The codes will be open-sourced in the next work.
  2. Multiple-Lidar calibration: More details can be seen here.
  3. Global BA on large-scale dataset: More details can be seen here.

5. Acknowledgement

In the development of this package, we refer to FAST-LIO2, Hilti, VIRAL and UrbanLoco for source codes or datasets.

balm's People

Contributors

zale-liu avatar dmiitriyjarosh avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.