Coder Social home page Coder Social logo

lidar_imu2npz's Introduction

3D Point Clouds from Livox Mid-360 LiDAR on Mobile Robot

This project aims to build 3D point clouds from the 3D LiDAR Livox Mid-360 attached to a mobile robot. The sensor data, including LiDAR points, IMU, and TF, are recorded and processed by this project to perform SLAM (Simultaneous Localization and Mapping) and eventually create and visualize 3D point clouds.

Features

  • Build 3D point clouds using Livox Mid-360 LiDAR.
  • Perform SLAM with recorded LiDAR and IMU data.
  • Visualize the 3D point clouds.
  • Utilize Docker for easy setup and deployment.
  • Supports ROS Noetic, RViz, and Gazebo with GPU acceleration.
  • Multiple rosbags of Livox sensor recording and output a single or multiple NPZ files.

Prerequisites

  • Docker
  • NVIDIA Docker (for GPU support)

Installation

  1. Clone the Repository

    git clone https://github.com/anh0001/lidar_imu2npz.git
    cd lidar_imu2npz
  2. Initialize Submodules

    As this repository contains submodules, you need to initialize and update them:

    git submodule update --init --recursive
  3. Build the Docker Container

    Use the provided script to build the Docker container:

    ./cmds.sh build-container
  4. Start the Docker Container

    Enter the Docker container with the following command:

    ./cmds.sh start
  5. Perform build packages using the command:

    ./cmds.sh build

Usage

  1. Enter the Docker Container

    If the container is already running, use the following command to enter it:

    ./cmds.sh enter
    source devel/setup.bash
  2. Source the Commands Script

    Inside the container, source the commands script to load the necessary environment variables:

    source cmds.sh
  3. Prepare ROSBAG Data

    Place all your ROSBAG data into the rosbag/raw folder.

  4. Run FastLIO Mapping

    Execute the following command to process the ROSBAG data and output the results in the rosbag/processed folder:

    ./cmds.sh run-fastlio-mapping
  5. Combine Maps into a Single NPZ File

    To combine all processed maps into a single .npz file, run:

    ./cmds.sh combine-maps-to-npz

    This will output .npz files in the out folder.

    If you want to convert each map individually, run:

    ./cmds.sh map-to-npz

Visualization

Use RViz for visualizing the 3D point clouds.

To visualize a single .npz file, use:

./cmds.sh visualize-pc

To visualize all .npz files in the out/ folder, run:

./cmds.sh visualize-all

Contributing

  1. Fork the repository.
  2. Create your feature branch (git checkout -b feature/fooBar).
  3. Commit your changes (git commit -am 'Add some fooBar').
  4. Push to the branch (git push origin feature/fooBar).
  5. Create a new Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Livox for the Mid-360 LiDAR.
  • ROS for providing the robotics framework.
  • Docker for containerization technology.

lidar_imu2npz's People

Contributors

anh0001 avatar

Watchers

 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.