---
# System prepended metadata

title: cartographer 特徵演算法說明
tags: [cartographer]

---

# cartographer 特徵演算法說明

## 端點特徵檢測Point Feature Histograms (PFH)
採用遞歸的快速端點檢測算法從掃描端點開始,檢測起伏較大的點為端點特徵,是一種從三維點雲中提取特徵的演算法,具體步驟包括:

1. 端點檢測(Endpoint detection)
在點雲中檢測出曲率變化較大的端點,即物體表面的角點
2. 法線計算(Normal computation)
在每個端點附近計算法線方向
3. 指向性研究(Directedness study)
檢查點鄰域內的法線指向性,移除指向性較弱的端點
4. PFH描述子(PFH descriptor)
計算每個端點的PFH(點特徵組歷史agram)描述子
描述端點附近點的法線分佈、曲率等信息
5. 描述子匹配(Descriptor matching)
使用PFH描述子尋找不同掃描中的匹配端點
## 特徵聚類
將具有相似法線的端點特徵群集(例如k-means)
每個群集支援一個平面假設
## 平面匹配
假設每一組端點代表一個平面模型,對候選群集提取其平面參數(從每組端點資料中擬合出支持平面模型的參數,如法向量、原點距離等),利用平面參數相似性分數匹配不同掃描平面閾值過濾移除端點數量過少的組別
## 地圖顯式關聯
使用平面模型參數進行不同掃描之間的匹配,將匹配的平面關聯到地圖中已有的平面幫助平面匹配的一致性和可追蹤性
## 姿態計算
利用匹配平面和地圖中先驗平面關聯計算掃描姿態

Cartographer通過偵測平面特徵,並與先驗地圖建立關聯,實現了擁有語意信息的強大匹配,這是其實現高精度SLAM的關鍵。



