Repository Summary
Description | ROS2 Package to calculate the intrinsic and extrinsic camera calibration. Adding an easy way to fuse camera and lidars |
Checkout URI | https://github.com/cdonosok/ros2_camera_lidar_fusion.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-01-15 |
Dev Status | UNKNOWN |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
ros2_camera_lidar_fusion | 0.0.0 |
README
ROS2 Camera-LiDAR Fusion
A ROS2 package for calculating intrinsic and extrinsic calibration between camera and LiDAR sensors. This repository provides an intuitive workflow to fuse data from these sensors, enabling precise projection of LiDAR points into the camera frame and offering an efficient approach to sensor fusion.
Visual Overview
| Static Sensors | Moving Sensors |
|———————|——————–|
| |
|
Support 💖
If you find this project helpful and want to support its ongoing development, you can buy me a coffee! Every contribution helps me dedicate more time to improving and maintaining open-source software.
Table of Contents
Get Started
Prerequisites
To run this package, ensure the following dependencies are installed:
- Git: For version control and repository management.
- Docker: To streamline the environment setup and execution.
- NVIDIA Container Toolkit (if using an NVIDIA GPU): For hardware acceleration.
Installation
Clone the Repository
Start by cloning the repository:
git clone git@github.com:CDonosoK/ros2_camera_lidar_fusion.git
Build Using Docker
This repository includes a pre-configured Docker setup for easy deployment. To build the Docker image:
- Navigate to the
docker
directory:
cd ros2_camera_lidar_fusion/docker
- Run the build script:
sh build.sh
This will create a Docker image named ros2_camera_lidar_fusion
.
Run the Docker Container
Once built, launch the container using:
sh run.sh
Usage
Node Overview
This package includes the following ROS2 nodes for camera and LiDAR calibration:
Node Name | Description | Output |
---|---|---|
get_intrinsic_camera_calibration.py |
Computes the intrinsic calibration of the camera. | Camera intrinsic calibration file. |
save_sensor_data.py |
Records synchronized data from camera and LiDAR sensors. | Sensor data file. |
extract_points.py |
Allows manual selection of corresponding points between camera and LiDAR. | Corresponding points file. |
get_extrinsic_camera_calibration.py |
Computes the extrinsic calibration between camera and LiDAR sensors. | Extrinsic calibration file. |
lidar_camera_projection.py |
Projects LiDAR points into the camera frame using intrinsic and extrinsic calibration parameters. | Visualization of projected points. |
Workflow
Follow these steps to perform calibration and data fusion:
-
Intrinsic Calibration
Runget_intrinsic_camera_calibration.py
to generate the intrinsic calibration file for the camera. -
Data Recording
Usesave_sensor_data.py
to capture and save synchronized data from the camera and LiDAR. -
Point Correspondence
Executeextract_points.py
to manually select corresponding points between camera and LiDAR. -
Extrinsic Calibration
Runget_extrinsic_camera_calibration.py
to compute the transformation matrix between camera and LiDAR. -
LiDAR Projection
Uselidar_camera_projection.py
to project LiDAR points into the camera frame for visualization and analysis.
Running Nodes
To execute a specific node, use the following command:
ros2 run ros2_camera_lidar_fusion <node_name>
For example:
ros2 run ros2_camera_lidar_fusion lidar_camera_projection.py
Maintainer
This package is maintained by:
Clemente Donoso
Email: clemente.donosok@gmail.com
GitHub: CDonosoK
License
This project is licensed under the MIT. See the LICENSE file for details.
Contributions and feedback are welcome! If you encounter any issues or have suggestions for improvements, feel free to open an issue or submit a pull request.