Open Source Robotics

精選高品質的開源機器人專案、工具與軟體,推動機器人社群向前發展。

Point Cloud

  • 又稱: 3D Point Cloud, Point Cloud Data, PCD
  • 類別: Sensing › Perception outputs
  • 標籤: perception, 3d, sensors, mapping, segmentation

代表物體表面的 3D 資料點集合,由光達(LiDAR)或深度攝影機擷取。

定義

點雲是由感測器量測到、代表物體與環境表面的 3D 資料點集合。每個點至少包含 X、Y、Z 座標,也可能包含其他屬性,例如顏色(RGB)、強度、表面法向量或語意標籤。

點雲的產生方式: - 光達(LiDAR)感測器:發射雷射脈衝並量測回波時間,建立密集的 3D 掃描。產生高度準確、長距離的點雲(可達數百公尺)。 - 深度攝影機:Intel RealSense、Microsoft Azure Kinect 與類似裝置,以結構光或飛行時間量測產生點雲。典型範圍為 0.3 到 10 公尺。 - 立體攝影機組:在兩台攝影機之間對匹配的特徵做三角測量來計算深度。以軟體為基礎,使用標準的 RGB 相機。 - 攝影測量:從多張重疊的照片重建 3D 點雲。用於測繪與檢測。

點雲的常見操作: - 濾波:移除雜訊、離群值或地面點。體素網格降採樣能在保留結構的同時降低密度。 - 分割:把點雲分成有意義的群集(個別物體、表面、區域)。方法包括歐氏分群、RANSAC 平面擬合,以及 PointNet 等深度學習方法。 - 配準:把從不同位置擷取的多個點雲對齊成單一連貫的模型。ICP(Iterative Closest Point,迭代最近點)是經典的演算法。 - 物體偵測:辨識並分類點雲中的物體。對自動駕駛與機器人操作至關重要。 - 表面重建:把離散的點轉換成連續的網格表面,供 CAD、模擬或視覺化使用。

Point Cloud Library(PCL)與 Open3D 是機器人領域中點雲處理的兩大主流開源函式庫。ROS 透過 sensor_msgs/PointCloud2 訊息類型整合點雲資料。

為何重要

點雲是 3D 感知的共通貨幣,光達(LiDAR)、深度攝影機與攝影測量都以這種格式呈現它們看到的世界。了解它很重要,因為幾乎每一條 3D 處理流程都是一連串對點雲的操作:濾波、降採樣、分割、配準、擬合。它的決定性特性是沒有結構。與影像不同,點雲沒有網格,也沒有鄰近關係,這就是為什麼 3D 處理需要不同的工具組,也是為什麼天真的處理方式往往慢到無法使用。

主要應用

  • 根據深度感測器輸出進行物體分割與抓取規劃
  • 配準與對齊:把多次掃描拼接起來,或把掃描與 CAD 模型比對
  • 在雜亂空間中為運動規劃進行佔據與碰撞檢查
  • 表面重建:把零散的點轉換成網格,用於模擬或列印
  • 檢測與計量:把竣工掃描與標稱幾何比較
  • 腿式與越野機器人的地形分析,分類可通行的地面

實際應用

典型的操作流程會取得深度攝影機的原始點雲並立即加以精簡:裁切到工作範圍、以體素網格降採樣、移除統計離群值,接著分割出主要平面,把桌面與桌上的物體分開。剩下的部分再分群為可供抓取的候選物體。這一連串步驟(通常以 Point Cloud Library 或 Open3D 建構)之所以存在,是因為單一幀的原始點雲可能包含數十萬個點,其中絕大多數是地板、牆壁或雜訊。

常見誤解

  • 點雲就是 3D 模型:它是一組樣本,沒有表面、拓撲或內部;把它轉成網格是另一個獨立且會損失資訊的步驟
  • 越密的點雲越好:超過所關注特徵尺寸的密度,大多只會增加處理成本
  • 點雲是沒有雜訊的量測:每個點都帶有感測器誤差,且誤差隨距離與入射角而增加
  • 不同感測器的點可以直接合併:點雲必須先轉換到共同的座標系,這需要準確的外部參數校正

誰需要了解

  • 任何撰寫使用深度攝影機或光達(LiDAR)輸出之感知程式的人
  • 分析一條跟不上感測器速度之 3D 處理流程效能的工程師
  • 把多個 3D 感測器整合成單一連貫視圖的開發者
  • 想了解 3D 視覺函式庫為何與 2D 影像處理差異如此之大的學生
  • 任何把掃描轉換成網格,用於模擬、CAD 或製造的人

相關技術

  • Point Cloud Library(PCL)
  • Open3D
  • PointNet 與 PointNet++(點雲上的深度學習)
  • 迭代最近點(ICP)配準
  • 八元樹與 KD 樹空間索引
  • 用於幾何基元擬合的 RANSAC
  • 體素網格降採樣
  • 表面重建(Poisson、ball-pivoting)

相關術語

  • LIDAR
  • Depth Camera
  • SLAM
  • Sensor Fusion
  • ROS

相關專案

  • LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
  • Open3D: Modern library for 3D point cloud processing, mesh operations, and 3D machine learning
  • PCL: Industry-standard C++ library for point cloud processing in robotics perception
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
  • RTAB-Map: Versatile graph-based SLAM supporting RGB-D, stereo, and LiDAR with real-time operation

影片

  • What are Point Clouds, And How Are They Used?: dronegenuity

維基百科

  • 點雲

本網站需要 JavaScript 才能正常運作。請啟用 JavaScript 以瀏覽我們的開源機器人專案。