使用Rviz查看基於iai_kinect2的kinect2_bridge發佈的實時點雲和Octomap_server發佈的實時octomap數據

第一步:安裝Octomap及其在Rviz中的插件

sudo apt-get install ros-kinetic-octomap-ros 
sudo apt-get install ros-kinetic-octomap-msgs
sudo apt-get install ros-kinetic-octomap-server
sudo apt-get install ros-kinetic-octomap-rviz-plugins

or

sudo apt-get install ros-kinetic-octomap

第二步:啓動iai_kinect2的kinect2_bridge節點

roslaunch kinect2_bridge kinect2_bridge.launch publish_tf:=true #最後一個參數必須要,否則發佈的點雲數據沒有tf座標系,在rviz中是無法查看到的

第三步:啓動Octomap_server節點,將點雲話題/kinect2/qhd/points中的數據轉換成octomap話題/octomap_full中的八叉樹數據。
相關的啓動文件內容如下:
octomap_display.launch

<launch>
  <node pkg="octomap_server" type="octomap_server_node" name="octomap_server">

    <!-- resolution in meters per pixel -->
    <param name="resolution" value="0.1" />

    <!-- name of the fixed frame -->
    <param name="frame_id" type="string" value="/kinect2_link" />

    <!-- max range / depth resolution of the kinect in meter -->
    <param name="sensor_model/max_range" value="50.0" />
    <param name="latch" value="true" />

    <!-- max/min height for occupancy map, should be in meters -->
    <param name="pointcloud_max_z" value="1000" />
    <param name="pointcloud_min_z" value="0" />

    <!-- topic from where pointcloud2 messages are subscribed -->
    <remap from="cloud_in" to="/kinect2/qhd/points" />

  </node>
</launch>
roslaunch octomap_display.launch

第四步:啓動Rviz,在Displays面板中添加PointCloud2和OccupancyGrid插件,將Global Options中的Fixed Frame設置成kinect2_link,將PointCloud2的Topic設置成kinect2/qhd/points,將OccupancyGrid的Topic設置成/octomap_full即可。
點雲數據
在這裏插入圖片描述與上面點雲數據對應的Octomap數據

在這裏插入圖片描述
總結:獲取了實時點雲和octomap數據之後就可構建環境障礙物,實現運動規劃。還可先訂閱點雲話題得到點雲數據,濾波分割後再發布,再訂閱濾波、分割後點雲數據給Octomap_server節點,從而得到更加有效的Octomap環境地圖。

參考資料:
http://wiki.ros.org/octomap_server?distro=kinetic
http://wiki.ros.org/octomap

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章