livox_camera_calib is a robust, high accuracy extrinsic calibration tool between high resolution LiDAR (e.g. Livox) and camera in targetless environment. Our algorithm can run in both indoor and outdoor scenes, and only requires edge information in the scene. If the scene is suitable, we can achieve pixel-level accuracy similar to or even beyond the target based method.
Related paper available on arxiv:
Pixel-level Extrinsic Self Calibration of High Resolution LiDAR and Camera in Targetless Environments
Related video: https://youtu.be/sp6PZTL2StY
1.1 Ubuntu and ROS
Ubuntu 64-bit 16.04 or 18.04. ROS Kinetic or Melodic. ROS Installation and its additional ROS pacakge:
sudo apt-get install ros-XXX-cv-bridge ros-xxx-pcl-conversions
Follow Eigen Installation
1.3 Ceres Solver
Follow Ceres Installation.
Follow PCL Installation. (Our code is tested with PCL1.7)
Clone the repository and catkin_make:
cd ~/catkin_ws/src git clone https://github.com/hku-mars/livox_camera_calib.git cd ../ catkin_make source ~/catkin_ws/devel/setup.bash
3. Run our example
Download Our recorded rosbag to your local path, and then change the path in calib.launch to your data path. Then directly run
roslaunch livox_camera_calib calib.launch
4. Run on your own sensor set
4.1 Record data
Record the point cloud and image msg to rosbag (15s or more for avia LiDAR). Then change the topic name in config_outdoor.yaml file
# Topic name in rosbag PointCloudTopic: "/livox/lidar" ImageTopic: "/camera/color/image_raw"
4.2 Modify some params
Modify the camera matrix and distortion coeffs in camera.yaml
Modify the initial extrinsic in config_outdoor.yaml if needed.