Updated demo_turtlebot_mapping.launch (decreased LccIcp2/CorrespondenceRatio to 0.05, added localization mode)

This commit is contained in:
Mathieu Labbe
2015-05-25 10:46:52 -04:00
parent a7be53e2fd
commit 4cf39cb8e0
3 changed files with 54 additions and 33 deletions
+10 -10
View File
@@ -49,7 +49,7 @@ Visualization Manager:
Z: 0 Z: 0
Plane: XY Plane: XY
Plane Cell Count: 10 Plane Cell Count: 10
Reference Frame: <Fixed Frame> Reference Frame: map
Value: true Value: true
- Alpha: 1 - Alpha: 1
Class: rviz/RobotModel Class: rviz/RobotModel
@@ -366,7 +366,7 @@ Visualization Manager:
Class: rtabmap_ros/MapCloud Class: rtabmap_ros/MapCloud
Cloud decimation: 4 Cloud decimation: 4
Cloud max depth (m): 4 Cloud max depth (m): 4
Cloud voxel size (m): 0.01 Cloud voxel size (m): 0.05
Color: 255; 255; 255 Color: 255; 255; 255
Color Transformer: RGB8 Color Transformer: RGB8
Download graph: false Download graph: false
@@ -379,8 +379,8 @@ Visualization Manager:
Min Color: 0; 0; 0 Min Color: 0; 0; 0
Min Intensity: 0 Min Intensity: 0
Name: Rtabmap cloud Name: Rtabmap cloud
Node filtering angle (degrees): 30 Node filtering angle (degrees): 0
Node filtering radius (m): 0.2 Node filtering radius (m): 0
Position Transformer: XYZ Position Transformer: XYZ
Size (Pixels): 3 Size (Pixels): 3
Size (m): 0.01 Size (m): 0.01
@@ -409,7 +409,7 @@ Visualization Manager:
Views: Views:
Current: Current:
Class: rviz/Orbit Class: rviz/Orbit
Distance: 7.70311 Distance: 5.31174
Enable Stereo Rendering: Enable Stereo Rendering:
Stereo Eye Separation: 0.06 Stereo Eye Separation: 0.06
Stereo Focal Distance: 1 Stereo Focal Distance: 1
@@ -418,13 +418,13 @@ Visualization Manager:
Focal Point: Focal Point:
X: 0.00901246 X: 0.00901246
Y: -0.126793 Y: -0.126793
Z: 0.0121136 Z: 0.0223136
Name: Current View Name: Current View
Near Clip Distance: 0.01 Near Clip Distance: 0.01
Pitch: 1.5348 Pitch: 1.3598
Target Frame: base_link Target Frame: base_footprint
Value: Orbit (rviz) Value: Orbit (rviz)
Yaw: 3.12411 Yaw: 3.12914
Saved: ~ Saved: ~
Window Geometry: Window Geometry:
Displays: Displays:
@@ -442,5 +442,5 @@ Window Geometry:
Views: Views:
collapsed: false collapsed: false
Width: 1503 Width: 1503
X: 106 X: 85
Y: 188 Y: 188
+24 -4
View File
@@ -1,18 +1,30 @@
<launch> <launch>
<!-- <!--
Usage: Bringup Turtlebot:
$ roslaunch turtlebot_bringup minimal.launch $ roslaunch turtlebot_bringup minimal.launch
Mapping:
$ roslaunch rtabmap_ros demo_turtlebot_mapping.launch $ roslaunch rtabmap_ros demo_turtlebot_mapping.launch
Visualization: Visualization:
$ roslaunch rtabmap_ros demo_turtlebot_rviz.launch $ roslaunch rtabmap_ros demo_turtlebot_rviz.launch
This launch file is a one to one replacement of the gmapping_demo.launch in this tutorial: This launch file is a one to one replacement of the gmapping_demo.launch in the
"SLAM Map Building with TurtleBot" tutorial:
http://wiki.ros.org/turtlebot_navigation/Tutorials/indigo/Build%20a%20map%20with%20SLAM http://wiki.ros.org/turtlebot_navigation/Tutorials/indigo/Build%20a%20map%20with%20SLAM
For localization-only after a mapping session, add argument "localization:=true" to
demo_turtlebot_mapping.launch line above. Move the robot around until it can relocalize in
the previous map, then the 2D map should re-appear again. You can then follow the same steps
from 3.3.2 of the "Autonomous Navigation of a Known Map with TurtleBot" tutorial:
http://wiki.ros.org/turtlebot_navigation/Tutorials/Autonomously%20navigate%20in%20a%20known%20map
--> -->
<arg name="rgbd_odometry" default="false" /> <arg name="database_path" default="~/.ros/rtabmap.db"/>
<arg name="localization" default="false"/>
<arg name="rgbd_odometry" default="false"/>
<arg name="args" default=""/>
<!-- Navigation stuff (move_base) --> <!-- Navigation stuff (move_base) -->
<include file="$(find turtlebot_bringup)/launch/3dsensor.launch"/> <include file="$(find turtlebot_bringup)/launch/3dsensor.launch"/>
@@ -21,7 +33,8 @@
<!-- Mapping --> <!-- Mapping -->
<group ns="rtabmap"> <group ns="rtabmap">
<node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="--delete_db_on_start"> <node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="$(arg args)">
<param name="database_path" type="string" value="$(arg database_path)"/>
<param name="frame_id" type="string" value="base_footprint"/> <param name="frame_id" type="string" value="base_footprint"/>
<param name="odom_frame_id" type="string" value="odom"/> <param name="odom_frame_id" type="string" value="odom"/>
<param name="wait_for_transform" type="bool" value="true"/> <param name="wait_for_transform" type="bool" value="true"/>
@@ -43,18 +56,25 @@
<param name="RGBD/OptimizeFromGraphEnd" type="string" value="false"/> <!-- Set to false to generate map correction between /map and /odom --> <param name="RGBD/OptimizeFromGraphEnd" type="string" value="false"/> <!-- Set to false to generate map correction between /map and /odom -->
<param name="Kp/MaxDepth" type="string" value="4.0"/> <param name="Kp/MaxDepth" type="string" value="4.0"/>
<param name="LccIcp/Type" type="string" value="2"/> <!-- Loop closure transformation refining with ICP: 0=No ICP, 1=ICP 3D, 2=ICP 2D --> <param name="LccIcp/Type" type="string" value="2"/> <!-- Loop closure transformation refining with ICP: 0=No ICP, 1=ICP 3D, 2=ICP 2D -->
<param name="LccIcp2/CorrespondenceRatio" type="string" value="0.05"/>
<param name="LccBow/MinInliers" type="string" value="5"/> <!-- 3D visual words minimum inliers to accept loop closure --> <param name="LccBow/MinInliers" type="string" value="5"/> <!-- 3D visual words minimum inliers to accept loop closure -->
<param name="LccBow/InlierDistance" type="string" value="0.1"/> <!-- 3D visual words correspondence distance --> <param name="LccBow/InlierDistance" type="string" value="0.1"/> <!-- 3D visual words correspondence distance -->
<param name="RGBD/AngularUpdate" type="string" value="0.1"/> <!-- Update map only if the robot is moving --> <param name="RGBD/AngularUpdate" type="string" value="0.1"/> <!-- Update map only if the robot is moving -->
<param name="RGBD/LinearUpdate" type="string" value="0.1"/> <!-- Update map only if the robot is moving --> <param name="RGBD/LinearUpdate" type="string" value="0.1"/> <!-- Update map only if the robot is moving -->
<param name="Rtabmap/TimeThr" type="string" value="700"/> <param name="Rtabmap/TimeThr" type="string" value="700"/>
<param name="Mem/RehearsalSimilarity" type="string" value="0.30"/> <param name="Mem/RehearsalSimilarity" type="string" value="0.30"/>
<!-- localization mode -->
<param if="$(arg localization)" name="Mem/IncrementalMemory" type="string" value="false"/>
<param unless="$(arg localization)" name="Mem/IncrementalMemory" type="string" value="true"/>
<param name="Mem/InitWMWithAllNodes" type="string" value="$(arg localization)"/>
</node> </node>
<!-- Odometry : ONLY for testing without the actual robot! /odom TF should not be already published. --> <!-- Odometry : ONLY for testing without the actual robot! /odom TF should not be already published. -->
<node if="$(arg rgbd_odometry)" pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry" output="screen"> <node if="$(arg rgbd_odometry)" pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry" output="screen">
<param name="frame_id" type="string" value="base_footprint"/> <param name="frame_id" type="string" value="base_footprint"/>
<param name="wait_for_transform" type="bool" value="true"/> <param name="wait_for_transform" type="bool" value="true"/>
<param name="Odom/Force2D" type="string" value="true"/>
<remap from="rgb/image" to="/camera/rgb/image_rect_color"/> <remap from="rgb/image" to="/camera/rgb/image_rect_color"/>
<remap from="depth/image" to="/camera/depth_registered/image_raw"/> <remap from="depth/image" to="/camera/depth_registered/image_raw"/>
<remap from="rgb/camera_info" to="/camera/rgb/camera_info"/> <remap from="rgb/camera_info" to="/camera/rgb/camera_info"/>
+2 -1
View File
@@ -30,6 +30,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <rtabmap/utilite/UDirectory.h> #include <rtabmap/utilite/UDirectory.h>
#include <rtabmap/utilite/UStl.h> #include <rtabmap/utilite/UStl.h>
#include <rtabmap/utilite/UFile.h> #include <rtabmap/utilite/UFile.h>
#include <rtabmap/core/Version.h>
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
@@ -102,7 +103,7 @@ int main(int argc, char** argv)
CoreWrapper * rtabmap = new CoreWrapper(deleteDbOnStart); CoreWrapper * rtabmap = new CoreWrapper(deleteDbOnStart);
ROS_INFO("rtabmap started..."); ROS_INFO("rtabmap %s started...", RTABMAP_VERSION);
ros::spin(); ros::spin();
delete rtabmap; delete rtabmap;