Giter Site home page Giter Site logo

gislab-elte / lidar-processor Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 5.0 130 KB

On-the-fly LiDAR processor and visualizer for Velodyne sensors

License: BSD 3-Clause "New" or "Revised" License

CMake 3.42% C++ 77.39% C 19.19%
lidar point-cloud velodyne positioning gps slam pcl

lidar-processor's Introduction

Online LiDAR Processor (OLP)

On-the-fly LiDAR processor and visualizer for Velodyne sensors.

How to use

Read data from sensor

Read point data directly from a Velodyne sensor on the fly:

olp --ip 192.168.1.201 --port 2368

The --ip and --port program flags are optional, the default values are shown above.

Read data from file

Read point data from a saved PCAP file:

olp --file datafile.pcap

To be able to read from file, the PCL dependency must be compiled with PCAP support (see How to compile).

Skip a certain number of clouds

It is possible to omit the first N cloud frames with the --offset <N> option.

Localization and mapping

The program currently supports the dynamic localization of acquired point clouds with GNSS data or through SLAM algorithms.

Localization with GNSS sensor (offline)

For further details and examples, see the guide on Localization and mapping with GNSS sensor.

Localization with GNSS sensor (online)

By connecting a GNSS receiver to the Velodyne sensor, the oroduced PCAP packages will contain GNSS data as well.

olp --file datafilewithgnss.pcap --withgps

By default, only GNSS packets with the pulse-per-second (PPS) signal set will be used. In case you did not manage to synchronize PPS between GNSS and the LiDAR sensor, this restriction can be lifted with the --nopcappps option.

If a GNSS packet is not available at the time of processing a cloud frame, one will be extrapolated using the previous ones. To replace the default extrapolation method with an experimental, Kalman filter-based one, use the --usepcapekf switch.

Localization with SLAM algorithms

An ICP (Iterative closest point) and a LOAM (LiDAR Odometry and Mapping) algorithm is supported for now, with the ICP producing a better result.

olp --file datafile.pcap --slamtype icp

Localization with ICP aided by IMU sensor data

The ICP approach has the option to be aided by the data from an IMU (Inertial Measurement Unit) sensor, improving the outputted results.

olp --file datafile.pcap --slamtype icp --imucsv imudata.csv

How to compile

The project uses some third-party dependencies:

  1. Any standard C++ compiler supporting language version C++14 or newer (e.g. GCC, Clang, MSVC).
  2. CMake is used as the build system of the project. Version 2.8 or newer is required.
  3. Boost is used as an extension to the C++ standard library. (Dependency of PCL anyway.) Version 1.60 or newer required.
  4. PCL is heavily used in point cloud processing and I/O management. Version 1.8 or newer is required.
  5. PCAP (optional) to read and "replay" previously recorded PCAP files of a Velodyne sensor.
  6. LASlib (optional), to export point clouds in LAS format.
  7. libpointmatcher (optional) for the ICP SLAM algorithm.

The complete compilation process depends on the system you are using (Linux, Mac OS X or Windows). See the platform-specific compilation guides below.

Platform-specific compilation guides

Contributing

Please read CONTRIBUTING.md for details on coding conventions.

License

This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.

lidar-processor's People

Contributors

dominikjambor avatar kisslevi avatar mcserep avatar z2tb8e avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  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.