Releases: Unsigned-Long/iKalibr
iKalibr v2.1.2 stable
Version 2.1.2 » iKalibr Docker Image Release
We are excited to announce the release of the official iKalibr Docker image! To make it easier for users to use the iKalibr project, we have built and published a Docker image that simplifies the setup process. With this Docker image, you can now easily run iKalibr in an isolated environment without worrying about dependency issues or complex configurations. For more details, please see here.
- Pre-configured environment with all necessary dependencies.
- Hassle-free setup, with just a few commands to get started.
- Flexibility to run on any platform supporting Docker.
- Access to the latest version of
iKalibr, easily kept up-to-date via Docker pull.
iKalibr v2.1.1 stable
Version 2.1.1 » refine code structure & add a tested installation pipeline on ubuntu 20.04
- Considering the common issues reported by most people regarding the configuration and compilation of the
iKalibrenvironment, I have provided a step-by-step guide for setting up theiKalibrenvironment from scratch on anUbuntu 20.04system. All steps have been tested and successfully compilediKalibronUbuntu 20.04. - The code related to visual optical flow construction and related continuous-time optimization in
iKalibrhave been restructured to ensure better readability and scalability. - When using
RANSACfor camera velocity estimation based on visual optical flow, index mismatches occurred, leading to poor initialization accuracy. This bug has now been fixed. - An
appendixfolder has been added to thedocsfolder to help readers better understand the implementation details ofiKalibr.
iKalibr v2.1.0 stable
Version 2.1.0 » support of SfM-free calibration for optical cameras!
Although spatiotemporal calibration of optical cameras were supported in the first version of iKalibr, it required computationally expensive SfM (Structure from Motion) to initialize the estimator. Fortunately, this has been greatly improved in the new version (v2.1.0). Specifically, inspired by the RGBD cameras supported in the previous version (v2.0.0), we implemented SfM-Free spatiotemporal calibration for ordinary optical cameras based on continuous-time velocity estimation.
Attention: although the current camera calibration based on velocity estimation (v2.1.0) is more efficient, its repeatability may not be as good as that based on pose estimation (v1.0.0). If your camera has a low sampling frequency, we recommend that you use camera calibration based on translation spline (set ScaleSplineType as LIN_POS_SPLINE in configure file), otherwise, use the velocity spline based one (set ScaleSplineType as LIN_VEL_SPLINE in configure file).
iKalibr v2.0.0 stable
Version 2.0.0 » iKalibr Is Comming With Support for RGBD Cameras
🎉 RGBD cameras are now supported in iKalibr! It is not an extension of the normal optical cameras already in iKalibr, but a new modeling and calibration method. Because of this, it is no longer necessary to perform time-consuming SfM to calibrate RGBD-Inertial suites (SfM is required when calibrating normal optical camera-IMU suites in iKalibr). The corresponding datasets and codes has been open-sourced and integrated into the new version of iKalibr. Come and try it!
For more details about the newly released RGBD-Inertial calibration method, please refer to our article 👇:
- S. Chen, X. Li*, S. Li, and Y. Zhou. iKalibr-RGBD: Partially-Specialized Target-Free Visual-Inertial Spatiotemporal Calibration For RGBDs via Continuous-Time Velocity Estimation[J]. arXiv:2409.07116 [cs.RO]. [paper-arXiv]
Other small changes in this version are:
- fix (a really severe) bug: when both the camera and LiDAR are introduced into
iKalibrfor calibration, the consistent depth map between the camera and LiDAR can be exported by the user (by specifying thePreference::Outputs::VisualLiDARCovisibilityoption in the configuration file). The inverse depth image is of typeCV_32FC1and should not be of typePNGwhen exported to the disk. In the new version, this bug is fixed and the output type isTIFF. - For
cppheader files with template functions, the description and definition of the template functions are separated to speed up recompilation. At the same time, the implementation ofCalibSolveris also separated into multiple source files according to the processing steps to speed up recompilation. - Optimize some codes for logic, readability and efficiency.
Attention: Due to the many new features brought by the version update, iKalibr's configuration file have changed significantly. For the existing old configuration files, if you need to use them, please refer to the latest configuration file template and modify them appropriately. This won't take long.
iKalibr v1.2.1 stable
Version 1.2.1 » Refinement For Sensor Data IO & Open Discussion
The main changes in this version are:
-
Add function
RefineImgMsgWrongEncoding, to refine encoding type of images. Although the encoding type is clear, we found that some users set unreasonable encoding types for images, such as8UC3(which is an image storage format inOpenCV, different from the encoding type). Therefore, we added this function to correct this oversight to avoid users from making additional encoding type adjustments. -
Add inertial data type
SENSOR_IMU_G_NEGfor IMU. Some users store acceleration inG, but interestingly, some use-G. To save users from doing extra work, we support reading acceleration in-G. -
Add many examples of sensor kits calibrated with
iKalibrto the Discussion module. -
Add
ikalibr-bag-topic-downsampleto downsample messages of a certain ros topic, and store them to a new rosbag.<launch> <!-- downsample messages of a rostopic and store them to a new rosbag --> <node pkg="ikalibr" type="ikalibr_bag_topic_downsample" name="ikalibr_bag_topic_downsample" output="screen"> <!-- the input rosbag --> <param name="input_bag_path" value="../desk_fast/desk_fast1.synced.left_camera_30hz.bag" type="string"/> <!-- the rostopic to down sampled --> <param name="topic_to_downsample" value="/camera/left/image_mono" type="string"/> <!-- the desired ros topic frequency --> <param name="desired_frequency" value="10" type="double"/> <!-- the output rosbag --> <param name="output_bag_path" value="../desk_fast/desk_fast1.synced.left_camera_10hz.bag" type="string"/> </node> </launch>
iKalibr v1.2.0 stable
Version 1.2.0 » Compatible With GLOMAP For SfM Reconstruction
GLOMAP is a general purpose global structure-from-motion pipeline for image-based reconstruction. GLOMAP requires a COLMAP database as input and outputs a COLMAP sparse reconstruction. As compared to COLMAP, this project provides a much more efficient and scalable reconstruction process, typically 1-2 orders of magnitude faster, with on-par or superior reconstruction quality.
Below is a comparison of SfM reconstruction between colmap mapper and glomap mapper, focusing on reconstruction result and reconstruction speed.
| 300 IMAGES | COLMAP MAPPER | GLOMAP MAPPER (RECOMMAND) |
|---|---|---|
| START TIME | 17:04:09.440652 | 16:56:57.489804 |
| END TIME | 17:21:00.542973 | 17:00:54.970989 |
| RUN TIME | 16.852 [minutes] | 3.570 [minutes] |
| FINAL MAP | ![]() |
![]() |
Attention: If cameras are integrated in sensor suite to be calibrated by iKalibr, structure from motion (SfM) is required for each camera.
iKalibr v1.1.0 stable
Version 1.1.0 » Support Spatial & Temporal Priori Constraints
For a multi-sensor kit to be calibrated, if the user already knows any spatiotemporal parameters between some sensors, the user can pass these parameters into iKalibr, and this would treat the spatiotemporal calibration problem in iKalibr as an equality constraint optimization problem with prior information, to ensure that the solution meets the prior spatiotemporal parameters. A typical example of this is to calibrate a multi-sensor kit containing Livox Avia. Since the manufacturer has provided the extrinsics of the IMU relative to the LiDAR in Avia, these extrinsics can be passed into ikalibr as a priori. To pass the spatiotemporal priori, please edit the config file and give its path to the SpatTempPrioriPath field in the main config file of iKalibr.
"The origin 'O' of IMU coordinate is defined in the point cloud coordinates as (-41.65, -23.26, 28.40) (Unit: mm).", from Livox AVIA User Manual.
Attention:
- Please note that this prior knowledge is not necessary in
iKalibr. If you have them and are very sure that they are correct, then provide it toiKalibrthrough this file, otherwise, don't need to provide the corresponding configure file. - The new feature in
iKalibr(support for prior constraints) is theoretically a nonlinear least squares problem with equality constraints. Technically, it can be implemented through Augmented Lagrangian or Sequential Quadratic Programming (SQP). Unfortunately,Ceresdoes not currently support this type of constrained optimization problem. Therefore, in terms of implementation, we directly treat this prior constraint as a residual with a large weight, which is also the suggestion given byCeresdevelopers.
iKalibr v1.0.0 stable
iKalibr is a spatiotemporal calibration framework focusing on resilient integrated inertial systems (sensor suite integrates at least one IMU), the features of iKalibr are listed as follows:
- Targetless: requires no additional artificial targets or facilities. This is perhaps the biggest difference between
iKalibrand Kalibr (Kalibr is a chessboard-based visual-inertial calibrator). - Spatiotemporal: determines both spatial (extrinsic rotations and translations) and temporal (time offsets, readout time of RS cameras) parameters.
- Resilient and compact: supports a wide range of sensor suites for one-shot resilient calibration. The IMUs, radars, LiDARs, and optical cameras (both GS and RS modes) are supported currently. See the following illustration of the full pipeline. "Compact" means that no additional sensors are required to calibrate a given sensor suite.
- Easy to extend:
iKalibris a general spatiotemporal calibration pipeline, and easy to extend to support other sensor types, such as the popular event cameras.
For more details, please refer to our article 👇:
- S. Chen, X. Li*, S. Li, Y. Zhou, and X. Yang. iKalibr: Unified Targetless Spatiotemporal Calibration for Resilient Integrated Inertial Systems[J]. arXiv:2407.11420 [cs.RO]. [paper-arXiv] [video]



