Adapted LIO-SAM for Livox MID-360. This fork renames the package to lio_sam_mid360 (ROS package names must be lowercase) and updates configs/launch for MID-360 usage.
- Livox MID-360 point cloud and timing assumptions
- Clean ROS 2 launch (
run.launch.py) - Same node graph as LIO-SAM (image projection, feature extraction, IMU preintegration, map optimization)
- Directly supports ROS Bag Integration
- Supports both 6-axis and 9-axis IMUs
- Ubuntu 22.04 + ROS 2 Humble (other ROS 2 distros may work)
- GTSAM 4.x (
libgtsam-devandlibgtsam-unstable-dev) - PCL, OpenCV (installed via ROS packages below)
Install ROS packages (replace ${ROS_DISTRO} with your distro, e.g., humble):
sudo apt update
sudo apt install \
ros-${ROS_DISTRO}-perception-pcl \
ros-${ROS_DISTRO}-pcl-msgs \
ros-${ROS_DISTRO}-cv-bridge \
ros-${ROS_DISTRO}-image-geometry
sudo add-apt-repository ppa:borglab/gtsam-release-4.1
sudo apt update
sudo apt install libgtsam-dev libgtsam-unstable-dev
cd ~/ros2_ws/src
# this folder should be at ~/ros2_ws/src/LIO_SAM_MID360
cd ..
colcon build --symlink-install --packages-select lio_sam_mid360
source install/setup.bash
Edit config/params.yaml:
- Set sensor to Livox settings (rings, horizon) appropriate for MID-360
- Set topics to match your Livox driver output
- Set IMU extrinsics so IMU -> lidar follows REP-105 (x forward, y left, z up)
Default static TFs in launch/run.launch.py assume co-located IMU and lidar; adjust if your mounting differs.
Edit the fov of the Lidar setting. For Livox MID360 (Default) it is -7 to 52 degree.
ros2 launch lio_sam_mid360 run.launch.py
Play a bag in another terminal:
ros2 bag play your_data
ros2 service call /lio_sam/save_map lio_sam_mid360/srv/SaveMap "{resolution: 0.2, destination: /tmp/LOAM}"
Note: The service name /lio_sam/save_map follows the original namespace; the type is from this package.
- Ensure Livox point type provides per-point time (relative within scan) and ring/channel index. Adapt
imageProjection.cppif your fields differ. - DDS/QoS: tune if running over networks with Livox drivers.
- There was a large bias when using Livox IMU. This lead to an inaccurate incremental odometry estimate.
- Adaptation and maintenance: Vishnuraj A
- Based on the original LIO-SAM by Tixiao Shan et al. See
LICENSEand original repository for citations.