• Stars
    star
    145
  • Rank 254,144 (Top 6 %)
  • Language
    C++
  • License
    BSD 3-Clause "New...
  • Created over 4 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Horizon_Highway_Slam Demo in Docker

Horizon Highway SLAM

A highway SLAM Demo for Livox Horizon Lidar

horizon_highway_slam is a robust, low drift, and real time highway SLAM package suitable for the Livox Horizon lidar, which is a high-performance LiDAR sensor built for Level 3 and Level 4 autonomous driving. This SLAM framework can adapt to a wide speed range (0~80km/h), and address many key issues: feature extraction and selection in very limited FOV, motion distortion compensation, multi-sensor fusion to prevent scene degradation, etc. At the current stage, horizon_highway_slam is only avaliable in the form of a precompiled binary library.

Developer: Livox

Demo Video

[YouTube Video] [bilibili Video]

Docker Method

To install horizon_highway_slam, we strongly recommend using the Docker method. If it is inconvenient, you can refer to Compile Method, but please note that the Compile Method still under development.

1. Install Docker

Follow the Docker's installation website.

1.0 Build Docker Image

Download horizon_highway_slam:

mkdir -p ~/horizon_ws/src
cd ~/horizon_ws/src
git clone https://github.com/Livox-SDK/horizon_highway_slam.git

Execute Docker build:

cd ~/horizon_ws/src/horizon_highway_slam
docker build -t horizon_highway_slam .

If the build process is successfully terminated, the prompt message will be similar to:

    ...
    ...
Successfully built 87f856b37295
Successfully tagged horizon_highway_slam:latest

1.1 Install Rviz

SLAM results will be published by ros topics, so we can use rviz for visualization. Following the UserGuide to install rviz.

2. RUN Rosbag Example

2.0 Download Rosbag

We provide two pre-recorded rosbags for quick verification: YouTube_highway_demo.bag and 8_Shape_Path.bag. Download them and move them:

mkdir -p $HOME/shared_dir
mv YouTube_highway_demo.bag $HOME/shared_dir/

If you want to use your own recorded rosbag, please make sure the topic of point cloud messages is /livox/lidar and its type is livox_ros_driver/CustomMsg. In addition, if you want to use IMU information when testing horizon_highway_slam, make sure that IMU messages with topic /livox/imu and type sensor_msgs/Imu are correctly recorded into your rosbag. NOTE: 'horizon_highway_slam' only supports the internal imu sensor of Horizon Lidar.

2.1 Enter Docker Container

There is a script file run.sh to quickly start the horizon_highway_slam Docker container:

cd ~/horizon_ws/src/horizon_highway_slam
./run.sh

2.2 Launch in Docker

Afer successfully entering the docker container, you can directly launch the horizon_highway_slam:

root@HOSTNAME:/# roslaunch horizon_highway_slam horizon_highway_slam.launch BagName:=YouTube_highway_demo.bag IMU:=2

There are 2 parameters in horizon_highway_slam.launch:

  • BagName: the file name of rosbag which must be moved to the path $HOME/shared_dir/.
  • IMU: choose IMU information fusion strategy, there are 3 mode:
    • 0 - whithout using IMU information, pure lidar SLAM.
    • 1 - using gyroscope integration angle to eliminate the rotation distortion of the lidar point cloud in each frame.
    • 2 - tightly coupling IMU and lidar information to improve SLAM effects. Requires a careful initialization process, and still in beta stage.

2.3 Visualization

Implementing visualization in Docker container is a complex task, so we recommend starting up rviz software in the host:

rosrun rviz rviz -d ~/horizon_ws/src/horizon_highway_slam/rviz_cfg/horizon_highway_slam.rviz

Compile Method

1. Prerequisites

1.0 Operating System

Ubuntu 16.04 & ROS Kinetic.

1.1 Eigen3

Recommend version Eigen 3.3.7.

1.2 PCL

Follow PCL Installation. Recommend version 1.7.

1.3 Suitesparse

Install with:

sudo apt-get install libsuitesparse-dev

2. Compile Horizon_Highway_Slam

mkdir -p ~/horizon_ws/src
cd ~/horizon_ws/src
git clone https://github.com/Livox-SDK/horizon_highway_slam.git
cd .. && catkin_make

3. Run

We provide two pre-recorded rosbags for quick verification: YouTube_highway_demo.bag and 8_Shape_Path.bag.

cd ~/horizon_ws/ && source devel/setup.bash
roslaunch horizon_highway_slam horizon_highway_slam_host.launch
rosbag play YOUR_DOWNLOADED_ROSBAG.bag

Support

You can get support from Livox with the following methods :

  • Send email to [email protected] with a clear description of your problem and your setup
  • Report issue on github

More Repositories

1

LIO-Livox

A Robust LiDAR-Inertial Odometry for Livox LiDAR
C++
641
star
2

Livox-SDK

Drivers for receiving LiDAR data and more, support Lidar Mid-40, Mid-70, Tele-15, Horizon, Avia.
C++
500
star
3

livox_camera_lidar_calibration

Calibrate the extrinsic parameters between Livox LiDAR and camera
C++
483
star
4

livox_mapping

A mapping package for Livox LiDARs
C++
377
star
5

livox_ros_driver

Livox device driver under ros, support Lidar Mid-40, Mid-70, Tele-15, Horizon, Avia.
C++
367
star
6

livox_horizon_loam

Livox horizon porting for loam
C++
305
star
7

livox_detection

Livox open source detection algorithm
Python
260
star
8

livox_ros_driver2

Livox device driver under Ros(Compatible with ros and ros2), support Lidar HAP and Mid-360.
C++
237
star
9

Livox_automatic_calibration

An automatic calibration algorithm for livox LiDAR
C++
235
star
10

livox_laser_simulation

A package to provide plug-in for Livox Series LiDAR.
C++
197
star
11

livox_high_precision_mapping

High precision mapping with livox and apx-15
C++
174
star
12

livox_cloud_undistortion

This project is used for lidar point cloud undistortion.
C++
148
star
13

livox_relocalization

A relocalization package for Livox LiDARs.
C++
132
star
14

Livox-SDK2

Drivers for receiving LiDAR data and controlling lidar, support Lidar HAP and Mid-360.
C++
110
star
15

livox_free_space

Livox-Free-Space is a fast and effective free-space detection package using Livox LiDAR data.
C++
109
star
16

livox_ros2_driver

Livox device driver under Ros2, support Lidar Mid-40, Mid-70, Tele-15, Horizon, Avia.
C++
78
star
17

livox_detection_simu

Trained on Simulated Data, Tested in the Real World
Python
75
star
18

livox_lane_detection

Python
57
star
19

livox_scanner

Livox LiDAR 3D scanner
C++
46
star
20

LivoxIntegration

Guidelines for integrating Livox LiDARs with other sensors
30
star
21

livox_autoware_driver

Livox lidar driver for Autoware
C++
28
star
22

Special-Firmwares-for-Livox-LiDARs

Special Firmwares for Livox LiDARs
24
star
23

livox_wiki_cn

livox wiki cn
Python
17
star
24

livox_apollo_driver

Livox driver for apollo
C++
16
star
25

livox_calibration

Livox extrinsic calibration
C++
16
star
26

Livox-Viewer

Livox Viewer
13
star
27

livox-dataset-devkit

A development kit to read point cloud and display 3D target bounding boxes for the livox dataset
C++
12
star
28

livox_wiki_en

livox wiki en
Python
2
star
29

Livox-SDK-Doc

Livox-SDK API Reference
1
star