ROS 实时构建八叉树模型
ROS
毕业设计的主要内容是室内环境的建模,并转换成八叉树模型,以供后续使用之需。这里介绍离线八叉树模型建立和实时的八叉树环境模型构建。
1. 环境搭建
平台:
ubuntu
下ROS
,用过hydro
和indigo
,其他版本有待确认(ros
的安装请参考ros wiki
); 开源室内建模项目,
ROS
下了解的RGBD
开源项目有RGBD_SLAM
和rtabmap
,这里使用的是rtabmap
,rtabmap
的安装请参考ros rtabmap
。 ros
下的octomap
包,安装$ sudo apt-get install ros-indigo-octomap-ros
。
2.步骤:
- 离线模型构建
依次调用命令:
$ roscore
$ rosrun rtabmap_ros rtabmap _Mem/IncrementalMemory:=false _database_path:=**.db
$ rosrun rtabmap_ros map_assembler _cloud_voxel_size:=0.05
$ rosrun octomap_server octomap_server_node cloud_in:=assembled_clouds
$ rosrun rviz rviz /rtabmap/get_map:=/get_map
接下来设置rviz
设置fixed frame
为/map
;
添加对pointcloud2
的显示,订阅节点为/assembled_clouds
;
添加对八叉树的显示,如果没安装octomap_rviz_plugins
,通过$ sudo apt-get install ros-hydro-ocotmap-rviz-pulgins
安装,订阅节点/octomap_full
。
调用$ rosservice call /publish_map 1 1 0
开始转换。
- 在线模型转换
$ roscore
$ rosrun rtabmap_ros rtabmap
$ rosrun rtabmap_ros map_assembler _cloud_voxel_size:=0.05
$ rosrun octomap_server octomap_server_node cloud_in:=assembled_clouds
$ rosrun rviz rviz /rtabmap/get_map:=/get_map
名字空间的解析请确认正确(根据自己的情况设置,具体参考每个节点的输入输出)
和上面一样设置rviz
。
调用$ rosservice call /data_player/pause
和$ rosservice call /data_player/resume
暂停和继续。