Coder Social home page Coder Social logo

oh_my_loam's Introduction

Oh-My-LOAM

Oh-My-LOAM is a ROS-free implementation of LOAM (J. Zhang and S. Singh. LOAM: Lidar Odometry and Mapping in Real-time). This implementation is modified from A-LOAM.

Comparing with A-LOAM, this implementation has following features:

  • ROS-free: it can run without ROS environment
  • Multi-threading instead of multi-process: more deterministic
  • Higher code quality: more readable and easier to understand/modify

nsh_indoor_outdoor

NOTE: This project is licensed under the terms of the BSD license.

How to run

BUILD

Install dependences (listed below).
Clone this repository
Compile:

mkdir build && cd build
cmake ..
make -j6

Run with ROS bag as input

Although Oh-My-LOAM is ROS-free, running it with ROS bag as input is the simplest way. We'll take nsh_indoor_outdoor.bag as example. You can download this bag from google drive or baidupan (提取码:9nf7).

Launch Oh-My-LOAM:

./devel/lib/oh_my_loam/main_rosbag ../configs/config_nsh_indoor_outdoor.yaml

Play ROS bag (in a new terminal):

ros play nsh_indoor_outdoor.bag

Run without ROS support

Launch Oh-My-LOAM:

./devel/lib/oh_my_loam/main_noros ../configs/config_nsh_indoor_outdoor.yaml xxxxxx

Please replace xxxxxx with the directory that contains the input point cloud files with tree structure like following:

xxxxxx
├── frame00000.pcd               
├── frame00001.pcd               
├── frame00002.pcd               
├── frame00003.pcd               
├── frame00004.pcd
├── ...          

Currently only .pcd format is supported. You can modify examples/main_noros.cc to add support for other point cloud formats.

Dependences

OS

Tested on ubuntu 16.04/18.04/20.04.

C++17

If cannot find std::filesystem error is encountered during your compiling, please upgrade your compiler. We recommend g++-9 (or higher version).

ROS

Only examples/main_rosbag.cc needs ROS. You can exclude it from compiling by modifying examples/CMakeLists.txt.

Eigen: linear algebra, quaternion

sudo apt install libeigen3-dev

pcl: point cloud processing

sudo apt install libpcl-dev

g3log: logging

Follow g3log to install.

yaml-cpp: yaml parsing

sudo apt install libyaml-cpp-dev

ceres: non-linear optimization

sudo apt install libceres-dev

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.