Advertisement
Guest User

RTAB Velo+RS455

a guest
Jun 3rd, 2021
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 34.22 KB | None | 0 0
  1. <!-- -->
  2. <launch>
  3.   <!-- Convenience launch file to launch odometry, rtabmap and rtabmapviz nodes at once -->
  4.  
  5.   <!-- For stereo:=false
  6.        Your RGB-D sensor should be already started with "depth_registration:=true".
  7.        Examples:
  8.           $ roslaunch freenect_launch freenect.launch depth_registration:=true
  9.           $ roslaunch openni2_launch openni2.launch depth_registration:=true -->
  10.            
  11.   <!-- For stereo:=true
  12.        Your camera should be calibrated and publishing rectified left and right
  13.        images + corresponding camera_info msgs. You can use stereo_image_proc for image rectification.
  14.        Example:
  15.           $ roslaunch rtabmap_ros bumblebee.launch -->
  16.    
  17.     <arg name="scan_20_hz"    default="false"/>
  18.     <!-- <include file="$(find velodyne_pointcloud)/launch/VLP16_points.launch">
  19.       <arg     if="$(arg scan_20_hz)" name="rpm" value="1200"/>
  20.       <arg unless="$(arg scan_20_hz)" name="rpm" value="600"/>
  21.       <arg name="organize_cloud" value="$(arg organize_cloud)"/>
  22.    </include> -->
  23.      
  24.   <!-- Choose between depth and stereo, set both to false to do only scan -->      
  25.   <arg name="stereo"                    default="false"/>
  26.   <arg     if="$(arg stereo)" name="depth"  default="false"/>
  27.   <arg unless="$(arg stereo)" name="depth"  default="true"/>
  28.  
  29.   <!-- Choose visualization -->
  30.   <arg name="rtabmapviz"              default="false" />
  31.   <arg name="rviz"                    default="true" />
  32.  
  33.   <!-- Localization-only mode -->
  34.   <arg name="localization"            default="false"/>
  35.  
  36.   <!-- sim time for convenience, if playing a rosbag -->
  37.   <arg name="use_sim_time"            default="false"/>
  38.   <param if="$(arg use_sim_time)" name="use_sim_time" value="true"/>
  39.  
  40.   <!-- Corresponding config files -->
  41.   <arg name="cfg"                     default="" /> <!-- To change RTAB-Map's parameters, set the path of config file (*.ini) generated by the standalone app -->
  42.   <arg name="gui_cfg"                 default="~/.ros/rtabmap_gui.ini" />
  43.   <arg name="rviz_cfg"                default="$(find rtabmap_ros)/launch/config/rgbd.rviz" />
  44.  
  45.   <arg name="frame_id"                default="velodyne"/>     <!-- Fixed frame id, you may set "base_link" or "base_footprint" if they are published -->
  46.   <arg name="odom_frame_id"           default=""/>                <!-- If set, TF is used to get odometry instead of the topic -->
  47.   <arg name="odom_frame_id_init"      default=""/>                <!-- If set, TF map->odom is published even if no odometry topic has been received yet. The frame id should match the one in the topic. -->
  48.   <arg name="map_frame_id"            default="map"/>
  49.   <arg name="ground_truth_frame_id"   default=""/>     <!-- e.g., "world" -->
  50.   <arg name="ground_truth_base_frame_id" default=""/>  <!-- e.g., "tracker", a fake frame matching the frame "frame_id" (but on different TF tree) -->
  51.   <arg name="namespace"               default="rtabmap"/>
  52.   <arg name="database_path"           default="~/.ros/rtabmap.db"/>
  53.   <arg name="queue_size"              default="10"/>
  54.   <arg name="wait_for_transform"      default="0.2"/>
  55.   <arg name="args"                    default="--delete_db_on_start --Optimizer/GravitySigma 0.3"/>              <!-- delete_db_on_start, udebug -->
  56.   <arg name="rtabmap_args"            default="$(arg args)"/>   <!-- deprecated, use "args" argument -->
  57.   <arg name="gdb"                     default="false"/>         <!-- Launch nodes in gdb for debugging (apt install xterm gdb) -->
  58.   <arg     if="$(arg gdb)" name="launch_prefix" default="xterm -e gdb -q -ex run --args"/>
  59.   <arg unless="$(arg gdb)" name="launch_prefix" default=""/>
  60.   <arg name="output"                  default="screen"/>        <!-- Control node output (screen or log) -->
  61.   <arg name="publish_tf_map"          default="true"/>
  62.  
  63.   <!-- if timestamps of the input topics are synchronized using approximate or exact time policy-->
  64.   <arg     if="$(arg stereo)" name="approx_sync"  default="false"/>
  65.   <arg unless="$(arg stereo)" name="approx_sync"  default="$(arg depth)"/>        
  66.    
  67.   <!-- RGB-D related topics -->
  68.   <arg name="rgb_topic"               default="/camera/color/image_raw" />
  69.   <arg name="depth_topic"             default="/camera/aligned_depth_to_color/image_raw" />
  70.   <arg name="camera_info_topic"       default="/camera/color/camera_info" />
  71.   <arg name="depth_camera_info_topic" default="$(arg camera_info_topic)" />
  72.  
  73.   <!-- stereo related topics -->
  74.   <arg name="stereo_namespace"        default="/stereo_camera"/>
  75.   <arg name="left_image_topic"        default="$(arg stereo_namespace)/left/image_rect_color" />
  76.   <arg name="right_image_topic"       default="$(arg stereo_namespace)/right/image_rect" />      <!-- using grayscale image for efficiency -->
  77.   <arg name="left_camera_info_topic"  default="$(arg stereo_namespace)/left/camera_info" />
  78.   <arg name="right_camera_info_topic" default="$(arg stereo_namespace)/right/camera_info" />
  79.  
  80.   <!-- Already synchronized RGB-D related topic, with rtabmap_ros/rgbd_sync nodelet -->
  81.   <arg name="rgbd_sync"               default="true"/>         <!-- pre-sync rgb_topic, depth_topic, camera_info_topic -->
  82.   <arg name="approx_rgbd_sync"        default="false"/>          <!-- false=exact synchronization -->
  83.   <arg name="subscribe_rgbd"          default="$(arg rgbd_sync)"/>
  84.   <arg name="rgbd_topic"              default="rgbd_image" />
  85.   <arg name="depth_scale"             default="1.0" />         <!-- Deprecated, use rgbd_depth_scale instead -->
  86.   <arg name="rgbd_depth_scale"        default="$(arg depth_scale)" />
  87.   <arg name="rgbd_decimation"         default="1" />
  88.  
  89.   <arg name="compressed"              default="false"/>         <!-- If you want to subscribe to compressed image topics -->
  90.   <arg name="rgb_image_transport"     default="compressed"/>    <!-- Common types: compressed, theora (see "rosrun image_transport list_transports") -->
  91.   <arg name="depth_image_transport"   default="compressedDepth"/>  <!-- Depth compatible types: compressedDepth (see "rosrun image_transport list_transports") -->
  92.    
  93.   <arg name="subscribe_scan"          default="false"/>
  94.   <arg name="scan_topic"              default="/scan"/>
  95.   <arg name="subscribe_scan_cloud"    default="true"/>
  96.   <arg name="scan_cloud_topic"        default="/velodyne_points"/>
  97.   <arg name="subscribe_scan_descriptor" default="false"/>
  98.   <arg name="scan_descriptor_topic"   default="/scan_descriptor"/>
  99.   <arg name="scan_cloud_max_points"   default="0"/>
  100.   <arg name="scan_cloud_filtered"     default="false"/> <!-- use filtered cloud from icp_odometry for mapping -->
  101.   <arg name="gen_scan"                default="false"/> <!-- only works with depth image and if not subscribing to scan topic-->
  102.    
  103.   <arg name="visual_odometry"          default="true"/>          <!-- Launch rtabmap visual odometry node -->
  104.   <arg name="icp_odometry"             default="false"/>         <!-- Launch rtabmap icp odometry node -->
  105.   <arg name="odom_topic"               default="odom"/>          <!-- Odometry topic name -->
  106.   <arg name="vo_frame_id"              default="$(arg odom_topic)"/> <!-- Visual/Icp odometry frame ID for TF -->
  107.   <arg name="publish_tf_odom"          default="true"/>
  108.   <arg name="odom_tf_angular_variance" default="1"/>             <!-- If TF is used to get odometry, this is the default angular variance -->
  109.   <arg name="odom_tf_linear_variance"  default="1"/>             <!-- If TF is used to get odometry, this is the default linear variance -->
  110.   <arg name="odom_args"                default=""/>              <!-- More arguments for odometry (overwrite same parameters in rtabmap_args) -->
  111.   <arg name="odom_sensor_sync"         default="false"/>
  112.   <arg name="odom_guess_frame_id"        default=""/>
  113.   <arg name="odom_guess_min_translation" default="0"/>
  114.   <arg name="odom_guess_min_rotation"    default="0"/>
  115.   <arg name="odom_max_rate"            default="0"/>
  116.   <arg name="odom_expected_rate"       default="0"/>
  117.   <arg name="imu_topic"                default="/rtabmap/imu"/>          <!-- only used with VIO approaches -->
  118.   <arg name="wait_imu_to_init"         default="true"/>
  119.   <arg name="use_odom_features"        default="false"/>
  120.  
  121.   <arg name="scan_cloud_assembling"              default="true"/>
  122.   <arg name="scan_cloud_assembling_time"         default="1"/>
  123.   <arg name="scan_cloud_assembling_fixed_frame"  default="velodyne"/>
  124.   <arg name="scan_cloud_assembling_voxel_size"   default="0.05"/>
  125.   <arg name="scan_cloud_assembling_noise_radius"   default="0.0"/>    <!-- 0=disabled -->
  126.   <arg name="scan_cloud_assembling_noise_min_neighbors"   default="5"/>
  127.  
  128.   <arg name="subscribe_user_data"      default="false"/>             <!-- user data synchronized subscription -->
  129.   <arg name="user_data_topic"          default="/user_data"/>
  130.   <arg name="user_data_async_topic"    default="/user_data_async" /> <!-- user data async subscription (rate should be lower than map update rate) -->
  131.  
  132.   <arg name="gps_topic"                default="/gps/fix" />         <!-- gps async subscription -->
  133.  
  134.   <arg name="tag_topic"                default="/tag_detections" />  <!-- apriltags async subscription -->
  135.   <arg name="tag_linear_variance"      default="0.0001" />
  136.   <arg name="tag_angular_variance"     default="9999" />             <!-- >=9999 means ignore rotation in optimization, when rotation estimation of the tag is not reliable -->
  137.  
  138.   <!-- These arguments should not be modified directly, see referred topics without "_relay" suffix above -->
  139.   <arg if="$(arg compressed)"     name="rgb_topic_relay"           default="$(arg rgb_topic)_relay"/>
  140.   <arg unless="$(arg compressed)" name="rgb_topic_relay"           default="$(arg rgb_topic)"/>
  141.   <arg if="$(arg compressed)"     name="depth_topic_relay"         default="$(arg depth_topic)_relay"/>
  142.   <arg unless="$(arg compressed)" name="depth_topic_relay"         default="$(arg depth_topic)"/>
  143.   <arg if="$(arg compressed)"     name="left_image_topic_relay"    default="$(arg left_image_topic)_relay"/>
  144.   <arg unless="$(arg compressed)" name="left_image_topic_relay"    default="$(arg left_image_topic)"/>
  145.   <arg if="$(arg compressed)"     name="right_image_topic_relay"   default="$(arg right_image_topic)_relay"/>
  146.   <arg unless="$(arg compressed)" name="right_image_topic_relay"   default="$(arg right_image_topic)"/>
  147.   <arg if="$(arg rgbd_sync)"      name="rgbd_topic_relay"          default="$(arg rgbd_topic)"/>
  148.   <arg unless="$(arg rgbd_sync)"  name="rgbd_topic_relay"          default="$(arg rgbd_topic)_relay"/>
  149.  
  150.   <!-- Nodes -->
  151.   <group ns="$(arg namespace)">
  152.      
  153.     <!-- relays -->
  154.     <group if="$(arg depth)">
  155.       <group unless="$(arg subscribe_rgbd)">
  156.         <node if="$(arg compressed)" name="republish_rgb" type="republish" pkg="image_transport" args="$(arg rgb_image_transport) in:=$(arg rgb_topic) raw out:=$(arg rgb_topic_relay)" />
  157.         <node if="$(arg compressed)" name="republish_depth" type="republish" pkg="image_transport" args="$(arg depth_image_transport) in:=$(arg depth_topic) raw out:=$(arg depth_topic_relay)" />
  158.       </group>
  159.       <group if="$(arg rgbd_sync)">
  160.         <node if="$(arg compressed)" name="republish_rgb" type="republish" pkg="image_transport" args="$(arg rgb_image_transport) in:=$(arg rgb_topic) raw out:=$(arg rgb_topic_relay)" />
  161.         <node if="$(arg compressed)" name="republish_depth" type="republish" pkg="image_transport" args="$(arg depth_image_transport) in:=$(arg depth_topic) raw out:=$(arg depth_topic_relay)" />
  162.         <node pkg="nodelet" type="nodelet" name="rgbd_sync" args="standalone rtabmap_ros/rgbd_sync" output="$(arg output)">
  163.           <remap from="rgb/image"       to="$(arg rgb_topic_relay)"/>
  164.           <remap from="depth/image"     to="$(arg depth_topic_relay)"/>
  165.           <remap from="rgb/camera_info" to="$(arg camera_info_topic)"/>
  166.           <remap from="rgbd_image"      to="$(arg rgbd_topic_relay)"/>
  167.           <param name="approx_sync"     type="bool"   value="$(arg approx_rgbd_sync)"/>
  168.           <param name="queue_size"      type="int"    value="$(arg queue_size)"/>
  169.           <param name="depth_scale"     type="double" value="$(arg rgbd_depth_scale)"/>
  170.           <param name="decimation"     type="double" value="$(arg rgbd_decimation)"/>
  171.         </node>
  172.       </group>
  173.     </group>
  174.     <group if="$(arg stereo)">
  175.       <group unless="$(arg subscribe_rgbd)">
  176.         <node if="$(arg compressed)" name="republish_left"  type="republish" pkg="image_transport" args="$(arg rgb_image_transport) in:=$(arg left_image_topic) raw out:=$(arg left_image_topic_relay)" />
  177.         <node if="$(arg compressed)" name="republish_right" type="republish" pkg="image_transport" args="$(arg rgb_image_transport) in:=$(arg right_image_topic) raw out:=$(arg right_image_topic_relay)" />
  178.       </group>
  179.       <group if="$(arg rgbd_sync)">
  180.         <node if="$(arg compressed)" name="republish_left"  type="republish" pkg="image_transport" args="$(arg rgb_image_transport) in:=$(arg left_image_topic) raw out:=$(arg left_image_topic_relay)" />
  181.         <node if="$(arg compressed)" name="republish_right" type="republish" pkg="image_transport" args="$(arg rgb_image_transport) in:=$(arg right_image_topic) raw out:=$(arg right_image_topic_relay)" />
  182.         <node pkg="nodelet" type="nodelet" name="stereo_sync" args="standalone rtabmap_ros/stereo_sync" output="$(arg output)">
  183.           <remap from="left/image_rect"   to="$(arg left_image_topic_relay)"/>
  184.           <remap from="right/image_rect"  to="$(arg right_image_topic_relay)"/>
  185.           <remap from="left/camera_info"  to="$(arg left_camera_info_topic)"/>
  186.           <remap from="right/camera_info" to="$(arg right_camera_info_topic)"/>
  187.           <remap from="rgbd_image"      to="$(arg rgbd_topic_relay)"/>
  188.           <param name="approx_sync"     type="bool"   value="$(arg approx_rgbd_sync)"/>
  189.           <param name="queue_size"      type="int"    value="$(arg queue_size)"/>
  190.         </node>
  191.       </group>
  192.     </group>
  193.    
  194.     <group unless="$(arg rgbd_sync)">
  195.        <group if="$(arg subscribe_rgbd)">
  196.          <node name="republish_rgbd_image"  type="rgbd_relay" pkg="rtabmap_ros">
  197.            <remap     if="$(arg compressed)" from="rgbd_image" to="$(arg rgbd_topic)/compressed"/>
  198.            <remap     if="$(arg compressed)" from="$(arg rgbd_topic)/compressed_relay" to="$(arg rgbd_topic_relay)"/>
  199.            <remap unless="$(arg compressed)" from="rgbd_image" to="$(arg rgbd_topic)"/>
  200.            <param if="$(arg compressed)" name="uncompress" value="true"/>
  201.          </node>
  202.       </group>
  203.     </group>
  204.  
  205.     <!-- Visual odometry -->
  206.     <group unless="$(arg icp_odometry)">
  207.       <group if="$(arg visual_odometry)">
  208.      
  209.         <!-- RGB-D Odometry -->
  210.         <node unless="$(arg stereo)" pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry" output="$(arg output)" args="$(arg rtabmap_args) $(arg odom_args)" launch-prefix="$(arg launch_prefix)">
  211.           <remap from="rgb/image"       to="$(arg rgb_topic_relay)"/>
  212.           <remap from="depth/image"     to="$(arg depth_topic_relay)"/>
  213.           <remap from="rgb/camera_info" to="$(arg camera_info_topic)"/>
  214.           <remap from="rgbd_image"      to="$(arg rgbd_topic_relay)"/>
  215.           <remap from="odom"            to="$(arg odom_topic)"/>
  216.           <remap from="imu"             to="$(arg imu_topic)"/>
  217.      
  218.           <param name="frame_id"                    type="string" value="$(arg frame_id)"/>
  219.           <param name="odom_frame_id"               type="string" value="$(arg vo_frame_id)"/>
  220.           <param name="publish_tf"                  type="bool"   value="$(arg publish_tf_odom)"/>
  221.           <param name="ground_truth_frame_id"       type="string" value="$(arg ground_truth_frame_id)"/>
  222.           <param name="ground_truth_base_frame_id"  type="string" value="$(arg ground_truth_base_frame_id)"/>
  223.           <param name="wait_for_transform_duration" type="double" value="$(arg wait_for_transform)"/>
  224.           <param name="wait_imu_to_init"            type="bool"   value="$(arg wait_imu_to_init)"/>
  225.           <param name="approx_sync"                 type="bool"   value="$(arg approx_sync)"/>
  226.           <param name="config_path"                 type="string" value="$(arg cfg)"/>
  227.           <param name="queue_size"                  type="int"    value="$(arg queue_size)"/>
  228.           <param name="subscribe_rgbd"              type="bool"   value="$(arg subscribe_rgbd)"/>
  229.           <param name="guess_frame_id"              type="string" value="$(arg odom_guess_frame_id)"/>
  230.           <param name="guess_min_translation"       type="double" value="$(arg odom_guess_min_translation)"/>
  231.           <param name="guess_min_rotation"          type="double" value="$(arg odom_guess_min_rotation)"/>
  232.           <param name="expected_update_rate"        type="double" value="$(arg odom_expected_rate)"/>
  233.           <param name="max_update_rate"             type="double" value="$(arg odom_max_rate)"/>
  234.           <param name="keep_color"                  type="bool"   value="$(arg use_odom_features)"/>
  235.         </node>
  236.  
  237.         <!-- Stereo Odometry -->
  238.         <node if="$(arg stereo)" pkg="rtabmap_ros" type="stereo_odometry" name="stereo_odometry" output="$(arg output)" args="$(arg rtabmap_args) $(arg odom_args)" launch-prefix="$(arg launch_prefix)">
  239.           <remap from="left/image_rect"        to="$(arg left_image_topic_relay)"/>
  240.           <remap from="right/image_rect"       to="$(arg right_image_topic_relay)"/>
  241.           <remap from="left/camera_info"       to="$(arg left_camera_info_topic)"/>
  242.           <remap from="right/camera_info"      to="$(arg right_camera_info_topic)"/>
  243.           <remap from="rgbd_image"             to="$(arg rgbd_topic_relay)"/>
  244.           <remap from="odom"                   to="$(arg odom_topic)"/>
  245.           <remap from="imu"                    to="$(arg imu_topic)"/>
  246.      
  247.           <param name="frame_id"                    type="string" value="$(arg frame_id)"/>
  248.           <param name="odom_frame_id"               type="string" value="$(arg vo_frame_id)"/>
  249.           <param name="publish_tf"                  type="bool"   value="$(arg publish_tf_odom)"/>
  250.           <param name="ground_truth_frame_id"       type="string" value="$(arg ground_truth_frame_id)"/>
  251.           <param name="ground_truth_base_frame_id"  type="string" value="$(arg ground_truth_base_frame_id)"/>
  252.           <param name="wait_for_transform_duration" type="double" value="$(arg wait_for_transform)"/>
  253.           <param name="wait_imu_to_init"            type="bool"   value="$(arg wait_imu_to_init)"/>
  254.           <param name="approx_sync"                 type="bool"   value="$(arg approx_sync)"/>
  255.           <param name="config_path"                 type="string" value="$(arg cfg)"/>
  256.           <param name="queue_size"                  type="int"    value="$(arg queue_size)"/>
  257.           <param name="subscribe_rgbd"              type="bool"   value="$(arg subscribe_rgbd)"/>
  258.           <param name="guess_frame_id"              type="string" value="$(arg odom_guess_frame_id)"/>
  259.           <param name="guess_min_translation"       type="double" value="$(arg odom_guess_min_translation)"/>
  260.           <param name="guess_min_rotation"          type="double" value="$(arg odom_guess_min_rotation)"/>
  261.           <param name="expected_update_rate"        type="double" value="$(arg odom_expected_rate)"/>
  262.           <param name="max_update_rate"             type="double" value="$(arg odom_max_rate)"/>
  263.           <param name="keep_color"                  type="bool"   value="$(arg use_odom_features)"/>
  264.         </node>
  265.       </group>
  266.     </group>
  267.    
  268.     <!-- ICP Odometry -->
  269.     <node if="$(arg icp_odometry)" pkg="rtabmap_ros" type="icp_odometry" name="icp_odometry" output="$(arg output)" args="$(arg rtabmap_args) $(arg odom_args)" launch-prefix="$(arg launch_prefix)">
  270.       <remap from="scan"                   to="$(arg scan_topic)"/>
  271.       <remap from="scan_cloud"             to="$(arg scan_cloud_topic)"/>
  272.       <remap from="odom"                   to="$(arg odom_topic)"/>
  273.       <remap from="imu"                    to="$(arg imu_topic)"/>
  274.      
  275.       <param name="frame_id"                    type="string" value="$(arg frame_id)"/>
  276.       <param name="odom_frame_id"               type="string" value="$(arg vo_frame_id)"/>
  277.       <param name="publish_tf"                  type="bool"   value="$(arg publish_tf_odom)"/>
  278.       <param name="ground_truth_frame_id"       type="string" value="$(arg ground_truth_frame_id)"/>
  279.       <param name="ground_truth_base_frame_id"  type="string" value="$(arg ground_truth_base_frame_id)"/>
  280.       <param name="wait_for_transform_duration" type="double" value="$(arg wait_for_transform)"/>
  281.       <param name="wait_imu_to_init"            type="bool"   value="$(arg wait_imu_to_init)"/>
  282.       <param name="config_path"                 type="string" value="$(arg cfg)"/>
  283.       <param name="queue_size"                  type="int"    value="$(arg queue_size)"/>
  284.       <param name="guess_frame_id"              type="string" value="$(arg odom_guess_frame_id)"/>
  285.       <param name="guess_min_translation"       type="double" value="$(arg odom_guess_min_translation)"/>
  286.       <param name="guess_min_rotation"          type="double" value="$(arg odom_guess_min_rotation)"/>
  287.       <param name="scan_cloud_max_points"       type="int"    value="$(arg scan_cloud_max_points)"/>
  288.       <param name="expected_update_rate"        type="double" value="$(arg odom_expected_rate)"/>
  289.       <param name="max_update_rate"             type="double" value="$(arg odom_max_rate)"/>
  290.     </node>
  291.    
  292.     <node if="$(arg scan_cloud_assembling)" pkg="rtabmap_ros" type="point_cloud_assembler" name="point_cloud_assembler" output="screen">
  293.       <remap     if="$(arg scan_cloud_filtered)" from="cloud" to="odom_filtered_input_scan"/>
  294.       <remap unless="$(arg scan_cloud_filtered)" from="cloud" to="$(arg scan_cloud_topic)"/>
  295.  
  296.       <remap from="odom"            to="$(arg odom_topic)"/>
  297.       <param name="assembling_time" type="double" value="$(arg scan_cloud_assembling_time)"/>
  298.       <param name="fixed_frame_id"  type="string" value="$(arg scan_cloud_assembling_fixed_frame)"/>
  299.       <param name="voxel_size"      type="double" value="$(arg scan_cloud_assembling_voxel_size)"/>
  300.       <param name="noise_radius"        type="double" value="$(arg scan_cloud_assembling_noise_radius)"/>
  301.       <param name="noise_min_neighbors" type="int"    value="$(arg scan_cloud_assembling_noise_min_neighbors)"/>
  302.     </node>
  303.  
  304.     <!-- Visual SLAM (robot side) -->
  305.     <!-- args: "delete_db_on_start" and "udebug" -->
  306.     <node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="$(arg output)" args="$(arg rtabmap_args)" launch-prefix="$(arg launch_prefix)">
  307.       <param     if="$(arg stereo)" name="subscribe_depth"  type="bool" value="false"/>
  308.       <param unless="$(arg stereo)" name="subscribe_depth"  type="bool" value="$(arg depth)"/>
  309.       <param name="subscribe_rgb"        type="bool"   value="$(arg depth)"/>
  310.       <param name="subscribe_rgbd"       type="bool"   value="$(eval subscribe_rgbd or use_odom_features)"/>
  311.       <param name="subscribe_stereo"     type="bool"   value="$(arg stereo)"/>
  312.       <param name="subscribe_scan"       type="bool"   value="$(arg subscribe_scan)"/>
  313.       <param name="subscribe_scan_cloud" type="bool"   value="$(arg subscribe_scan_cloud)"/>
  314.       <param name="subscribe_scan_descriptor" type="bool" value="$(arg subscribe_scan_descriptor)"/>
  315.       <param name="subscribe_user_data"  type="bool"   value="$(arg subscribe_user_data)"/>
  316.       <param if="$(arg visual_odometry)" name="subscribe_odom_info" type="bool" value="true"/>
  317.       <param if="$(arg icp_odometry)"    name="subscribe_odom_info" type="bool" value="true"/>
  318.       <param name="frame_id"             type="string" value="$(arg frame_id)"/>
  319.       <param name="map_frame_id"         type="string" value="$(arg map_frame_id)"/>
  320.       <param name="odom_frame_id"        type="string" value="$(arg odom_frame_id)"/>
  321.       <param name="odom_frame_id_init"   type="string" value="$(arg odom_frame_id_init)"/>
  322.       <param name="publish_tf"           type="bool"   value="$(arg publish_tf_map)"/>
  323.       <param name="gen_scan"             type="bool"   value="$(arg gen_scan)"/>
  324.       <param name="ground_truth_frame_id"       type="string" value="$(arg ground_truth_frame_id)"/>
  325.       <param name="ground_truth_base_frame_id"  type="string" value="$(arg ground_truth_base_frame_id)"/>
  326.       <param name="odom_tf_angular_variance" type="double" value="$(arg odom_tf_angular_variance)"/>
  327.       <param name="odom_tf_linear_variance"  type="double" value="$(arg odom_tf_linear_variance)"/>
  328.       <param name="odom_sensor_sync"         type="bool"   value="$(arg odom_sensor_sync)"/>
  329.       <param name="wait_for_transform_duration"  type="double"   value="$(arg wait_for_transform)"/>
  330.       <param name="database_path"        type="string" value="$(arg database_path)"/>
  331.       <param name="approx_sync"          type="bool"   value="$(eval approx_sync and not use_odom_features)"/>
  332.       <param name="config_path"          type="string" value="$(arg cfg)"/>
  333.       <param name="queue_size"           type="int" value="$(arg queue_size)"/>
  334.       <param name="scan_cloud_max_points"     type="int" value="$(arg scan_cloud_max_points)"/>
  335.       <param name="landmark_linear_variance"   type="double" value="$(arg tag_linear_variance)"/>
  336.       <param name="landmark_angular_variance"  type="double" value="$(arg tag_angular_variance)"/>      
  337.      
  338.       <remap from="rgb/image"       to="$(arg rgb_topic_relay)"/>
  339.       <remap from="depth/image"     to="$(arg depth_topic_relay)"/>
  340.       <remap from="rgb/camera_info" to="$(arg camera_info_topic)"/>
  341.      
  342.       <remap     if="$(arg use_odom_features)" from="rgbd_image" to="odom_rgbd_image"/>
  343.       <remap unless="$(arg use_odom_features)" from="rgbd_image" to="$(arg rgbd_topic_relay)"/>
  344.    
  345.       <remap from="left/image_rect"        to="$(arg left_image_topic_relay)"/>
  346.       <remap from="right/image_rect"       to="$(arg right_image_topic_relay)"/>
  347.       <remap from="left/camera_info"       to="$(arg left_camera_info_topic)"/>
  348.       <remap from="right/camera_info"      to="$(arg right_camera_info_topic)"/>
  349.      
  350.       <remap from="scan"                   to="$(arg scan_topic)"/>
  351.       <remap if="$(eval scan_cloud_assembling)" from="scan_cloud" to="assembled_cloud"/>
  352.       <remap if="$(eval scan_cloud_filtered and not scan_cloud_assembling)" from="scan_cloud" to="odom_filtered_input_scan"/>
  353.       <remap if="$(eval not scan_cloud_filtered and not scan_cloud_assembling)" from="scan_cloud" to="$(arg scan_cloud_topic)"/>
  354.       <remap from="scan_descriptor"        to="$(arg scan_descriptor_topic)"/>
  355.       <remap from="user_data"              to="$(arg user_data_topic)"/>
  356.       <remap from="user_data_async"        to="$(arg user_data_async_topic)"/>
  357.       <remap from="gps/fix"                to="$(arg gps_topic)"/>
  358.       <remap from="tag_detections"         to="$(arg tag_topic)"/>
  359.       <remap from="odom"                   to="$(arg odom_topic)"/>
  360.       <remap from="imu"                    to="$(arg imu_topic)"/>
  361.       <param name="Grid/FromDepth"      type="string" value="false"/>
  362.       <!-- RTAB-Map's parameters -->
  363.       <param name="Rtabmap/DetectionRate"          type="string" value="1"/>  
  364.       <param name="RGBD/NeighborLinkRefining"      type="string" value="false"/>
  365.       <param name="RGBD/ProximityBySpace"          type="string" value="true"/>
  366.       <param name="RGBD/ProximityMaxGraphDepth"    type="string" value="0"/>
  367.       <param name="RGBD/ProximityPathMaxNeighbors" type="string" value="1"/>
  368.       <param name="RGBD/AngularUpdate"             type="string" value="0.05"/>
  369.       <param name="RGBD/LinearUpdate"              type="string" value="0.05"/>
  370.       <param name="Mem/NotLinkedNodesKept"         type="string" value="false"/>
  371.       <param name="Mem/STMSize"                    type="string" value="30"/>
  372.       <!-- param name="Mem/LaserScanVoxelSize"     type="string" value="0.1"/ -->
  373.       <!-- param name="Mem/LaserScanNormalK"       type="string" value="10"/ -->
  374.       <!-- param name="Mem/LaserScanRadius"        type="string" value="0"/ -->
  375.  
  376.       <param name="Reg/Strategy"                   type="string" value="0"/>
  377.       <param name="Grid/CellSize"                  type="string" value="0.1"/>
  378.       <param name="Grid/RangeMax"                  type="string" value="20"/>
  379.       <param name="Grid/ClusterRadius"             type="string" value="1"/>
  380.       <param name="Grid/GroundIsObstacle"          type="string" value="true"/>
  381.       <param name="Optimizer/GravitySigma"         type="string" value="0.3"/>
  382.  
  383.       <!-- ICP parameters -->
  384.       <!-- <param name="Icp/VoxelSize"                  type="string" value="0.2"/>
  385.      <param name="Icp/PointToPlaneK"              type="string" value="20"/>
  386.      <param name="Icp/PointToPlaneRadius"         type="string" value="0"/>
  387.      <param name="Icp/PointToPlane"               type="string" value="true"/>
  388.      <param name="Icp/Iterations"                 type="string" value="10"/>
  389.      <param name="Icp/Epsilon"                    type="string" value="0.001"/>
  390.      <param name="Icp/MaxTranslation"             type="string" value="3"/>
  391.      <param name="Icp/MaxCorrespondenceDistance"  type="string" value="1"/>
  392.      <param name="Icp/Strategy"                         type="string" value="true"/>
  393.      <param name="Icp/OutlierRatio"             type="string" value="0.7"/>
  394.      <param name="Icp/CorrespondenceRatio"        type="string" value="0.4"/> -->
  395.      
  396.       <!-- localization mode -->
  397.       <param     if="$(arg localization)" name="Mem/IncrementalMemory" type="string" value="false"/>
  398.       <param unless="$(arg localization)" name="Mem/IncrementalMemory" type="string" value="true"/>
  399.       <param name="Mem/InitWMWithAllNodes" type="string" value="$(arg localization)"/>
  400.     </node>
  401.  
  402.     <!-- Visualisation RTAB-Map -->
  403.     <node if="$(arg rtabmapviz)" pkg="rtabmap_ros" type="rtabmapviz" name="rtabmapviz" args="-d $(arg gui_cfg)" output="$(arg output)" launch-prefix="$(arg launch_prefix)">
  404.       <param     if="$(arg stereo)" name="subscribe_depth"  type="bool" value="false"/>
  405.       <param unless="$(arg stereo)" name="subscribe_depth"  type="bool" value="$(arg depth)"/>
  406.       <param name="subscribe_rgbd"       type="bool"   value="$(eval subscribe_rgbd or use_odom_features)"/>
  407.       <param name="subscribe_stereo"     type="bool"   value="$(arg stereo)"/>
  408.       <param unless="$(arg icp_odometry)" name="subscribe_scan"       type="bool"   value="$(arg subscribe_scan)"/>
  409.       <param     if="$(arg icp_odometry)" name="subscribe_scan_cloud" type="bool"   value="$(eval subscribe_scan or subscribe_scan_cloud)"/>
  410.       <param unless="$(arg icp_odometry)" name="subscribe_scan_cloud" type="bool"   value="$(arg subscribe_scan_cloud)"/>
  411.       <param name="subscribe_scan_descriptor" type="bool" value="$(arg subscribe_scan_descriptor)"/>
  412.       <param if="$(arg visual_odometry)" name="subscribe_odom_info" type="bool" value="true"/>
  413.       <param if="$(arg icp_odometry)"    name="subscribe_odom_info" type="bool" value="true"/>
  414.       <param name="frame_id"             type="string" value="$(arg frame_id)"/>
  415.       <param name="odom_frame_id"        type="string" value="$(arg odom_frame_id)"/>
  416.       <param name="wait_for_transform_duration" type="double"   value="$(arg wait_for_transform)"/>
  417.       <param name="queue_size"           type="int"    value="$(arg queue_size)"/>
  418.       <param name="approx_sync"          type="bool"   value="$(eval approx_sync and not use_odom_features)"/>
  419.    
  420.       <remap from="rgb/image"       to="$(arg rgb_topic_relay)"/>
  421.       <remap from="depth/image"     to="$(arg depth_topic_relay)"/>
  422.       <remap from="rgb/camera_info" to="$(arg camera_info_topic)"/>
  423.      
  424.       <remap     if="$(arg use_odom_features)" from="rgbd_image" to="odom_rgbd_image"/>
  425.       <remap unless="$(arg use_odom_features)" from="rgbd_image" to="$(arg rgbd_topic_relay)"/>
  426.      
  427.       <remap from="left/image_rect"        to="$(arg left_image_topic_relay)"/>
  428.       <remap from="right/image_rect"       to="$(arg right_image_topic_relay)"/>
  429.       <remap from="left/camera_info"       to="$(arg left_camera_info_topic)"/>
  430.       <remap from="right/camera_info"      to="$(arg right_camera_info_topic)"/>
  431.      
  432.       <remap unless="$(arg icp_odometry)" from="scan" to="$(arg scan_topic)"/>
  433.       <remap     if="$(arg icp_odometry)" from="scan_cloud" to="odom_filtered_input_scan"/>
  434.       <remap unless="$(arg icp_odometry)" from="scan_cloud" to="$(arg scan_cloud_topic)"/>
  435.       <remap from="scan_descriptor"        to="$(arg scan_descriptor_topic)"/>
  436.       <remap from="odom"                   to="$(arg odom_topic)"/>
  437.     </node>
  438.  
  439.   </group>
  440.  
  441.   <!-- Visualization RVIZ -->
  442.   <node if="$(arg rviz)" pkg="rviz" type="rviz" name="rviz" args="-d $(arg rviz_cfg)"/>
  443.   <node if="$(arg rviz)" pkg="nodelet" type="nodelet" name="points_xyzrgb" args="standalone rtabmap_ros/point_cloud_xyzrgb" output="$(arg output)">
  444.     <remap if="$(arg stereo)" from="left/image"        to="$(arg left_image_topic_relay)"/>
  445.     <remap if="$(arg stereo)" from="right/image"       to="$(arg right_image_topic_relay)"/>
  446.     <remap if="$(arg stereo)" from="left/camera_info"  to="$(arg left_camera_info_topic)"/>
  447.     <remap if="$(arg stereo)" from="right/camera_info" to="$(arg right_camera_info_topic)"/>
  448.     <remap unless="$(arg subscribe_rgbd)" from="rgb/image"         to="$(arg rgb_topic_relay)"/>
  449.     <remap unless="$(arg subscribe_rgbd)" from="depth/image"       to="$(arg depth_topic_relay)"/>
  450.     <remap unless="$(arg subscribe_rgbd)" from="rgb/camera_info"   to="$(arg camera_info_topic)"/>
  451.     <remap from="rgbd_image"        to="$(arg rgbd_topic_relay)"/>
  452.     <remap from="cloud"             to="voxel_cloud" />
  453.  
  454.     <param name="decimation"  type="double" value="4"/>
  455.     <param name="voxel_size"  type="double" value="0.0"/>
  456.     <param name="approx_sync" type="bool"   value="$(arg approx_sync)"/>
  457.   </node>
  458.  
  459.   <!-- <node pkg="nodelet" type="nodelet" name="point_cloud_assembler" args="standalone rtabmap_ros/point_cloud_assembler" output="screen">
  460.    <remap from="cloud"           to="/velodyne_points"/>
  461.    <remap from="odom"            to="/rtabmap/odom"/>
  462.    param     if="$(arg scan_20_hz)" name="max_clouds"      type="int"    value="20" /
  463.    <param name="max_clouds"      type="int"    value="10" />
  464.    <param name="fixed_frame_id"  type="string" value="" />
  465. </node> -->
  466.  
  467. </launch>
  468.  
  469.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement