< >
Home » ROS与VSLAM入门教程 » ROS与VSLAM入门教程-rtabmap_ros-深度相机手持建图

ROS与VSLAM入门教程-rtabmap_ros-深度相机手持建图

ROS与VSLAM入门教程-rtabmap_ros-深度相机手持建图

说明:

  • 介绍如何利用rtabmap_ros手持深度相机进行建图

启动深度相机:

  • Kinect for Xbox 360
$ roslaunch openni_launch openni.launch depth_registration:=true
  • 或新驱动
$ roslaunch freenect_launch freenect.launch depth_registration:=true

Mapping mode/建图模式:

  • 启动rtabmapviz:
$ roslaunch rtabmap_ros rtabmap.launch rtabmap_args:="--delete_db_on_start"
  • 启动rviz:
$ roslaunch rtabmap_ros rtabmap.launch rtabmap_args:="--delete_db_on_start" rviz:=true rtabmapviz:=false
  • 参数"--delete_db_on_start"用于启动前先清除旧数据库

  • 也可以进入界面后,选择"Edit->Delete memory"来清除旧数据库

  • 或者调用命令 $ rosservice call /rtabmap/reset

  • 效果图:

请输入图片描述

  • 启用外部的里程数据,增加参数
"visual_odometry:=false odom_topic:=/my_odometry".
  • 地图数据保存在 ~/.ros/rtabmap.db

  • 可利databaseViewer工具查看数据库

$ rtabmap-databaseViewer ~/.ros/rtabmap.db

Localization mode/定位模式

  • 在定位模式下,必须创建了足够大的地图(> 30个位置)
  • 在rtabmapviz(GUI)中,单击“Detection”菜单中的“Localization”。
  • 通过查看地图中的位置,RTAB-Map将通过查找闭环来定位。
  • 一旦找到闭环,就会纠正里程,并且当前的云将在地图中对齐。
  • 重定位方法:
$ rosservice call /rtabmap/reset_odom
  • 或者界面下 Detection->"Reset odometry"
  • 也可以通过启动luanch文件进入定位模式
<node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="">
   ...
   <param name="Mem/IncrementalMemory" type="string" value="false"/>
</node>
  • 主要设置"Mem/IncrementalMemory" to "false"来启用定位模式

  • 不能增加参数"--delete_db_on_start"

  • 新版本可以直接执行:

$ roslaunch rtabmap_ros rtabmap.launch localization:=true
  • 在GUI中,点击 Edit->"Download map" 从rtabmap节点下载地图。
  • 一开始,您应该看到当前显示的云不与地图对齐,这是正常的,因为每次启动时都会重新设置里程。
  • 通过查看地图中的位置,RTAB-Map将通过查找闭环来定位。
  • 一旦找到闭环,量程就会被校正,并且当前的云将在地图中对齐。

参考:

  • http://wiki.ros.org/rtabmap_ros/Tutorials/HandHeldMapping

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros与vslam入门教程