Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Robotic Tooling
  3. lidar_camera_calibration

lidar_camera_calibration

BSD-3-ClausePython

A ROS package for calibrating camera and LiDAR sensors using OpenCV's PnP and Levenberg-Marquardt optimization.

GitHubGitHub
674 stars121 forks0 contributors

What is lidar_camera_calibration?

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.

Target Audience

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.

Value Proposition

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.

Overview

Light-weight camera LiDAR calibration package for ROS using OpenCV and PCL (PnP + LM optimization)

Use Cases

Best For

  • Calibrating sensor suites for autonomous vehicle prototypes
  • Aligning camera and LiDAR data in ROS-based robotics projects
  • Research projects requiring precise multi-sensor fusion
  • Validating sensor mounting and alignment in hardware integration
  • Educational purposes for learning sensor calibration techniques
  • Projects using Velodyne or Ouster LiDARs with monocular cameras

Not Ideal For

  • Projects requiring fully automated calibration without manual point selection
  • Systems not using the ROS framework or needing cross-platform compatibility
  • Applications with LiDAR brands other than Velodyne or Ouster that require out-of-the-box support

Pros & Cons

Pros

Integrated ROS Workflow

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.

Robust Optimization Methods

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.

Visual Validation Tools

Includes launch files for projecting LiDAR points onto camera images, allowing users to visually confirm calibration accuracy, as demonstrated in the projection demo videos.

Camera Intrinsics Handling

Leverages ROS's camera_calibration package to compute intrinsic parameters, covering both intrinsic and extrinsic aspects in one toolkit, with sample calibration data provided.

Cons

Manual Point Selection

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.

Version Dependencies

Requires OpenCV >= 4.1.1 for full Levenberg-Marquardt refinement; otherwise, this step is skipped, potentially reducing calibration accuracy, as noted in the README.

Limited LiDAR Support

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.

Frequently Asked Questions

Quick Stats

Stars674
Forks121
Contributors0
Open Issues37
Last commit5 years ago
CreatedSince 2019

Tags

#lidar#robotics#camera-calibration#opencv#ros-kinetic#autonomous-vehicles#lidar-camera-calibration#pcl#ros#extrinsic-calibration#computer-vision#sensor-calibration#point-cloud

Built With

O
OpenCV
R
ROS
P
PCL
P
Python
m
matplotlib

Included in

Robotic Tooling3.8k
Auto-fetched 1 day ago

Related Projects

kalibrkalibr

The Kalibr visual-inertial calibration toolbox

Stars5,437
Forks1,559
Last commit2 years ago
lidar_camera_calibrationlidar_camera_calibration

ROS package to find a rigid-body transformation between a LiDAR and a camera for "LiDAR-Camera Calibration using 3D-3D Point correspondences"

Stars1,738
Forks474
Last commit7 months ago
imu_utilsimu_utils

A ROS package tool to analyze the IMU performance.

Stars1,699
Forks498
Last commit2 months ago
easy_handeyeeasy_handeye

Automated, hardware-independent Hand-Eye Calibration

Stars1,141
Forks249
Last commit5 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub