This work is an optimized version of A-LOAM and LOAM with the computational cost reduced by up to 3 times. This code is modified from LOAM and A-LOAM .
Modifier: Wang Han, Nanyang Technological University, Singapore
Watch our demo at Video Link
Computational efficiency evaluation (based on KITTI dataset): Platform: Intel® Core™ i7-8700 CPU @ 3.20GHz
Dataset | ALOAM | FLOAM |
---|---|---|
KITTI |
151ms | 59ms |
Localization error:
Dataset | ALOAM | FLOAM |
---|---|---|
KITTI sequence 00 |
0.55% | 0.51% |
KITTI sequence 02 |
3.93% | 1.25% |
KITTI sequence 05 |
1.28% | 0.93% |
Ubuntu 64-bit 20.04.
ROS Noetic. ROS Installation
Follow Ceres Installation. Note that starting from Ceres 2.1, GPU can be used to speed up optimization
Follow PCL Installation.
For visualization purpose, this package uses hector trajectory sever, you may install the package by
sudo apt-get install ros-noetic-hector-trajectory-server
Alternatively, you may remove the hector trajectory server node if trajectory visualization is not needed
cd ~/catkin_ws/src
git clone https://github.com/wh200720041/floam.git
cd ..
catkin_make
source ~/catkin_ws/devel/setup.bash
Download KITTI sequence 05 or KITTI sequence 07
Unzip compressed file 2011_09_30_0018.zip. If your system does not have unzip. please install unzip by
sudo apt-get install unzip
And this may take a few minutes to unzip the file
cd ~/Downloads
unzip ~/Downloads/2011_09_30_0018.zip
roslaunch floam floam.launch
if you would like to create the map at the same time, you can run (more cpu cost)
roslaunch floam floam_mapping.launch
If the mapping process is slow, you may wish to change the rosbag speed by replacing "--clock -r 0.5" with "--clock -r 0.2" in your launch file, or you can change the map publish frequency manually (default is 10 Hz)
To generate rosbag file of kitti dataset, you may use the tools provided by kitti_to_rosbag or kitti2bag
You may wish to test FLOAM on your own platform and sensor such as VLP-16 You can install the velodyne sensor driver by
sudo apt-get install ros-noetic-velodyne-pointcloud
launch floam for your own velodyne sensor
roslaunch floam floam_velodyne.launch
If you are using HDL-32 or other sensor, please change the scan_line in the launch file
Thanks for A-LOAM and LOAM(J. Zhang and S. Singh. LOAM: Lidar Odometry and Mapping in Real-time) and LOAM_NOTED.
If you use this work for your research, you may want to cite
@inproceedings{wang2021,
author={H. {Wang} and C. {Wang} and C. {Chen} and L. {Xie}},
booktitle={2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
title={F-LOAM : Fast LiDAR Odometry and Mapping},
year={2020},
volume={},
number={}
}