**:
在基於機械雷達的定位系統中,點雲畸變補償是必須要做的事情,因為按照機械雷達的原理,有運動就有畸變。
畸變產生的原因是一幀點雲中的點不是在同一時刻採集的,在採集過程中,雷達隨著載體在運動,但是雷達點測量的是物體和雷達之間的距離,所以不同雷射點的座標系就不一樣了。
解決這一問題,就需要把採集過程中雷達的運動計算出來,並在對應的雷射點上補償這個運動量。
大家接觸比較多的運動畸變補償**應該是loam裡面的那段,這裡稍有些不同,首先,雷達的點雲輸出一般是按照列排列,而此處經過第三方程式對kitti資料進行二次加工後,它變成了行排列,這種排列方式的改變會導致補償方法有所區別。另一點不同是,loam使用了高頻率的imu資料進行補償,從原理上講,這樣確實更精確,尤其是高動態環境下,但是稍顯複雜,對於車來講,運動並不劇烈,沒有高頻運動,所以我們在點雲的乙個採集週期(100ms)內可以認為它是勻速運動,這樣實現起來就簡單多了。
我們更詳細地解釋一下這個事。
首先要說一幀點雲的產生過程。對於kitti資料集來講,使用的是velodyne hdl 64e,就是這個像全家桶的東西。
這個雷達在縱向上排列著64個雷射發射器和接收器,也就是說,它一次發射和接收會得到一列64個點。這64個發射器沿著不同的水平角發射,在hdl 64e中,最大的水平角是2°,最小的水平角是-24.8°,中間的水平角均勻變化,相鄰的兩個發射器的水平角相差大概0.4°。在採集過程中,這一列裝置繞著豎直方向旋轉,在100ms內旋轉一周,在旋轉過程中,不斷地發射和接收,就會得到n列雷射點,這些雷射點共同構成了一幀點雲。hdl 64e中,這個n是4500,也就是水平方向上解析度是0.08°。
由於豎直方向解析度是0.4°,水平方向上解析度是0.08°,即豎直方向間隔要比水平方向大很多,所以我們看到的點雲都是一圈一圈的。
由於雷達計算雷射點座標時,都是以接收到雷射束時刻的雷達自身座標係為基礎的,所以載體運動過程中,每一列雷射點的基準座標系都是不一樣的,但是他們在同一幀點雲裡,我們希望能統一在同乙個座標系下,所以我們需要知道每次採集時的座標系相對於初始時刻座標系的轉換關係。
到這裡,我們就找到了問題的核心,只要計算出來每個雷射束接收時刻,雷達相對於初始時刻的相對運動就可以了,它就是我們需要的座標系轉換關係,然後這個雷射點座標乘以這個轉換關係,就轉換成了在初始座標系下的雷射點了。
我們再把這個問題分解一下,補償可分為計算和轉換兩步,如下
在勻速模型假設前提下,座標 = 運動×時間,所以又可以分解為兩步:
運動資訊在原始資料裡已經存在,包括角速度、速度,分別用來計算相對角度和相對位移。而且資料是我們已經做好時間同步的。
由於是順序掃瞄,我們可以很容易通過atan2(y, x)來計算出該雷射點相對於第乙個雷射點旋轉過的角度
其實就是座標系×向量,座標系是轉換矩陣,向量是轉換之前的雷射點座標,這個轉換可以先旋轉再平移,也可以用4x4矩陣一次性計算,都行,不是核心問題。
雷射雷達感測器以及運動畸變去除
深藍學院 雷射slam 課程 其中假設右邊為乙個雷射發射器,左邊為攝像頭接受右方反射的光。其中已知l l 1 l2 l l 1 l 2 l l1 l2 因此 l1 dtan l2 dta n l 1 l 2 l1 ta n d l2 tan d l l 1 l2 dta n d tan l l 1 ...
LiDAR MEMS雷射雷達點雲實時顯示
mems雷射雷達出來後,為了不用leddartech的ide軟體,於是對其 進行了封裝,以供其他軟體呼叫。在研究的過程中,點雲的實時顯示以前還未做過,就寫了段測試 驗證一下 include stdafx.h include 標準輸入輸出流 include pcl的pcd格式檔案的輸入輸出標頭檔案 i...
雷射雷達點雲的特徵表達
點對點特徵 point wise feature 提取 特徵融合 雷射雷達是一種綜合的光探測與測量系統,通過發射接受雷射束,分析雷射遇到目標物件後的折返時間,計算出目標物件與車的相對距離。目前常見的有16線 32線 64線雷射雷達。雷射雷達線束越多,測量精度越高,安全性越高。多束雷射線同時發射,並配...