ros學習筆記 - 深度傳感器轉換成激光數據(hector_slam)


前提條件:1,確保讀者已經安裝了kinect或者其他深度攝像頭的驅動,如果未安裝,可以直接在網盤下載:http://pan.baidu.com/s/1hqHB10w 提取密碼:wrmn

利用深度相機仿激光數據創建地圖:


所依賴包的下載與安裝:

1,安裝hector_slam

2,下載hector_slam_example:下載地址,編譯好之后,記住需要將這個文件加入ros包中  

 ROS_PACKAGE_PATH=/home/用戶名/catkin_ws/hector_slam_example:$ROS_PACKAGE_PATH
 當然路徑改成你自己的路徑。
3,Install the dependency packages: 
 
  rosdep install hector_slam_example
 
4,在啟動之前如果你用的是kinect,那就請你修改一下launch文件吧。
 
   <include file="$(find openni_launch)/launch/openni.launch">  
#由於我們使用的kinect,openni2已近不支持了。所以用openni然后就是roslaunch
  
  roslaunch hector_slam_example hector_openni.launch
 
只需要讓移動平台移動就可以去構建地圖了,當然這里面用的生成模擬極光的方法是depthimage_to_laserscan,代碼的方法速度更快但是要求攝像頭要相對穩定,並且盡量水平放置。
 
效果:
 
從單幀來看,還是不錯的,
但是移動一下后就發現問題了:
 
查了一下后才知道:
 
ros中常用的2d slam算法主要有gmapping和hector_slam,其中
hector_slam是個性能非常好的算法,但是作者在論文中說的很明白,hector_slam通過最小二乘法匹配掃描點,且依賴高精度的激光雷達數據,但是不需要里程計。因此掃描角很小且噪聲較大的kinect是不行的,我試過,匹配的時候會陷入局部點,地圖非常混亂。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM