Code Monkey home page Code Monkey logo

srrg2_apriltag_calibration's Introduction

SRRG2-APRILTAG-CALIBRATION

This repository contains a single catkin package, called srrg2_apriltag_calibration. This package lives inside the srrg2 multiverse.

Note that this package has internally the original AprilTag3 library inside (commit number cad1009f9fbf457e2a5393c0fb6c8a05042a0611). This is entirely developed and engineered by AprilRobotics. Further information can be found in the official AprilTag3 repository.

What is this?

AprilTag3-based calibration for 3D LiDAR and monocular camera. The core idea is quite simple:

  • project lidar cloud to get an intensity image
  • use AprilTag3 library to detect tag on the intensity image
  • use AprilTag3 library to detect tag on the camera image
  • if a tag is detected in both sensors, you have associations between 3D points (lidar) and 2D ones (camera)
  • setup a LS posit solver to minimize the reprojection error between 3D and 2D points.

The things that you need are the following:

  • lidar cloud and lidar specifications (to do the projection)
  • rectified camera images and camera matrix.

How to build

The srrg2_apriltag_calibration package is developed using our srrg2 framework. All our software is tested both with Ubuntu 18.04 and 16.04 (GCC 5 and 7), still the remaining of this guide refers to Ubuntu 18.04. Please follow this guide to build and run srrg2_apriltag_calibration on your machine:

  1. initialize the srrg2 Catkin workspace following the guide here. As indicated in the aforementioned guide, we suggest to have a directory in which you clone all the srrg2 repositories (referred here as SRRG2_SOURCE_ROOT) and a directory that contains the Catkin workspace (referred here as SRRG2_WS_ROOT)

  2. clone all the srrg2 dependencies of this package

cd <SRRG2_SOURCE_ROOT>
git clone https://github.com/srrg-sapienza/srrg2_cmake_modules.git # basic cmake-modules
git clone https://github.com/srrg-sapienza/srrg2_core.git # core data-structures and
git clone https://github.com/srrg-sapienza/srrg2_solver.git # solver (both for registration and global optimization)
git clone https://github.com/srrg-sapienza/srrg2_qgl_viewport.git # opengl viewport
  1. clone this repository
cd <SRRG2_SOURCE_ROOT>
git clone https://github.com/srrg-sapienza/srrg2_apriltag_calibration.git
  1. link all the required packages in your Catkin workspace
cd <SRRG2_WS_ROOT>/src
ln -s <SRRG2_SOURCE_ROOT>/srrg2_cmake_modules .
ln -s <SRRG2_SOURCE_ROOT>/srrg2_core/srrg2_core .
ln -s <SRRG2_SOURCE_ROOT>/srrg2_solver/srrg2_solver .
ln -s <SRRG2_SOURCE_ROOT>/srrg2_qgl_viewport/srrg2_qgl_viewport .
ln -s <SRRG2_SOURCE_ROOT>/srrg2_apriltag_calibration .
  1. build using Catkin
cd <SRRG2_WS_ROOT>
catkin build srrg2_apriltag_calibration
  1. [OPTIONAL] build unit-tests using catkin
cd <SRRG2_WS_ROOT>
catkin build srrg2_apriltag_calibration --catkin-make-args tests

How to run

This package provides two main executables:

  1. app_offline_calibration: reads data from either a bag or a .boss file and performs offline calibration. The output is the trasform T_lidar_in_camera written as [x y z qx qy qz] - i.e. translation and unit quaternion. To execute this app type:
rosrun srrg2_apriltag_calibration app_offline_calibration -h
  1. app_extrinsic_visualization: given the output file of the offline calibration, it visually shows the reprojections of the lidar points in the camera image, to visually evaluate the data. To execute this app type:
rosrun srrg2_apriltag_calibration app_extrinsic_visualization -h

Example of performances

Example of calibration output. In red is reported the tag detection from camera data, in blue the reprojection of the lidar detection.

Reprojected detection from initial guess:

image

Reprojected detection from estimated transform:

image

Contributors

  • Irvin Aloise

Acknowledgments

Thanks to the IPB team for their support during the development of this package :D

License

BSD 3.0

srrg2_apriltag_calibration's People

Stargazers

Jingxin Cai avatar  avatar Langke avatar randomwalk avatar  avatar Xiaoliang Jiao avatar YiChenCityU avatar Bartolomeo Della Corte avatar 然 avatar

Watchers

James Cloos avatar  avatar

srrg2_apriltag_calibration's Issues

how to run the code?

Dear sir:
I have follow your advice written in readme.txt, and I have Compiled the whole project,however when I run the app_extrinsic_visualization or app_offline_calibration or test_detector ,it doesn't work,it seems that the project miss some original data,another question:which input isessential,and can you give me some data to let this project work?
thank you ,that's all

how to run the code?

Dear sir:
I have follow your advice written in readme.txt, and I have Compiled the whole project,however when I run the app_extrinsic_visualization or app_offline_calibration or test_detector ,it doesn't work,it seems that the project miss some original data,another question:which input isessential,and can you give me some data to let this project work?
thank you ,that's all

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.