{"repo":"koide3/direct_visual_lidar_calibration","free":true,"listed":false,"github":"https://github.com/koide3/direct_visual_lidar_calibration","clone":"git clone https://github.com/koide3/direct_visual_lidar_calibration.git","description":"A toolbox for target-less LiDAR-camera calibration [ROS1/ROS2]","language":"C++","stars":1497,"topics":["calibration","camera","lidar","nid","ros","ros2"],"license":null,"category":"slam_framework","readme_excerpt":"# direct_visual_lidar_calibration\n\nThis package provides a toolbox for LiDAR-camera calibration that is: \n\n- **Generalizable**: It can handle various LiDAR and camera projection models including spinning and non-repetitive scan LiDARs, and pinhole, fisheye, and omnidirectional projection cameras.\n- **Target-less**: It does not require a calibration target but uses the environment structure and texture for calibration.\n- **Single-shot**: At a minimum, only one pairing of a LiDAR point cloud and a camera image is required for calibration. Optionally, multiple LiDAR-camera data pairs can be used for improving the accuracy.\n- **Automatic**: The calibration process is automatic and does not require an initial guess.\n- **Accurate and robust**: It employs a pixel-level direct LiDAR-camera registration algorithm that is more robust and accurate compared to edge-based indirect LiDAR-camera registration.\n\n**Documentation: [https://koide3.github.io/direct_visual_lidar_calibration/](https://koide3.github.io/direct_visual_lidar_calibration/)**  \n**Docker hub: [koide3/direct_visual_lidar_calibration](https://hub.docker.com/repository/docker/koide3/direct_visual_lidar_calibration)**\n\n[![Build](https://github.com/koide3/direct_visual_lidar_calibration/actions/workflows/push.yaml/badge.svg)](https://github.com/koide3/direct_visual_lidar_calibration/actions/workflows/push.yaml) [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/koide3/direct_visual_lidar_calibration)](https://hub.docker.com/repository/docker/koide3/direct_visual_lidar_calibration)\n\n![213393920-501f754f-c19f-4bab-af82-76a70d2ec6c6](https://user-images.githubusercontent.com/31344317/213427328-ddf72a71-9aeb-42e8-86a5-9c2ae19890e3.jpg)\n\n[Video](https://www.youtube.com/watch?v=7TM7wGthinc&feature=youtu.be)\n\n## Dependencies\n\n- [ROS1/ROS2](https://www.ros.org/)\n- [PCL](https://pointclouds.org/)\n- [OpenCV](https://opencv.org/)\n- [GTSAM](https://gtsam.org/)\n- [Ceres](http://ceres-solver.org/)\n- [Iridescence](https://github.com/koide3/iridescence)\n- [SuperGlue](https://github.com/magicleap/SuperGluePretrainedNetwork) [optional]\n\n## Getting started\n\n1. [Installation](https://koide3.github.io/direct_visual_lidar_calibration/installation/) / [Docker images](https://koide3.github.io/direct_visual_lidar_calibration/docker/)\n2. [Data collection](https://koide3.github.io/direct_visual_lidar_calibration/collection/)\n3. [Calibration example](https://koide3.github.io/direct_visual_lidar_calibration/example/)\n4. [Program details](https://koide3.github.io/direct_visual_lidar_calibration/programs/)\n\n## License\n\nThis package is released under the MIT license.\n\n## Publication\n\nKoide et al., General, Single-shot, Target-less, and Automatic LiDAR-Camera Extrinsic Calibration Toolbox, ICRA2023, [[PDF]](https://staff.aist.go.jp/k.koide/assets/pdf/icra2023.pdf)\n\n## Contact\n\nKenji Koide, National Institute of Advanced Industrial Science and Technology (AIST), Japan\n","default_branch":"main","files":117,"tree":[".clang-format",".dockerignore",".github/ISSUE_TEMPLATE/bug_report.md",".github/ISSUE_TEMPLATE/feature_request.md",".github/workflows/build.yaml",".github/workflows/push.yaml",".gitignore",".gitmodules","CMakeLists.txt","README.md","cmake/FindGTSAM.cmake","direct_visual_lidar_calibration/__init__.py","docker/humble/Dockerfile","docker/humble/Dockerfile_with_superglue","docker/jazzy/Dockerfile","docker/jazzy/Dockerfile_with_superglue","docker/noetic/Dockerfile","docker/noetic/Dockerfile_with_superglue","docs/collection.md","docs/css/custom.css","docs/docker.md","docs/example.md","docs/example_map.md","docs/index.md","docs/installation.md","docs/programs.md","include/camera/atan.hpp","include/camera/create_camera.hpp","include/camera/equirectangular.hpp","include/camera/fisheye.hpp","include/camera/generic_camera.hpp","include/camera/generic_camera_base.hpp","include/camera/omnidir.hpp","include/camera/pinhole.hpp","include/camera/rational_polynomial.hpp","include/camera/traits.hpp","include/dfo/directional_direct_search.hpp","include/dfo/nelder_mead.hpp","include/dfo/optimizer.hpp","include/nanoflann.hpp","include/test/calib/cost_calculator_edge.hpp","include/test/calib/cost_scaller.hpp","include/test/calib/edge_extraction.hpp","include/test/calib/line_fitting.hpp","include/test/calib/nearest_neighbor_search.hpp","include/test/detect_sphere.hpp","include/vlcal/calib/cost_calculator.hpp","include/vlcal/calib/cost_calculator_nid.hpp","include/vlcal/calib/view_culling.hpp","include/vlcal/calib/visual_camera_calibration.hpp","include/vlcal/common/cloud_covariance_estimation.hpp","include/vlcal/common/concurrent_queue.hpp","include/vlcal/common/console_colors.hpp","include/vlcal/common/estimate_fov.hpp","include/vlcal/common/estimate_pose.hpp","include/vlcal/common/frame.hpp","include/vlcal/common/frame_cpu.hpp","include/vlcal/common/frame_traits.hpp","include/vlcal/common/integrated_ct_gicp_factor.hpp","include/vlcal/common/integrated_ct_gicp_factor_impl.hpp","include/vlcal/common/integrated_ct_icp_factor.hpp","include/vlcal/common/integrated_ct_icp_factor_impl.hpp","include/vlcal/common/ivox.hpp","include/vlcal/common/kdtree2.hpp","include/vlcal/common/nearest_neighbor_search.hpp","include/vlcal/common/points_color_updater.hpp","include/vlcal/common/raw_points.hpp","include/vlcal/common/ros_cloud_converter.hpp","include/vlcal/common/statistical_median_filter.hpp","include/vlcal/common/time_keeper.hpp","include/vlcal/common/vector3i_hash.hpp","include/vlcal/common/visual_lidar_data.hpp","include/vlcal/common/visual_lidar_visualizer.hpp","include/vlcal/costs/nid_cost.hpp","include/vlcal/costs/reprojection_cost.hpp","include/vlcal/preprocess/dynamic_point_cloud_integrator.hpp","include/vlcal/preprocess/generate_lidar_image.hpp","include/vlcal/preprocess/point_cloud_integrator.hpp","include/vlcal/preprocess/preprocess.hpp","include/vlcal/preprocess/static_point_cloud_integrator.hpp","mkdocs.yml","package.xml","scripts/find_matches_superglue.py","src/calibrate.cpp","src/camera/create_camera.cpp","src/initial_guess_auto.cpp","src/initial_guess_manual.cpp","src/preprocess_map.cpp","src/preprocess_ros1.cpp","src/preprocess_ros2.cpp","src/test/calib/cost_calculator_edge.cpp","src/test/calib/edge_extraction.cpp","src/test/calib/line_fitting.cpp","src/test/calib/nearest_neighbor_search.cpp","src/test/detect_sphere.cpp","src/test/normalization.cpp","src/test/outliers.cpp","src/test/reference.cpp","src/test/vis.cpp","src/viewer.cpp","src/vlcal/calib/cost_calculator_nid.cpp","src/vlcal/calib/view_culling.cpp","src/vlcal/calib/visual_camera_calibration.cpp","src/vlcal/common/cloud_covariance_estimation.cpp","src/vlcal/common/estimate_fov.cpp","src/vlcal/common/estimate_pose.cpp","src/vlcal/common/frame.cpp","src/vlcal/common/frame_cpu.cpp","src/vlcal/common/ivox.cpp","src/vlcal/common/points_color_updater.cpp","src/vlcal/common/time_keeper.cpp","src/vlcal/common/visual_lidar_data.cpp","src/vlcal/common/visual_lidar_visualizer.cpp","src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp","src/vlcal/preprocess/generate_lidar_image.cpp","src/vlcal/preprocess/preprocess.cpp","src/vlcal/preprocess/static_point_cloud_integrator.cpp"],"storefront":"/r/koide3","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/koide3/direct_visual_lidar_calibration/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}