點雲資料顯示 rviz顯示點雲的參考座標系問題

2021-10-14 17:27:33 字數 1023 閱讀 4548

獲得深度相機的點雲後,使用pcl處理(除了濾波外,還會進行座標系變換,比如從相機座標系變換到機械人的 base_link),然後將pcl點雲型別轉換為ros msg的點雲型別。然後發布為話題進行顯示,具體情況就是下面這張圖

右邊影象是深度相機採集的原始點雲 /kinect/depth/points,參考係為 kinect_link

左邊為座標系變換後的點雲/scene/points,參考座標係為 kinect_link

這裡我們是想把深度圖顯示在 base_link 座標系下,因為 /scene/points 已經變換到 base_link 座標系下了。 所以要想正常顯示,必須在 發布點雲 /scene/points 的話題前將其參考座標系設定為 base_link,設定**如下

pcl::torosmsg(tranf_pcd, scene_pcd);

scene_pcd.header.frame_id = "base_link";

話題 /scene/points 發布的就是 scene_pcd 這個ros中的點雲型別。

正確結果如下:

這裡有個問題,就是在把點雲由 kinec_link 變換為 base_link 的時候,使用的座標變換矩陣為啥是 kinect_depth_link 相對 base_link 的變換矩陣??二者並不是相同的參考係

經過苦思冥想,這裡的 kinect_depth_link 是我自己根據點雲新增的真實點雲資料的參考座標系。

所以問題演變為為什麼深度相機採集的點雲參考座標系定義的是kinect_link,而實際的資料並不是這個參考座標系?????

ROS建立點雲資料並在rviz中顯示

實驗環境ros kinetic 1.新建工程 mkdir p catkin ws src cd catkin ws src catkin create pkg chapter6 tutorials pcl ros roscpp rospy sensor msgs std msgs cd catkin...

Matlab讀取點雲資料 顯示

求matlab讀取三維點雲資料的程式。clear a importdata data.txt ix,iy size a x a 1 y a 1 y a 2 z a 3 plot3 x,y,z,grid on gallery 函式是乙個測試矩陣生成函式。當需要對某些演算法進行測試的時,利用galler...

讀取點雲資料並顯示

在進行完雙目視覺的圖象採集後,就會進行立體匹配,進而得到一張深度圖。利用rgb彩色和depth深度圖,結合相機的內參,可以將rgb d圖象轉換出點雲資料。點雲資料的讀取用下面這幾行 實現。轉換點雲程式和點雲資料也會一起在別的筆記裡傳上來。用到了open3d庫,採用了兩種方法,一種一行 就可以實現,一...