A ROS package for calibrating camera and LiDAR sensors using OpenCV's PnP and Levenberg-Marquardt optimization.
lidar_camera_calibration is a ROS package designed to compute the extrinsic calibration between a camera and a LiDAR sensor. It solves the critical problem of aligning data from these two sensor modalities, which is necessary for accurate sensor fusion in applications like autonomous driving and robotics. The package uses point correspondences and optimization algorithms to determine the precise spatial relationship between the camera and LiDAR.
Robotics engineers and researchers working on autonomous vehicles, drones, or mobile robots that utilize both camera and LiDAR sensors. It is particularly useful for those developing perception stacks within the ROS framework.
Developers choose this package because it provides a specialized, integrated ROS solution that combines camera intrinsic calibration with LiDAR-camera extrinsic calibration using robust optimization methods. Its lightweight nature and direct compatibility with ROS bag files streamline the calibration workflow compared to building custom tools from scratch.
Light-weight camera LiDAR calibration package for ROS using OpenCV and PCL (PnP + LM optimization)
Directly works with ROS bag files and standard message types, streamlining the calibration process within the ROS ecosystem, as shown in the setup with specific topics like sensor_msgs/PointCloud2.
Uses OpenCV's PnP RANSAC followed by Levenberg-Marquardt refinement for precise extrinsic calibration, evidenced by the detailed rotation and translation matrices provided in the README results.
Includes launch files for projecting LiDAR points onto camera images, allowing users to visually confirm calibration accuracy, as demonstrated in the projection demo videos.
Leverages ROS's camera_calibration package to compute intrinsic parameters, covering both intrinsic and extrinsic aspects in one toolkit, with sample calibration data provided.
Relies on a matplotlib GUI for picking correspondences, which is acknowledged as inconvenient in the TODO list where shifting to Rviz is planned, adding user effort and potential errors.
Requires OpenCV >= 4.1.1 for full Levenberg-Marquardt refinement; otherwise, this step is skipped, potentially reducing calibration accuracy, as noted in the README.
Primarily supports Velodyne and Ouster LiDARs, with Ouster needing manual flag adjustment (OUSTER_LIDAR = True), indicating less flexibility for other sensor models without code changes.
The Kalibr visual-inertial calibration toolbox
ROS package to find a rigid-body transformation between a LiDAR and a camera for "LiDAR-Camera Calibration using 3D-3D Point correspondences"
A ROS package tool to analyze the IMU performance.
Automated, hardware-independent Hand-Eye Calibration
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.