- 环境记录:
g++/gcc 10.3
C++ 17
boost 1.58 ####
Eigen 3.2.10
OpenCV 3.4.12 ####
GLEW 2.0.0
fmt 8.1.1
ceres 1.14.0 ####
CGAL 5.4
cmake 3.22
gflags 2.2.0
no CUDA
-
代码链接:https://gitcode.net/mirrors/MegviiRobot/CamLaserCalibraTool
-
修改配置文件:CamLaserCalibraTool/config/my_calibra_config_pinhole.yaml
如果使用的相机模型为针孔相机(Pinhole),将config/calibra_config_pinhole.yaml中的内容覆盖到config/calibra_config.yaml中,并修改config/calibra_config.yaml中的以下参数
1)savePath::后面标定结果的保存位置
2)bag_path:录制的bag数据包的保存位置,默认在/home/用户名/路径下
3)scan_topic_name:修改为 /scan
4)img_topic_name:修改为 /camera/color/image_raw
5)tag_type:1:多 apriltag 的标定板 2:单 apriltag 的标定板
6)tag_size:apriltag 的边长
7)tag_spacing:apriltag之间的间距/apriltag 的边长
8)black_border:1:单apriltag 的标定板 2:多apriltag 的标定板
9)model_type:PINHOLE
10)camera_name: cam0
11)image_width: 1280
12)image_height: 720
13)distortion_parameters
14)projection_parameters:
fx:为相机内参K中的fx参数
fy:为相机内参K中的fy参数
cx:为相机内参K中的cx参数
cy:为相机内参K中的cy参数
%YAML:1.0
#common parameters
savePath: "/home/wyx/PCLdataset/220629wYx/calibration/cal_output5/"
bag_path: "/home/wyx/PCLdataset/220629wYx/calibration/calibration_bag5.bag"
scan_topic_name: "/scan"
img_topic_name: "/camera/color/image_raw"
# tag info
tag_type: 1 # 1: kalibr_tag, 2: apriltag
tag_size: 0.088 # tag size, unit meter
tag_spacing: 0.3 # tag spacing, only used in kalibr_tag. For details, please see kalibr tag description.
black_border: 2 # if you use kalibr_tag black_boarder = 2; if you use apriltag black_boarder = 1
#camera calibration
model_type: PINHOLE
camera_name: camera
image_width: 1280
image_height: 720
distortion_parameters:
k1: -0.05471304804086685
k2: 0.06547851115465164
p1: 0.0003827233158517629
p2: -0.020561281591653824
projection_parameters:
fx: 635.6290893554688
fy: 635.181884765625
cx: 638.620361328125
cy: 365.366943359375
- 开始标定
- 计算位姿
$ roslaunch lasercamera_ros kalibra_apriltag.launch
出现识别标定板位姿的窗口,注意XYZ轴的显示是否正常,如果不正常,可能你的参数文件中相机内参没有配置正确。
- 标定板位置检测 以及 变换矩阵计算
$ roslaunch lasercamera_ros calibra_offline.launch
- 验证结果
$ roslaunch lasercamera_ros debug.launch
$ rosbag play image.bag
如果激光线投影在标定板上并且保持跟随,则说明标定效果较好