1,地图显示
基于octomap八叉树的显示比较好
打开奥比中光深度相机
roslaunch astra_launch astra.launch
打开octomap的启动配置文件
roslaunch ~/project/octomap/octomaptransform.launch
其中的内容如下
<launch>
<node pkg="octomap_server" type="octomap_server_node" name="octomap_server">
<!-- resolution in meters per pixel -->
<param name="resolution" value="0.05" />
<!-- name of the fixed frame, needs to be "/map" for SLAM -->
<param name="frame_id" type="string" value="/camera_depth_frame" />
<!-- max range / depth resolution of the kinect in meter -->
<param name="sensor_model/max_range" value="100.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="/camera/depth_registered/points" />
</node>
</launch>
注意修改"frame_id"这个是坐标系,建图的时候选择map
rviz中显示配置
rgbd_live.rviz
最后注意的是 octomap需要订阅/tf,要不然栅格会会乱,堆在一起。这个/tf可以由ORB_SLAM2实现。
2,使用ORB_SLAM2构建/tf
在前面的基础上,构建tf树
roslaunch orb_slam2_ros orb_slam2_r200_rgbd.launch
使用ORB_SLAM2的目的是用稀疏点云构建坐标关系,容易跟丢。