使用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">

    
    <param name="resolution" value="0.1" />

    
    <param name="frame_id" type="string" value="/kinect2_link" />

    
    <param name="sensor_model/max_range" value="50.0" />
    <param name="latch" value="true" />

    
    <param name="pointcloud_max_z" value="1000" />
    <param name="pointcloud_min_z" value="0" />

    
    <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即可。
点云数据
使用Rviz查看基于iai_kinect2的kinect2_bridge发布的实时点云和Octomap_server发布的实时octomap数据_第1张图片与上面点云数据对应的Octomap数据

使用Rviz查看基于iai_kinect2的kinect2_bridge发布的实时点云和Octomap_server发布的实时octomap数据_第2张图片
总结:获取了实时点云和octomap数据之后就可构建环境障碍物,实现运动规划。还可先订阅点云话题得到点云数据,滤波分割后再发布,再订阅滤波、分割后点云数据给Octomap_server节点,从而得到更加有效的Octomap环境地图。

参考资料:
http://wiki.ros.org/octomap_server?distro=kinetic
http://wiki.ros.org/octomap

你可能感兴趣的:(ROS)