Code Monkey home page Code Monkey logo

point_lio_unilidar_ros2's Introduction

point_lio_unilidar

Introduction

This repository adapts the state-of-the-art lidar inertial odometry algorithm, Point-LIO, for use with our lidar, Unitree Lidar L1.

Unitree Lidar L1 is a low-cost large-FOV 3D lidar, which possesses these features:

  • large field of view (360° × 90°)
  • non-repetitive scanning
  • low cost (only $349)
  • suitable for applications in low-speed mobile robots

If you want to learn more about our lidar, you can refer to the official website for details.

Point-LIO is a robust and high-bandwidth lidar inertial odometry (LIO) with the capability to provide accurate, high-frequency odometry and reliable mapping under severe vibrations and aggressive motions. If you need further information about the Point-LIO algorithm, you can refer to their official website and paper:

demo

Video Demo

Video

Prerequisites

Ubuntu and ROS

We tested our code on Ubuntu20.04 with ROS noetic. Ubuntu18.04 and lower versions have problems of environments to support the Point-LIO, try to avoid using Point-LIO in those systems.

You can refer to the official website to install ROS noetic:

Additional ROS package is required:

sudo apt-get install ros-xxx-pcl-conversions

Eigen

Following the official Eigen installation, or directly install Eigen by:

sudo apt-get install libeigen3-dev

unitree_lidar_ros

You should download and build unitree_lidar_ros follwing these steps:

git clone https://github.com/unitreerobotics/unilidar_sdk.git

cd unilidar_sdk/unitree_lidar_ros

catkin_make

Build

Clone this repository and run catkin_make:

mkdir -p catkin_point_lio_unilidar/src

cd catkin_point_lio_unilidar/src

git clone https://github.com/unitreerobotics/point_lio_unilidar.git

cd ..

catkin_make

Run

Run with Unilidar

Firstly, you should connect our lidar to your PC serial port, and supply power for the lidar with a 12V charger.

Besides, to ensure proper initialization of the IMU, it is advisable to keep the lidar in a stationary state during the initial few seconds of algorithm execution.

Run unilidar:

cd unilidar_sdk/unitree_lidar_ros

source devel/setup.bash

roslaunch unitree_lidar_ros run_without_rviz.launch

Run Point-LIO:

cd catkin_unilidar_point_lio

source devel/setup.bash

roslaunch point_lio_unilidar mapping_unilidar.launch 

After completion of the run, all cached pointcloud map will be saved to the following path:

catkin_point_lio_unilidar/src/point_lio_unilidar/PCD/scans.pcd

You can use the pcl_viewer tool to view this pcd file:

pcl_viewer scans.pcd 

Run with dataset

If you don't have our lidar for now, you can download our dataset recorded with our lidar and run testify this algorithm with it. The download address is here:

Run Point-LIO:

cd catkin_point_lio_unilidar

source devel/setup.bash

roslaunch point_lio_unilidar mapping_unilidar.launch 

Play the dataset you downloaded:

rosbag play unilidar-2023-09-22-12-42-04.bag 

After completion of the run, all cached pointcloud map will be saved to the following path:

catkin_point_lio_unilidar/src/point_lio_unilidarPCD/scans.pcd

You can use the pcl_viewer tool to view this pcd file:

pcl_viewer scans.pcd 

Version History

v1.0.0 (2023.09.22)

  • Adapt Point-LIO for Unitree Lidar L1
  • Upload codes and dataset

v1.0.1 (2023.10.08)

  • Add video demo

v1.0.2 (2023.11.03)

  • Update launch file in README.md

point_lio_unilidar_ros2's People

Contributors

kazu-321 avatar lingbomeng 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.