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
[YouTube Video] [bilibili Video]
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.
Follow the Docker's installation website.
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
SLAM results will be published by ros topics, so we can use rviz
for visualization. Following the UserGuide to install rviz
.
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.
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
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.
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
Ubuntu 16.04 & ROS Kinetic.
Recommend version Eigen 3.3.7.
Follow PCL Installation. Recommend version 1.7.
Install with:
sudo apt-get install libsuitesparse-dev
mkdir -p ~/horizon_ws/src
cd ~/horizon_ws/src
git clone https://github.com/Livox-SDK/horizon_highway_slam.git
cd .. && catkin_make
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
You can get support from Livox with the following methods :
- Send email to cs@livoxtech.com with a clear description of your problem and your setup
- Report issue on github