原创 2D SLAM_Gmapping(3)_從Gmapping建圖到Amcl定位中地圖的變換過程

從Gmapping建圖到Amcl定位中地圖的變換過程可以分爲四個步驟: 第一步:Gmapping生成的概率地圖=>pgm圖片以及對應的yaml文件(map_saver) 第二步:pgm圖片以及對應的yaml文件=>ros的Occp

原创 Linux知識點(8)_ROS下如何利用CMakeLists.txt進行多目錄工程管理?

在程序開發中,如果工程比較小,我們通常是把.cpp文件往主程序的CMakeLists.txt文件裏面寫,但是如果遇到一個系統工程,比如模塊化開發,就會涉及到多個目錄下.cpp文件的編譯,如果這個時候再把.cpp一個個往主程序寫,這

原创 數據預處理(17)_座標轉換,tf::StampedTransform =」 Eigen::Matrix4f

在開發的過程中,通常會遇到座標轉換的問題,比如從傳感器座標系src,到車體座標系ref。通常可以分爲3步: 第一步:監聽TF bool getTF(const ros::Time&query_time,const std::str

原创 C++知識點(13)_返回對象用“引用“還是“值“?

看一個例子:這裏有一個時間類Time.對兩個時間求和。 Time Time::Sum(const Time& t) const { Time sum; sum.minutes=this->minutes+t.minutes;

原创 C++知識點(7)_istringstream文件流

在閱讀udacity的粒子濾波的代碼時,發現讀取地圖數據的代碼(從文件中讀取數據存放到自定義的數據結構中)寫得還不錯,後續可能會在工程中用上,在這裏記錄下來,以作記錄。 首先它定義了地圖數據結構: class Map { publ

原创 C++知識點(2)_int *a[10]、int (*a)[10]說明

此博客主要是想區分兩個概念: int *a[10]:數組指針,數組a裏面存放的是10個int型指針。 先找到聲明符a,然後向右看,有[]說明a是個數組,再向左看,是int *,說明數組中的每個元素是int *。所以這是一個存放in

原创 PCL庫學習(10)_直通濾波的界面開發

本節是繼《點雲庫PCL學習——QT5.7.0+VS2013+PCL1.8.0環境》章節的應用,將一步步搭建環境實現直通濾波的功能。 最終實現的簡單界面如下: 1.在QT的ui界面拉入相應的控件 爲了全面實現直通濾波,我拉入了以下控

原创 C++知識點(5)_substr()函數分割字符串

本節主要學習substr()函數的用法以及在實際工程中的應用。 一般來說,substr有2種用法: 假設:string s = “0123456789”; string sub1 = s.substr(5); //只有一個數字5表

原创 PCL庫學習(5)_點雲庫PCL VFH特徵識別官網代碼調試(2 build_kdtree)

在(1)環境搭建成功,編譯無錯誤後,調試運行但是提示我至少需要提供兩個參數。對此不理解,然後對主函數參數進行了理解,隨後啓動DOS命令行啓動程序。 通過上述命令行運行,在下列目錄下生成以下文件: 以上便是文件路徑的訪問方法,接下來將

原创 PCL庫學習(7)_關於如何給聚類得到的點雲上顏色(以歐式聚類爲例)

直接上代碼:         pcl::PointCloud<pcl::PointXYZ>::Ptr add_cloud(new pcl::PointCloud<pcl::PointXYZ>); pcl::search::KdTree<p

原创 C++知識點(11)_傳遞數組、指針和引用給函數

本章旨在幫助理解掌握值傳遞、指針傳遞、引用傳遞三種方式。 值傳遞:形參是實參的拷貝,改變形參的值不會影響外部實參的值,從被調用函數的角度來說,值傳遞是單向的,即從實參——>形參,參數的值只能傳入,不能傳出。當函數內部需要修改參數,

原创 PCL庫學習(3)_區域生長分割

算法理論: 區域生長分割算法廣泛應用於圖像分割中,二維圖像常常採取區域生長分割算法實現圖像分割,由於其分割的高效性,現已被應用於3D分割中,PCL中的類pcl::RegionGrowing用來實現點雲的區域生長分割。區域生長分割是

原创 C++知識點(3)_unique_ptr智能指針的使用

unique_ptr某個時刻只能有一個unique_ptr指向一個給定的對象,當unique_ptr被銷燬時它所指向的對象也被銷燬。 常規使用: 持有對對象的獨有權,即兩個unique_ptr 不能指向一個對象,不能進行復制操作只

原创 PCL庫學習(1)_離羣點濾波

本篇主講在用VS2012成功配置PCL1.7.2環境後,對table_scene點雲進行離羣點移除並可視化顯示。 首先參照《PCL點雲庫學習教程》使用Statistical OutlierRemove濾波器移除離羣點程序,代碼詳見

原创 ROS知識點(8)_ROS中的消息格式

//geometry_msgs::PoseWithCovarianceStamped.msg std_msgs/Header header geometry_msgs/PoseWithCovariance pose //geome