獲得深度相機的點雲後,使用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庫,採用了兩種方法,一種一行 就可以實現,一...