双目相机与IMU camera IMU 联合标定工具箱使用方法——Kalibr

http://www.cnblogs.com/SongHaoran/p/6912042.html

 

https://bitbucket.org/alberto_pretto/imu_tk/overview

IMU-TK: Inertial Measurement Unit ToolKit

https://blog.csdn.net/liweibin1994/article/details/53704140

 

摄像头与imu坐标转换

最近由于实习需要在玩orb slam,然后想在摄像头上安装一个imu来辅助测量。在把imu贴在摄像头后面之后,一个问题出现了:摄像头的坐标系与imu的坐标系不会对得很准,即它们的坐标很难人工对准。要让它们的坐标轴都重合,需要一个转换。

 

 

上图中,

C1:摄像头从初始状态(即单位阵I,这个单位阵是指摄像头开机的时候当做起始状态)到T1时刻的转换为C1;

C2:摄像头从初始状态(即单位阵I)到T2时刻的转换为C2;

Rc:从T1时刻的状态转换到T2时刻的状态所需要的转换(旋转)矩阵;

M1:imu初始状态(即单位阵,这个单位阵是指imu与世界坐标系重合时为单位阵。)到T1时刻的转换为M1;

M2:imu初始状态(即单位阵,这个单位阵是指imu与世界坐标系重合时为单位阵。)到T2时刻的转换为M2;

Rm:从T1时刻的状态转换到T2时刻的状态所需要的转换(旋转)矩阵;

R:imu自身的坐标系到与摄像头的坐标系之间存在的转换。

 

为什么说摄像头初始状态是单位阵呢?

 

在orb slam开始运行时,它并不知道这个世界的方位是怎样的。于是它会把它的初始状态当做原点,以后新的姿态都是相对于初始状态来说的。在旋转矩阵中,单位阵表示没有旋转。

 

求解转换矩阵R:

 

我们的目标是求出转换矩阵R,这一从imu坐标系上的数据就能转换到摄像头的坐标系上进行计算了。显然:

C2 = Rc×C1;

M2 = Rm×M1;

C1 = R×M1;

C2 = R×M2;

于是:R×M2 = Rc×R×M1

即:R×Rm×M1 = Rc×R×M1

所以:R×Rm = Rc×R

 

这里要注意的是,旋转矩阵都是在左边,即左乘的。顺序要保持一致,推导出来的公式才是对的。

我们要求解的是R,所以我们要先计算出Rm和Rc。orb slam在运行的时候会一直输出摄像头的估计姿态矩阵,也就是类似于C1和C2,所以可以通过C1和C2来计算出Rc。Rc = C2×inv(C1);

在运行的过程中也可以测量到imu的姿态M1和M2,通过M1和M2来计算出Rm。

 

但是对于矩阵方程:R×Rm = Rc×R,即使知道Rc和Rm也难算出R。所以要进行一些小小的转换。
可以将上面的方程展开如下:

 

 

将上面的方程经过转换之后,即可得到:

 

 

其中A是一个9X9的矩阵。一般来说,A的行列式不等于0,所以没有非零解,所以在matlab下可以通过svd函数求出近似解。

[u,s,v] = svd(A'*A);得到的v的最后一列即是近似解。

 

https://blog.csdn.net/liweibin1994/article/details/53704140

 

IMU-Camera 联合标定资料总结

https://blog.csdn.net/OKasy/article/details/79864573

imu标定代码

https://bitbucket.org/alberto_pretto/imu_tk/src

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值