点的空间变换与坐标系的空间变换
博主小白,分享一下自己對于點(diǎn)變換和坐標(biāo)系變換的理解,不對的地方請大家指出~
目錄
- 坐標(biāo)系變換
- 點(diǎn)變換
- KITTI數(shù)據(jù)集中的坐標(biāo)系關(guān)系
- 參考
坐標(biāo)系變換
以最簡單的坐標(biāo)系變換為例,如下圖
圖中有兩個(gè)坐標(biāo)系,因?yàn)闆]有旋轉(zhuǎn),兩個(gè)坐標(biāo)系之間的變換關(guān)系很顯然為
[X2Y2]=[01?10][X1Y1]\begin{bmatrix} X_2 \\ Y_2 \end{bmatrix} = \left[ \begin{array}{cccc} 0 & 1 \\ -1 & 0 \end{array} \right ] \begin{bmatrix} X_1 \\ Y_1 \end{bmatrix} [X2?Y2??]=[0?1?10?][X1?Y1??]
將
[01?10]\begin{bmatrix} 0 & 1 \\ -1 & 0 \end{bmatrix} [0?1?10?]記為 TrT_rTr?, 也就是
[X2Y2]=Tr[X1Y1]\begin{bmatrix} X_2 \\ Y_2 \end{bmatrix} = T_r \begin{bmatrix} X_1 \\ Y_1 \end{bmatrix} [X2?Y2??]=Tr?[X1?Y1??]
在這個(gè)式子中,TrT_rTr?代表由坐標(biāo)系2到坐標(biāo)系1的空間變換,也就是坐標(biāo)系1相對于坐標(biāo)系2的位姿
點(diǎn)變換
同理,還是上面這個(gè)圖,點(diǎn)P(a,b)P(a,b)P(a,b)在坐標(biāo)系1下的坐標(biāo)為P1(a,b)P_1(a,b)P1?(a,b),在坐標(biāo)系2下的坐標(biāo)為P2(b,?a)P_2(b,-a)P2?(b,?a),設(shè)P1P_1P1?和P2P_2P2?的坐標(biāo)變換為T12T_1^2T12?代表坐標(biāo)系2到坐標(biāo)系1的變換,則有:
P2=T12?P1P_2=T_1^2*P_1P2?=T12??P1?
帶入P1P_1P1?,P2P_2P2?得:
[b?a]=[01?10][ab]\begin{bmatrix} b \\ -a \end{bmatrix} = \left[ \begin{array}{cccc} 0 & 1 \\ -1 & 0 \end{array} \right ] \begin{bmatrix} a \\ b \end{bmatrix} [b?a?]=[0?1?10?][ab?]
因此,可以得到T12=[01?10]T_1^2=\left[\begin{array}{cccc} 0 & 1 \\ -1 & 0 \end{array}\right]T12?=[0?1?10?]
通過這個(gè)例子可以發(fā)現(xiàn),點(diǎn)的空間變化和坐標(biāo)系的空間變換是一樣的。
KITTI數(shù)據(jù)集中的坐標(biāo)系關(guān)系
理解了上面的內(nèi)容(點(diǎn)的空間變化和坐標(biāo)系的空間變換是一樣的),kitti數(shù)據(jù)集的坐標(biāo)系變換就很簡單了。
kitti坐標(biāo)系之間的關(guān)系如下如圖,其中左側(cè)的坐標(biāo)系是kitti odomtery的真值坐標(biāo)系,右側(cè)是lidar坐標(biāo)系,因?yàn)锳-LOAM計(jì)算的到的pose是右側(cè)的,所以要想根據(jù)真值進(jìn)行評價(jià),我們需要將其轉(zhuǎn)換到左側(cè)的真值坐標(biāo)系(其實(shí)就是左相機(jī)的坐標(biāo)系),具體可以參考這篇博客。
記:
lidar to left camera的外參矩陣為TrT_rTr?,即Tr transform a point from velodyne coordinates into the left camera coordinate system;(這里我感覺這個(gè)TrT_rTr?其實(shí)就是camera到lidar的變換矩陣)
第i幀lidar坐標(biāo)系在其世界坐標(biāo)系(其世界坐標(biāo)系就是指的相對于第一幀lidar的pose)的pose(也即transform)為TilidarwT_i^{lidar_w}Tilidarw??;
第i幀camera坐標(biāo)系在其世界坐標(biāo)系的pose為TicamerawT_i^{camera_w}Ticameraw??;
第i幀lidar坐標(biāo)系下的點(diǎn)云為PilidarlP_i^{lidar_l}Pilidarl??;
第i幀camera坐標(biāo)系下的點(diǎn)云為PicameralP_i^{camera_l}Picameral??;
第i幀點(diǎn)云在lidar世界坐標(biāo)系(第一幀的坐標(biāo)系)下的點(diǎn)云為PilidarwP_i^{lidar_w}Pilidarw??;
第i幀camera世界坐標(biāo)系(第一幀的坐標(biāo)系)下的點(diǎn)云為PicamerawP_i^{camera_w}Picameraw??;
有:
Picameraw=PicamerawP_i^{camera_w}=P_i^{camera_w} Picameraw??=Picameraw??
Ticameraw?Picameral=Tr?PilidarwT_i^{camera_w}*P_i^{camera_l}=T_r*P_i^{lidar_w} Ticameraw???Picameral??=Tr??Pilidarw??
Ticameraw?Tr?Pilidarl=Tr?Tilidarw?PilidarlT_i^{camera_w}*T_r*P_i^{lidar_l}=T_r*T_i^{lidar_w}*P_i^{lidar_l} Ticameraw???Tr??Pilidarl??=Tr??Tilidarw???Pilidarl??
Ticameraw?Tr=Tr?TilidarwT_i^{camera_w}*T_r=T_r*T_i^{lidar_w} Ticameraw???Tr?=Tr??Tilidarw??
Ticameraw=Tr?Tilidarw?Tr?1T_i^{camera_w}=T_r*T_i^{lidar_w}*T_r^{-1} Ticameraw??=Tr??Tilidarw???Tr?1?
其中TicamerawT_i^{camera_w}Ticameraw??就是kitti的odomtery的真值,TilidarwT_i^{lidar_w}Tilidarw??為A-LOAM得到的里程計(jì)。
參考
[1] LOAM筆記及A-LOAM源碼閱讀
總結(jié)
以上是生活随笔為你收集整理的点的空间变换与坐标系的空间变换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 柱形图和折线图在一个坐标轴ECharts
- 下一篇: Nessus: 漏洞扫描器-网络取证工具