对lidar2camera/auto_calib_v2.0进行了修改。
因为在jetson上执行太慢,只有单个cpu在跑,所以用OMP优化了一下各个for循环,让CPU能跑满。除了点云分割,因为是迭代的所以没优化。
因为使用的点云是多个文件合并起来的,可能有重复的点,所以下采样了一下。但体素滤波在点云太大时报overflow,改用octree,然后对每个叶子节点求质心。
BruteForceSearch和RandomSearch里支持外参左乘deltaT,因为感觉应该对变换到相机坐标系下准备投影的点云进行搜索?不确定...实际应该没有影响。
Calibrate()里增加了对位移的BruteForceSearch。
最后结果外参中的t不太准,和真值差了十几、二十厘米,角度差得不大。
投影也有点小瑕疵,但大体对上了。
最后得分score和真值差得很小,0.00几分,但就是导致搜索偏离了真值。确实投影对位移不如旋转敏感?
在Carla下进行测试的,所以激光点的intensity不准,只与距离有关。但试过score中去掉intensity的权重,结果也不理想。
SensorsCalibration is a simple calibration toolbox and open source project, mainly used for sensor calibration in autonomous driving.
Sensor calibration is the foundation block of any autonomous system and its constituent sensors and must be performed correctly before sensor fusion may be implemented. Precise calibrations are vital for further processing steps, such as sensor fusion and implementation of algorithms for obstacle detection, localization and mapping, and control. Further, sensor fusion is one of the essential tasks in autonomous driving applications that fuses information obtained from multiple sensors to reduce the uncertainties compared to when sensors are used individually. To solve the problem of sensor calibration for autonomous vehicles, we provide a sensors calibration toolbox. The calibration toolbox can be used to calibrate sensors such as IMU, LiDAR, Camera, and Radar.
# pull docker image
sudo docker pull scllovewkf/opencalib:v1
# After the image is pulled down, start the docker image. /home/sz3/ailab/ = code root path on your host
docker run -it -v /home/sz3/ailab/:/share scllovewkf/opencalib:v1 /bin/bash
# or
sudo ./run_docker.shThis calibration toolbox provides some calibration tools based on road scenes. The specific contents are as follows. If you want to use one of the calibration tools in the list below, you can click the use link to enter the instruction page.
| calibration param | calibration type | calibration method | mannual calibration | auto calibration | usage documentation |
|---|---|---|---|---|---|
| camera intrinsice | intrinsic | target-based | ✔ | camera intrinsic | |
| imu heading | extrinsic | target-less | ✔ | imu heaidng | |
| lidar2imu | extrinsic | target-less | ✔ | ✔ | lidar2imu |
| lidar2camera | extrinsic | target-less | ✔ | ✔ | lidar2camera |
| lidar2lidar | extrinsic | target-less | ✔ | ✔ | lidar2lidar |
| surround-camera | extrinsic | target-based & target-less | ✔ | ✔ | surround-camera |
| radar2camera | extrinsic | target-less | ✔ | radar2camera | |
| radar2lidar | extrinsic | target-less | ✔ | radar2lidar |
At the same time, the calibration toolbox also provides some factory calibration tools.
| calibration board type | calibration sensor | calibration board pattern | remove opencv | auto calibration | usage documentation |
|---|---|---|---|---|---|
| chessboard | Camera | chessboard | ✔ | ✔ | factory calib |
| circle board | Camera | circle_board | ✔ | ✔ | factory calib |
| vertical board | Camera | vertical board | ✔ | ✔ | factory calib |
| apriltag board | Camera | apriltag board | ✔ | ✔ | factory calib |
| aruco marker board | Camera | aruco marker board | ✔ | ✔ | factory calib |
| round hole board | Camera and LiDAR | round hole board | ✔ | ✔ | factory calib |
SensorX2car is a calibration toolbox for the online calibration of sensor-to-car coordinate systems in road scenes for autonomous driving.
| calibration param | calibration type | calibration method | mannual calibration | auto calibration | usage documentation |
|---|---|---|---|---|---|
| camera2car | extrinsic | target-less | ✔ | ✔ | SensorX2car |
| lidar2car | extrinsic | target-less | ✔ | SensorX2car | |
| pose_sensor2car | extrinsic | target-less | ✔ | SensorX2car | |
| radar2car | extrinsic | target-less | ✔ | SensorX2car |
Related paper available on arxiv: OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
If you find this project useful in your research, please consider cite:
@article{opencalib,
title={OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving},
author={Yan, Guohang and Liu, Zhuochun and Wang, Chengjie and Shi, Chunlei and Wei, Pengjin and Cai, Xinyu and Ma, Tao and Liu, Zhizheng and Zhong, Zebin and Liu, Yuqian and Zhao, Ming and Ma, Zheng and Li, Yikang},
journal={arXiv preprint arXiv:2205.14087},
year={2022},
}
SensorsCalibration is released under the Apache 2.0 license.
If you have questions about this repo, please contact Yan Guohang (yanguohang@pjlab.org.cn).