多传感标定
相机标定:
- camera_calibration 单目/双目
ROS下单目和双目相机的标定
在ROS中实现双目相机校正
标定结果参数:
image_width、image_height代表图片的长宽
camera_name为摄像头名
camera_matrix规定了摄像头的内部参数矩阵: [ f x , 0 , c x ; 0 , f y , c y ; 0 , 0 , 1 ] [f_x,0,c_x;0,f_y,c_y;0,0,1] [fx,0,cx;0,fy,cy;0,0,1]
其中, f x , c x , f y , c y f_x,c_x,f_y,c_y fx,cx,fy,cy的单位都是基于像素的,不是mm/cm/m
distortion_model指定了畸变模型
distortion_coefficients指定畸变模型的系数
rectification_matrix为矫正矩阵,一般为单位阵
projection_matrix为外部世界归一化坐标到像平面的投影矩阵
标定参数说明
视差(Disparity),空间一点投影在左右两个相机图像平面上的像素坐标差:理想情况下,由于左右相机只有在 x 轴上有位移
u
R
−
u
L
u_R-u_L
uR−uL
基线(baseline):左右相机之间的物理距离差
b
=
d
X
2
+
d
Y
2
+
d
Z
2
b=\sqrt{dX^2+dY^2+dZ^2}
b=dX2+dY2+dZ2
可根据投影矩阵计算公式得:视差与基线的关系
u
L
−
u
R
=
f
x
(
X
L
Z
L
−
X
R
Z
R
)
u_L-u_R=f_x(\frac{X_L}{Z_L}-\frac{X_R}{Z_R})
uL−uR=fx(ZLXL−ZRXR)
图为简化假设理想环境,同一环境特征点在左右目坐标系下的表示只有水平差值:设同一个点在左右相机坐标系下的水平坐标分别为
X
L
X_L
XL和
X
R
X_R
XR,则可得:
b
=
X
L
−
X
R
b=X_L-X_R
b=XL−XR。此时,
Z
L
=
Z
R
=
Z
Z_L=Z_R=Z
ZL=ZR=Z,看图就清楚了。
u
L
−
u
R
=
f
x
(
X
L
Z
L
−
X
R
Z
R
)
=
f
x
b
Z
u_L-u_R=f_x(\frac{X_L}{Z_L}-\frac{X_R}{Z_R})=f_x\frac bZ
uL−uR=fx(ZLXL−ZRXR)=fxZb
对于camera_calibration这个工具标定的参数projection_matrix(投影矩阵)表示将三维归一化坐标点投影到像素平面上的投影矩阵。投影矩阵对应格式:
P
=
[
f
x
0
c
x
0
f
y
c
y
0
0
1
−
b
f
0
0
]
P=\left[\begin{matrix}\begin{matrix}f_x&0&c_x\\0&f_y&c_y\\0&0&1\\\end{matrix}&\begin{matrix}-bf\\0\\0\\\end{matrix}\\\end{matrix}\right]
P=⎣⎡fx000fy0cxcy1−bf00⎦⎤
[
u
v
1
]
=
P
[
X
/
Z
Y
/
Z
1
1
/
Z
]
\left[\begin{matrix}u\\v\\1\\\end{matrix}\right]=P\left[\begin{matrix}\begin{matrix}X/Z\\Y/Z\\\end{matrix}\\\begin{matrix}1\\1/Z\\\end{matrix}\\\end{matrix}\right]
⎣⎡uv1⎦⎤=P⎣⎢⎢⎡X/ZY/Z11/Z⎦⎥⎥⎤
对于右目的projection_matrix的标定结果的第四列会多一列参数,如:
projection_matrix:
rows: 3
cols: 4
data: [ 319.55669, 0. , 364.74093, -39.30455,
0. , 319.55669, 156.69363, 0. ,
0. , 0. , 1. , 0. ]
其中的[-39.30455, 0, 0]T表示将左目归一化特征点变换到右目归一化平面上需要添加的偏移。(图像x方向向右为正方向,同一个点投影在左目图像水平方向x的参数>投影在右目图像水平方向x的参数,注意,相机图像会在小孔成像后翻转,所以我们得到的同一个点投影在左目图像水平方向x的参数>投影在右目图像水平方向x的参数)。
将右目下的归一化平面变换到左目归一化平面需要添加的偏移为b*f。或者说,空间点对应在左右目归一化平面坐标的差值。
因此右目的projection_matrix参数用于将左目提取的三维点变换到右目的归一化图像坐标。
ORB的相机配置文件中的camera.bf项为:b*f(基线*焦距)
- kalibr标定 单目/双目内外参
IMU内参标定:
imu_utils
imu_tk
imu_utils & imu_tk
用imu_utils标定IMU,之后用于kalibr中相机和IMU的联合标定
相机&IMU联合标定:
联合标定双目相机和imu,使用工具Kalibr
简书-相机+imu标定
Kalibr标定工具
雷达&相机标定
lidar_camera_calibration
lidar_camera_calibration使用-https://blog.csdn.net/zhanghm1995/article/details/87802656
激光雷达与相机联合校准
https://github.com/robofit/but_velodyne
appllo-https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_2_0_sensor_calibration_guide.md
https://github.com/Autoware-AI/autoware.ai
autoware-https://www.pianshen.com/article/6996343025/
雷达&IMU标定
lidar_align:适用于机器人、无人机的lidar-imu标定。
apollo:适用于无人驾驶。
imu计算
imu位置解算-互补滤波器
在静止状态下根据IMU(加速度计)计算姿态角
https://blog.csdn.net/qiuzhizhecsd/article/details/102590021