mirror of
https://github.com/introlab/rtabmap_ros.git
synced 2026-10-03 16:27:46 +08:00
Updated demo_turtlebot_mapping.launch (decreased LccIcp2/CorrespondenceRatio to 0.05, added localization mode)
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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,17 +33,18 @@
|
|||||||
<!-- 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="frame_id" type="string" value="base_footprint"/>
|
<param name="database_path" type="string" value="$(arg database_path)"/>
|
||||||
<param name="odom_frame_id" type="string" value="odom"/>
|
<param name="frame_id" type="string" value="base_footprint"/>
|
||||||
<param name="wait_for_transform" type="bool" value="true"/>
|
<param name="odom_frame_id" type="string" value="odom"/>
|
||||||
<param name="subscribe_depth" type="bool" value="true"/>
|
<param name="wait_for_transform" type="bool" value="true"/>
|
||||||
<param name="subscribe_laserScan" type="bool" value="true"/>
|
<param name="subscribe_depth" type="bool" value="true"/>
|
||||||
|
<param name="subscribe_laserScan" type="bool" value="true"/>
|
||||||
|
|
||||||
<!-- inputs -->
|
<!-- inputs -->
|
||||||
<remap from="scan" to="/scan"/>
|
<remap from="scan" to="/scan"/>
|
||||||
<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"/>
|
||||||
|
|
||||||
<!-- output -->
|
<!-- output -->
|
||||||
@@ -40,21 +53,28 @@
|
|||||||
|
|
||||||
<!-- RTAB-Map's parameters: do "rosrun rtabmap rtabmap (double-dash)params" to see the list of available parameters. -->
|
<!-- RTAB-Map's parameters: do "rosrun rtabmap rtabmap (double-dash)params" to see the list of available parameters. -->
|
||||||
<param name="RGBD/LocalLoopDetectionSpace" type="string" value="true"/> <!-- Local loop closure detection (using estimated position) with locations in WM -->
|
<param name="RGBD/LocalLoopDetectionSpace" type="string" value="true"/> <!-- Local loop closure detection (using estimated position) with locations in WM -->
|
||||||
<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="LccBow/MinInliers" type="string" value="5"/> <!-- 3D visual words minimum inliers to accept loop closure -->
|
<param name="LccIcp2/CorrespondenceRatio" type="string" value="0.05"/>
|
||||||
<param name="LccBow/InlierDistance" type="string" value="0.1"/> <!-- 3D visual words correspondence distance -->
|
<param name="LccBow/MinInliers" type="string" value="5"/> <!-- 3D visual words minimum inliers to accept loop closure -->
|
||||||
<param name="RGBD/AngularUpdate" type="string" value="0.1"/> <!-- Update map only if the robot is moving -->
|
<param name="LccBow/InlierDistance" type="string" value="0.1"/> <!-- 3D visual words correspondence distance -->
|
||||||
<param name="RGBD/LinearUpdate" 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="Rtabmap/TimeThr" type="string" value="700"/>
|
<param name="RGBD/LinearUpdate" type="string" value="0.1"/> <!-- Update map only if the robot is moving -->
|
||||||
<param name="Mem/RehearsalSimilarity" type="string" value="0.30"/>
|
<param name="Rtabmap/TimeThr" type="string" value="700"/>
|
||||||
|
<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
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user