ROS 八叉樹地圖構建 - 給 octomap_server 增加半徑濾波器!

為了在每幀點云中濾除噪聲點舰攒,選擇了半徑濾波器败富,也用高斯濾波器測試過,但是沒有半徑效果好摩窃,這里記錄下在 octomap_server 中增加半徑濾波器的步驟兽叮,并在 launch 中配置濾波器參數(shù)。

一偶芍、半徑濾波器基本原理

放一張匯報用的 PPT 截圖:

image

原理很簡單就是判斷一個點云周圍(半徑 R)有沒有足夠多(K)的鄰居點充择,如果沒有就刪除這個點德玫,否則就保留匪蟀。

二、基本用法

我一般學習技術喜歡到官網(wǎng)看最原始的教程:Removing outliers using a Conditional or RadiusOutlier removal宰僧,這個教程介紹了半徑濾波器(我不清楚中文名到底叫什么濾波器)的基本用法:

#include <pcl/point_types.h>
#include <pcl/filters/radius_outlier_removal.h>

// 輸入待濾波的原始點云指針
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);

// 保存濾波后的點云指針
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered (new pcl::PointCloud<pcl::PointXYZ>);

// 創(chuàng)建濾波器對象
pcl::RadiusOutlierRemoval<pcl::PointXYZ> outrem;

// 設置要濾波的點云
outrem.setInputCloud(cloud);

// 設置濾波半徑
outrem.setRadiusSearch(0.8);

// 設置濾波最少近鄰數(shù)
outrem.setMinNeighborsInRadius (2);

// 執(zhí)行半徑濾波
outrem.filter (*cloud_filtered);

如果第一次使用 PCL 的濾波器材彪,可以把這個教程自己運行一遍,我之前運行過了琴儿,這次就不貼代碼了段化,下面分享下我在實際項目中如果使用這個半徑濾波器對我的 octomap_server 構建的八叉樹地圖進行濾波。

三造成、給我的地圖濾波

3.1 定義半徑濾波器參數(shù)

半徑濾波器有 2 個參數(shù):濾波半徑和半徑內部鄰居數(shù)显熏,注意數(shù)據(jù)類型

// 濾波半徑
double m_outrem_radius;

// 半徑內的鄰居數(shù)
int m_outrem_neighbors;

在構造函數(shù)初始化列表中初始化:

OctomapServer::OctomapServer(const ros::NodeHandle private_nh_, const ros::NodeHandle &nh_)
: ...,
  m_outrem_radius(-std::numeric_limits<double>::max()),
  m_outrem_neighbors(-std::numeric_limits<int>::max()),
  ...

從 launch 中讀取啟動參數(shù):

// add outrem filter
m_nh_private.param("outrem_radius", m_outrem_radius, m_outrem_radius);
m_nh_private.param("outrem_neighbors", m_outrem_neighbors, m_outrem_neighbors);

3.2 執(zhí)行半徑濾波

在 InsertPointCloudCallBack 函數(shù)的 PassThough 前執(zhí)行半徑濾波,即對每一幀點云在構建八叉樹地圖前進行濾波晒屎,主要是為了去掉單獨的離群點:

// 對一幀 pc 點云進行半徑濾波
pcl::RadiusOutlierRemoval<pcl::PointXYZRGB> outrem;

// 這里需要傳遞指針喘蟆,因為我的 pc 不是指針,所以這里做了 makeShared
outrem.setInputCloud(pc.makeShared());

// 設置濾波半徑鼓鲁,這里設置為 1m
outrem.setRadiusSearch(m_outrem_radius); 

// 設置濾波近鄰數(shù)蕴轨,這里設置為 10 個
outrem.setMinNeighborsInRadius (m_outrem_neighbors);

// 執(zhí)行濾波
outrem.filter(pc);

3.3 在 launch 中配置半徑濾波器參數(shù)

<param name = "outrem_radius" type = "double" value = "1.0">
<param name = "outrem_neighbors" type = "int" value = "10">

這樣以后就可以從 launch 中直接配置濾波器的參數(shù)了,不用每次修改再重新編譯骇吭,這樣調試起來非常方便橙弱。

3.4 濾波結果

這是原始地圖,15cm 分辨率燥狰,紅框內部有很多單個的點:

image

這是濾波后的效果棘脐,濾波半徑 1m,近鄰點 10 個:

image

效果還是可以的龙致,希望能對你有幫助蛀缝,如果使用其他的濾波器,按照官方的教程來就行了净当,掌握學習方法才是最重要的:)

image
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末内斯,一起剝皮案震驚了整個濱河市蕴潦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌俘闯,老刑警劉巖潭苞,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異真朗,居然都是意外死亡此疹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門遮婶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蝗碎,“玉大人,你說我怎么就攤上這事旗扑”钠铮” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵臀防,是天一觀的道長眠菇。 經常有香客問我,道長袱衷,這世上最難降的妖魔是什么捎废? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮致燥,結果婚禮上登疗,老公的妹妹穿的比我還像新娘。我一直安慰自己嫌蚤,他們只是感情好辐益,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著搬葬,像睡著了一般荷腊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上急凰,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天女仰,我揣著相機與錄音,去河邊找鬼抡锈。 笑死疾忍,一個胖子當著我的面吹牛,可吹牛的內容都是我干的床三。 我是一名探鬼主播一罩,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼撇簿!你這毒婦竟也來了聂渊?” 一聲冷哼從身側響起差购,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎汉嗽,沒想到半個月后欲逃,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡饼暑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年稳析,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弓叛。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡彰居,死狀恐怖,靈堂內的尸體忽然破棺而出撰筷,到底是詐尸還是另有隱情陈惰,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布闭专,位于F島的核電站奴潘,受9級特大地震影響,放射性物質發(fā)生泄漏影钉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一掘剪、第九天 我趴在偏房一處隱蔽的房頂上張望平委。 院中可真熱鬧,春花似錦夺谁、人聲如沸廉赔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜡塌。三九已至,卻和暖如春勿负,著一層夾襖步出監(jiān)牢的瞬間馏艾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工奴愉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留琅摩,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓锭硼,卻偏偏與公主長得像房资,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子檀头,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355