LeGO-LOAM:
- ROS Noetic
- GTSAM 4.00-alpha2
- PCL
- OpenCV
GNSS process:
- Geographiclib (used for LLA to local Cartesian frame conversion)
Visualization on Google Map:
Some packages are required for utbm dataset will be listed on Dataset section
cd ~/catkin_ws/src
git clone https: https://github.com/zhexin1904/EECE5550Project.git
cd ..
catkin_make -j
Dependency:
- (used to process the GNSS data of utbm dataset)
- You may need Velodyne(Used to convert raw Velodyne data packets to sensor_msgs/PointCloud2)
- velodyne_pointcloud(If you are also using Noetic, there might be errors due to missing functions. Please consider using a lower version of the library.)
Dependency:
- file_player_mulran(Used to play the data of Mulran, raw data is not provided in rosbag)
# cd your workspace
source devel/setup.bash
roslaunch lego_loam lego_loam_utbm.launch
# cd your workspace
source devel/setup.bash
roslaunch lego_loam lego_loam_mulran.launch
Using evo to evaluate the trajectory (ATE, RTE...)
For utmb, groundtruth need to subscribe GNSS message, and convert to TUM fomart(our code provided)
For Mulran, please access the groundtruth in their webpage
Here, we use a simple way to save the pcd map:
- record the global map message in a ros bag, when the dataset is almost over
- using pcl_ros to convert rosbag to pcd
Besides the basic config of Lidar SLAM(point cloud topic, Lidar type, imu topic......) in utility_legoLoam.h
, (may be will convert a better config format :) , like yaml
) for our GPS-module , several configuration need to do in:
gpsTopic
(your gps topic)
gpsCovThreshold
(a manually set threshold to reject bad gps measurement)
gpsFrequence
(used in synchronization, but not need to set really strictly)
......
This work is built based on LeGO-LOAM
Thanks for these great works from which we learned and used to build the system: