ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

<launch>

<arg name="zed_rgbd_mode" default="true"/>

<arg name="rviz" default="false"/> <arg name="rtabmapviz" default="true"/>

<arg name="strategy" default="0"/> <arg name="feature" default="6"/> <arg name="nn" default="3"/> <arg name="max_depth" default="4.0"/> <arg name="min_inliers" default="20"/> <arg name="inlier_distance" default="0.02"/> <arg name="local_map" default="1000"/> <arg name="odom_info_data" default="true"/> <arg name="wait_for_transform" default="true"/>

<group ns="/zed1" &gt;<="" p="">

  <include file="$(find zed_wrapper)/launch/zed_camera.launch">

<arg name="zed_id" value="0"/> <arg name="publish_tf" value="false"/> </include>

  <node unless="$(arg zed_rgbd_mode)" pkg="stereo_image_proc" type="stereo_image_proc" name="stereo_image_proc">
     <remap from="left/image_raw"    to="left/image_rect_color"/>
     <remap from="left/camera_info"  to="left/camera_info"/>
     <remap from="right/image_raw"   to="right/image_rect_color"/>
     <remap from="right/camera_info" to="right/camera_info"/>
     <param name="disparity_range" value="200"/>
  </node>

  <node pkg="nodelet" type="nodelet" name="camera_nodelet_manager1"  args="manager"/>
  <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="disparity2depth" 
     args="load rtabmap_ros/disparity_to_depth camera_nodelet_manager1"/>

  <node     if="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager1">
     <remap from="rgb/image"       to="rgb/image_rect_color"/>
     <remap from="depth/image"     to="depth/depth_registered"/>
     <remap from="rgb/camera_info" to="rgb/camera_info"/>
     <param name="approx_sync"     value="false"/>
  </node>
  <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager1">
     <remap from="rgb/image"       to="left/image_rect_color"/>
     <remap from="depth/image"     to="depth"/>
     <remap from="rgb/camera_info" to="left/camera_info"/>
     <param name="approx_sync"     value="false"/>
  </node>

  <node pkg="tf" type="static_transform_publisher" name="base_to_camera1_tf"
  args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /zed_center 100" />

</group>

<group ns="/zed2" &gt;<="" p="">

  <include file="$(find zed_wrapper)/launch/zed_camera.launch">
<arg name="zed_id"                value="1" />
     <arg name="publish_tf" value="false"/>
  </include> 

  <node unless="$(arg zed_rgbd_mode)" pkg="stereo_image_proc" type="stereo_image_proc" name="stereo_image_proc">
     <remap from="left/image_raw"    to="left/image_rect_color"/>
     <remap from="left/camera_info"  to="left/camera_info"/>
     <remap from="right/image_raw"   to="right/image_rect_color"/>
     <remap from="right/camera_info" to="right/camera_info"/>
     <param name="disparity_range" value="200"/>
  </node>

  <node pkg="nodelet" type="nodelet" name="camera_nodelet_manager2"  args="manager"/>
  <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="disparity2depth" 
     args="load rtabmap_ros/disparity_to_depth camera_nodelet_manager"/>

  <node     if="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager2">
     <remap from="rgb/image"       to="rgb/image_rect_color"/>
     <remap from="depth/image"     to="depth/depth_registered"/>
     <remap from="rgb/camera_info" to="rgb/camera_info"/>
     <param name="approx_sync"     value="false"/>
  </node>
  <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager2">
     <remap from="rgb/image"       to="left/image_rect_color"/>
     <remap from="depth/image"     to="depth"/>
     <remap from="rgb/camera_info" to="left/camera_info"/>
     <param name="approx_sync"     value="false"/>
  </node>

  <node pkg="tf" type="static_transform_publisher" name="base_to_camera2_tf"
  args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /zed_center 100" />

</group>

<group ns="rtabmap">

<node pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry" output="screen"> <remap from="rgbd_image0" to="/zed1/rgbd_image"/> <remap from="rgbd_image1" to="/zed2/rgbd_image"/>

  <param name="subscribe_rgbd"           type="bool"   value="true"/>
  <param name="frame_id"                 type="string" value="base_link"/>
  <param name="rgbd_cameras"             type="int"    value="2"/>
  <param name="wait_for_transform"       type="bool"   value="$(arg wait_for_transform)"/>
  <param name="Odom/Strategy"            type="string" value="$(arg strategy)"/> 
  <param name="Vis/EstimationType"      type="string" value="0"/> <!-- should be 0 for multi-cameras -->
  <param name="Vis/FeatureType"         type="string" value="$(arg feature)"/>  
  <param name="Vis/CorNNType"           type="string" value="$(arg nn)"/>
  <param name="Vis/MaxDepth"            type="string" value="$(arg max_depth)"/>  
  <param name="Vis/MinInliers"          type="string" value="$(arg min_inliers)"/> 
  <param name="Vis/InlierDistance"      type="string" value="$(arg inlier_distance)"/>       
  <param name="OdomF2M/MaxSize" type="string" value="$(arg local_map)"/> 
  <param name="Odom/FillInfoData"        type="string" value="$(arg odom_info_data)"/>   
</node>

<node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="--delete_db_on_start">

  <remap from="rgbd_image0"       to="/zed1/rgbd_image"/>
  <remap from="rgbd_image1"       to="/zed2/rgbd_image"/>

  <param name="Grid/FromDepth"     type="string" value="false"/>
  <param name="Vis/EstimationType" type="string" value="0"/> <!-- should be 0 for multi-cameras -->
  <param name="Vis/MinInliers"     type="string" value="10"/>
  <param name="Vis/InlierDistance" type="string" value="$(arg inlier_distance)"/>
</node>

<!-- Visualisation RTAB-Map -->
<node if="$(arg rtabmapviz)" pkg="rtabmap_ros" type="rtabmapviz" name="rtabmapviz" args="-d $(find rtabmap_ros)/launch/config/rgbd_gui.ini" output="screen">
  <param name="subscribe_depth"  type="bool"   value="false"/>
  <param name="subscribe_rgbd"   type="bool"   value="true"/>
  <param name="subscribe_odom_info" type="bool"   value="$(arg odom_info_data)"/>
  <param name="frame_id"            type="string" value="base_link"/>
  <param name="rgbd_cameras"       type="int"    value="2"/>
  <param name="wait_for_transform"  type="bool"   value="$(arg wait_for_transform)"/>

  <remap from="rgbd_image0"       to="/zed1/rgbd_image"/>
  <remap from="rgbd_image1"       to="/zed2/rgbd_image"/>
</node>

</group>

<node if="$(arg rviz)" pkg="rviz" type="rviz" name="rviz" args="-d $(find rtabmap_ros)/launch/config/rgbd.rviz"/>

</launch>

<launch>

 <arg name="zed_rgbd_mode"  default="true"/>
  

<!-- Frames: Kinects are placed at 90 degrees, clockwise --> <!-- Choose visualization --> <arg name="rviz" default="false"/> default="false" /> <arg name="rtabmapviz" default="true"/>

default="true" /> <!-- ODOMETRY MAIN ARGUMENTS: -"strategy" : Strategy: 0=Frame-to-Map 1=Frame-to-Frame -"feature" : Feature type: 0=SURF 1=SIFT 2=ORB 3=FAST/FREAK 4=FAST/BRIEF 5=GFTT/FREAK 6=GFTT/BRIEF 7=BRISK -"nn" : Nearest neighbor strategy : 0=Linear, 1=FLANN_KDTREE, 2=FLANN_LSH, 3=BRUTEFORCE Set to 1 for float descriptor like SIFT/SURF Set to 3 for binary descriptor like ORB/FREAK/BRIEF/BRISK -"max_depth" : Maximum features depth (m) -"min_inliers" : Minimum visual correspondences to accept a transformation (m) -"inlier_distance" : RANSAC maximum inliers distance (m) -"local_map" : Local map size: number of unique features to keep track -"odom_info_data" : Fill odometry info messages with inliers/outliers data. --> <arg name="strategy" default="0"/> default="0" /> <arg name="feature" default="6"/> default="6" /> <arg name="nn" default="3"/> default="3" /> <arg name="max_depth" default="4.0"/> default="4.0" /> <arg name="min_inliers" default="20"/> default="20" /> <arg name="inlier_distance" default="0.02"/> default="0.02" /> <arg name="local_map" default="1000"/> default="1000" /> <arg name="odom_info_data" default="true"/> default="true" /> <arg name="wait_for_transform" default="true"/>

default="true" /> <group ns="/zed1" &gt;<="" p="">

>

      <include file="$(find zed_wrapper)/launch/zed_camera.launch">

<arg name="zed_id" value="0"/> value="0" /> <arg name="publish_tf" value="false"/> </include>

   <node unless="$(arg zed_rgbd_mode)" pkg="stereo_image_proc" type="stereo_image_proc" name="stereo_image_proc">
      <remap from="left/image_raw"    to="left/image_rect_color"/>
      <remap from="left/camera_info"  to="left/camera_info"/>
      <remap from="right/image_raw"   to="right/image_rect_color"/>
      <remap from="right/camera_info" to="right/camera_info"/>
      <param name="disparity_range" value="200"/>
   </node>

   <node pkg="nodelet" type="nodelet" name="camera_nodelet_manager1"  args="manager"/>
   <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="disparity2depth" 
      args="load rtabmap_ros/disparity_to_depth camera_nodelet_manager1"/>

   <node     if="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager1">
      <remap from="rgb/image"       to="rgb/image_rect_color"/>
      <remap from="depth/image"     to="depth/depth_registered"/>
      <remap from="rgb/camera_info" to="rgb/camera_info"/>
      <param name="approx_sync"     value="false"/>
   </node>
   <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager1">
      <remap from="rgb/image"       to="left/image_rect_color"/>
      <remap from="depth/image"     to="depth"/>
      <remap from="rgb/camera_info" to="left/camera_info"/>
      <param name="approx_sync"     value="false"/>
   </node>

   <node pkg="tf" type="static_transform_publisher" name="base_to_camera1_tf"
   args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /zed_center 100" />

</group>

</group> <group ns="/zed2" &gt;<="" p="">

>

      <include file="$(find zed_wrapper)/launch/zed_camera.launch">
 <arg name="zed_id"                value="1" />
      <arg name="publish_tf" value="false"/>
   </include> 

   <node unless="$(arg zed_rgbd_mode)" pkg="stereo_image_proc" type="stereo_image_proc" name="stereo_image_proc">
      <remap from="left/image_raw"    to="left/image_rect_color"/>
      <remap from="left/camera_info"  to="left/camera_info"/>
      <remap from="right/image_raw"   to="right/image_rect_color"/>
      <remap from="right/camera_info" to="right/camera_info"/>
      <param name="disparity_range" value="200"/>
   </node>

   <node pkg="nodelet" type="nodelet" name="camera_nodelet_manager2"  args="manager"/>
   <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="disparity2depth" 
      args="load rtabmap_ros/disparity_to_depth camera_nodelet_manager"/>

   <node     if="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager2">
      <remap from="rgb/image"       to="rgb/image_rect_color"/>
      <remap from="depth/image"     to="depth/depth_registered"/>
      <remap from="rgb/camera_info" to="rgb/camera_info"/>
      <param name="approx_sync"     value="false"/>
   </node>
   <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager2">
      <remap from="rgb/image"       to="left/image_rect_color"/>
      <remap from="depth/image"     to="depth"/>
      <remap from="rgb/camera_info" to="left/camera_info"/>
      <param name="approx_sync"     value="false"/>
   </node>

   <node pkg="tf" type="static_transform_publisher" name="base_to_camera2_tf"
   args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /zed_center 100" />

</group>

</group> <!-- rtabmap odometry--> <group ns="rtabmap">

ns="rtabmap"> <node pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry" output="screen"> <remap from="rgbd_image0" to="/zed1/rgbd_image"/> <remap from="rgbd_image1" to="/zed2/rgbd_image"/>

      to="/zed2/rgbd_image"/>


      <param name="subscribe_rgbd"           type="bool"   value="true"/>
   <param name="frame_id"                 type="string" value="base_link"/>
   <param name="rgbd_cameras"             type="int"    value="2"/>
   <param name="wait_for_transform"       type="bool"   value="$(arg wait_for_transform)"/>
   <param name="Odom/Strategy"            type="string" value="$(arg strategy)"/> 
   <param name="Vis/EstimationType"      type="string" value="0"/> <!-- should be 0 for multi-cameras -->
   <param name="Vis/FeatureType"         type="string" value="$(arg feature)"/>  
   <param name="Vis/CorNNType"           type="string" value="$(arg nn)"/>
   <param name="Vis/MaxDepth"            type="string" value="$(arg max_depth)"/>  
   <param name="Vis/MinInliers"          type="string" value="$(arg min_inliers)"/> 
   <param name="Vis/InlierDistance"      type="string" value="$(arg inlier_distance)"/>       
   <param name="OdomF2M/MaxSize" type="string" value="$(arg local_map)"/> 
   <param name="Odom/FillInfoData"        type="string" value="$(arg odom_info_data)"/>   
 </node>

<!-- Visual SLAM (robot side) --> <!-- args: "delete_db_on_start" and "udebug" --> <node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="--delete_db_on_start">

<param name="subscribe_depth"  type="bool"   value="false"/>
      <param name="subscribe_rgbd"   type="bool"   value="true"/>
      <param name="rgbd_cameras"    type="int"    value="2"/>
      <param name="frame_id"         type="string" value="base_link"/>
      <param name="gen_scan"         type="bool"   value="true"/>
      <param name="wait_for_transform" type="bool"   value="$(arg wait_for_transform)"/>
      <param name="map_negative_poses_ignored" type="bool"   value="false"/>        <!-- refresh grid map even if we are not moving-->
      <param name="map_negative_scan_empty_ray_tracing" type="bool" value="false"/> <!-- don't fill empty space between the generated scans-->

      <remap from="rgbd_image0"       to="/zed1/rgbd_image"/>
   <remap from="rgbd_image1"       to="/zed2/rgbd_image"/>

   <param name="Grid/FromDepth"     type="string" value="false"/>
   <param name="Vis/EstimationType" type="string" value="0"/> <!-- should be 0 for multi-cameras -->
   <param name="Vis/MinInliers"     type="string" value="10"/>
   <param name="Vis/InlierDistance" type="string" value="$(arg inlier_distance)"/>
 </node>

 <!-- Visualisation RTAB-Map -->
 <node if="$(arg rtabmapviz)" pkg="rtabmap_ros" type="rtabmapviz" name="rtabmapviz" args="-d $(find rtabmap_ros)/launch/config/rgbd_gui.ini" output="screen">
   <param name="subscribe_depth"  type="bool"   value="false"/>
   <param name="subscribe_rgbd"   type="bool"   value="true"/>
   <param name="subscribe_odom_info" type="bool"   value="$(arg odom_info_data)"/>
   <param name="frame_id"            type="string" value="base_link"/>
   <param name="rgbd_cameras"       type="int"    value="2"/>
   <param name="wait_for_transform"  type="bool"   value="$(arg wait_for_transform)"/>

   <remap from="rgbd_image0"       to="/zed1/rgbd_image"/>
   <remap from="rgbd_image1"       to="/zed2/rgbd_image"/>
 </node>

</group>

</group> <!-- Visualization RVIZ --> <node if="$(arg rviz)" pkg="rviz" type="rviz" name="rviz" args="-d $(find rtabmap_ros)/launch/config/rgbd.rviz"/>

</launch>

rtabmap_ros)/launch/config/rgbd.rviz"/> </launch>

<launch>
<arg name="zed_rgbd_mode" default="true"/>

 <arg name="zed_rgbd_mode"        default="true"/>
  <!-- Frames: Kinects are placed at 90 degrees, clockwise -->


    <!-- Choose visualization -->
    <arg name="rviz"       default="false" />
    <arg name="rtabmapviz" default="true" /> 

    <!-- ODOMETRY MAIN ARGUMENTS: 
         -"strategy"        : Strategy: 0=Frame-to-Map 1=Frame-to-Frame
         -"feature"         : Feature type: 0=SURF 1=SIFT 2=ORB 3=FAST/FREAK 4=FAST/BRIEF 5=GFTT/FREAK 6=GFTT/BRIEF 7=BRISK
         -"nn"              : Nearest neighbor strategy : 0=Linear, 1=FLANN_KDTREE, 2=FLANN_LSH, 3=BRUTEFORCE 
                              Set to 1 for float descriptor like SIFT/SURF                  
                              Set to 3 for binary descriptor like ORB/FREAK/BRIEF/BRISK  
         -"max_depth"       : Maximum features depth (m)  
         -"min_inliers"     : Minimum visual correspondences to accept a transformation (m)  
         -"inlier_distance" : RANSAC maximum inliers distance (m)  
         -"local_map"       : Local map size: number of unique features to keep track 
         -"odom_info_data"  : Fill odometry info messages with inliers/outliers data.
     -->
    <arg name="strategy"        default="0" />
    <arg name="feature"         default="6" />
    <arg name="nn"              default="3" />
    <arg name="max_depth"       default="4.0" />
    <arg name="min_inliers"     default="20" />
    <arg name="inlier_distance" default="0.02" />
    <arg name="local_map"       default="1000" />
    <arg name="odom_info_data"  default="true" />
    <arg name="wait_for_transform"  default="true" />

   <group ns="/zed1" >

       <include file="$(find zed_wrapper)/launch/zed_camera.launch">
 <arg name="zed_id"                value="0" />
          <arg name="publish_tf" value="false"/>
       </include> 

       <node unless="$(arg zed_rgbd_mode)" pkg="stereo_image_proc" type="stereo_image_proc" name="stereo_image_proc">
          <remap from="left/image_raw"    to="left/image_rect_color"/>
          <remap from="left/camera_info"  to="left/camera_info"/>
          <remap from="right/image_raw"   to="right/image_rect_color"/>
          <remap from="right/camera_info" to="right/camera_info"/>
          <param name="disparity_range" value="200"/>
       </node>

       <node pkg="nodelet" type="nodelet" name="camera_nodelet_manager1"  args="manager"/>
       <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="disparity2depth" 
          args="load rtabmap_ros/disparity_to_depth camera_nodelet_manager1"/>

       <node     if="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager1">
          <remap from="rgb/image"       to="rgb/image_rect_color"/>
          <remap from="depth/image"     to="depth/depth_registered"/>
          <remap from="rgb/camera_info" to="rgb/camera_info"/>
          <param name="approx_sync"     value="false"/>
       </node>
       <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager1">
          <remap from="rgb/image"       to="left/image_rect_color"/>
          <remap from="depth/image"     to="depth"/>
          <remap from="rgb/camera_info" to="left/camera_info"/>
          <param name="approx_sync"     value="false"/>
       </node>

       <node pkg="tf" type="static_transform_publisher" name="base_to_camera1_tf"
       args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /zed_center 100" />
    </group>

  <group ns="/zed2" >

       <include file="$(find zed_wrapper)/launch/zed_camera.launch">
     <arg name="zed_id"                value="1" />
          <arg name="publish_tf" value="false"/>
       </include> 

       <node unless="$(arg zed_rgbd_mode)" pkg="stereo_image_proc" type="stereo_image_proc" name="stereo_image_proc">
          <remap from="left/image_raw"    to="left/image_rect_color"/>
          <remap from="left/camera_info"  to="left/camera_info"/>
          <remap from="right/image_raw"   to="right/image_rect_color"/>
          <remap from="right/camera_info" to="right/camera_info"/>
          <param name="disparity_range" value="200"/>
       </node>

       <node pkg="nodelet" type="nodelet" name="camera_nodelet_manager2"  args="manager"/>
       <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="disparity2depth" 
          args="load rtabmap_ros/disparity_to_depth camera_nodelet_manager"/>

       <node     if="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager2">
          <remap from="rgb/image"       to="rgb/image_rect_color"/>
          <remap from="depth/image"     to="depth/depth_registered"/>
          <remap from="rgb/camera_info" to="rgb/camera_info"/>
          <param name="approx_sync"     value="false"/>
       </node>
       <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager2">
          <remap from="rgb/image"       to="left/image_rect_color"/>
          <remap from="depth/image"     to="depth"/>
          <remap from="rgb/camera_info" to="left/camera_info"/>
          <param name="approx_sync"     value="false"/>
       </node>

       <node pkg="tf" type="static_transform_publisher" name="base_to_camera2_tf"
       args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /zed_center 100" />
    </group>

 <!-- rtabmap odometry-->
  <group ns="rtabmap">

 <node pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry" output="screen">
       <remap from="rgbd_image0"       to="/zed1/rgbd_image"/>
       <remap from="rgbd_image1"       to="/zed2/rgbd_image"/>


       <param name="subscribe_rgbd"           type="bool"   value="true"/>
       <param name="frame_id"                 type="string" value="base_link"/>
       <param name="rgbd_cameras"             type="int"    value="2"/>
       <param name="wait_for_transform"       type="bool"   value="$(arg wait_for_transform)"/>
       <param name="Odom/Strategy"            type="string" value="$(arg strategy)"/> 
       <param name="Vis/EstimationType"      type="string" value="0"/> <!-- should be 0 for multi-cameras -->
       <param name="Vis/FeatureType"         type="string" value="$(arg feature)"/>  
       <param name="Vis/CorNNType"           type="string" value="$(arg nn)"/>
       <param name="Vis/MaxDepth"            type="string" value="$(arg max_depth)"/>  
       <param name="Vis/MinInliers"          type="string" value="$(arg min_inliers)"/> 
       <param name="Vis/InlierDistance"      type="string" value="$(arg inlier_distance)"/>       
       <param name="OdomF2M/MaxSize" type="string" value="$(arg local_map)"/> 
       <param name="Odom/FillInfoData"        type="string" value="$(arg odom_info_data)"/>   
     </node>

 <!-- Visual SLAM (robot side) -->
     <!-- args: "delete_db_on_start" and "udebug" -->
     <node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="--delete_db_on_start">
       <param name="subscribe_depth"  type="bool"   value="false"/>
       <param name="subscribe_rgbd"   type="bool"   value="true"/>
       <param name="rgbd_cameras"    type="int"    value="2"/>
       <param name="frame_id"         type="string" value="base_link"/>
       <param name="gen_scan"         type="bool"   value="true"/>
       <param name="wait_for_transform" type="bool"   value="$(arg wait_for_transform)"/>
       <param name="map_negative_poses_ignored" type="bool"   value="false"/>        <!-- refresh grid map even if we are not moving-->
       <param name="map_negative_scan_empty_ray_tracing" type="bool" value="false"/> <!-- don't fill empty space between the generated scans-->

       <remap from="rgbd_image0"       to="/zed1/rgbd_image"/>
       <remap from="rgbd_image1"       to="/zed2/rgbd_image"/>

       <param name="Grid/FromDepth"     type="string" value="false"/>
       <param name="Vis/EstimationType" type="string" value="0"/> <!-- should be 0 for multi-cameras -->
       <param name="Vis/MinInliers"     type="string" value="10"/>
       <param name="Vis/InlierDistance" type="string" value="$(arg inlier_distance)"/>
     </node>

     <!-- Visualisation RTAB-Map -->
     <node if="$(arg rtabmapviz)" pkg="rtabmap_ros" type="rtabmapviz" name="rtabmapviz" args="-d $(find rtabmap_ros)/launch/config/rgbd_gui.ini" output="screen">
       <param name="subscribe_depth"  type="bool"   value="false"/>
       <param name="subscribe_rgbd"   type="bool"   value="true"/>
       <param name="subscribe_odom_info" type="bool"   value="$(arg odom_info_data)"/>
       <param name="frame_id"            type="string" value="base_link"/>
       <param name="rgbd_cameras"       type="int"    value="2"/>
       <param name="wait_for_transform"  type="bool"   value="$(arg wait_for_transform)"/>

       <remap from="rgbd_image0"       to="/zed1/rgbd_image"/>
       <remap from="rgbd_image1"       to="/zed2/rgbd_image"/>
     </node>

   </group>

   <!-- Visualization RVIZ -->
   <node if="$(arg rviz)" pkg="rviz" type="rviz" name="rviz" args="-d $(find rtabmap_ros)/launch/config/rgbd.rviz"/>

 </launch>

<launch>
<arg name="zed_rgbd_mode" default="true"/>

        <!-- Choose visualization -->
        <arg name="rviz"       default="false" />
        <arg name="rtabmapviz" default="true" /> 

        <!-- ODOMETRY MAIN ARGUMENTS: 
             -"strategy"        : Strategy: 0=Frame-to-Map 1=Frame-to-Frame
             -"feature"         : Feature type: 0=SURF 1=SIFT 2=ORB 3=FAST/FREAK 4=FAST/BRIEF 5=GFTT/FREAK 6=GFTT/BRIEF 7=BRISK
             -"nn"              : Nearest neighbor strategy : 0=Linear, 1=FLANN_KDTREE, 2=FLANN_LSH, 3=BRUTEFORCE 
                                  Set to 1 for float descriptor like SIFT/SURF                  
                                  Set to 3 for binary descriptor like ORB/FREAK/BRIEF/BRISK  
             -"max_depth"       : Maximum features depth (m)  
             -"min_inliers"     : Minimum visual correspondences to accept a transformation (m)  
             -"inlier_distance" : RANSAC maximum inliers distance (m)  
             -"local_map"       : Local map size: number of unique features to keep track 
             -"odom_info_data"  : Fill odometry info messages with inliers/outliers data.
         -->
        <arg name="strategy"        default="0" />
        <arg name="feature"         default="6" />
        <arg name="nn"              default="3" />
        <arg name="max_depth"       default="4.0" />
        <arg name="min_inliers"     default="20" />
        <arg name="inlier_distance" default="0.02" />
        <arg name="local_map"       default="1000" />
        <arg name="odom_info_data"  default="true" />
        <arg name="wait_for_transform"  default="true" />

       <group ns="/zed1" >

           <include file="$(find zed_wrapper)/launch/zed_camera.launch">
     <arg name="zed_id"                value="0" />
              <arg name="publish_tf" value="false"/>
           </include> 

           <node unless="$(arg zed_rgbd_mode)" pkg="stereo_image_proc" type="stereo_image_proc" name="stereo_image_proc">
              <remap from="left/image_raw"    to="left/image_rect_color"/>
              <remap from="left/camera_info"  to="left/camera_info"/>
              <remap from="right/image_raw"   to="right/image_rect_color"/>
              <remap from="right/camera_info" to="right/camera_info"/>
              <param name="disparity_range" value="200"/>
           </node>

           <node pkg="nodelet" type="nodelet" name="camera_nodelet_manager1"  args="manager"/>
           <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="disparity2depth" 
              args="load rtabmap_ros/disparity_to_depth camera_nodelet_manager1"/>

           <node     if="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager1">
              <remap from="rgb/image"       to="rgb/image_rect_color"/>
              <remap from="depth/image"     to="depth/depth_registered"/>
              <remap from="rgb/camera_info" to="rgb/camera_info"/>
              <param name="approx_sync"     value="false"/>
           </node>
           <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager1">
              <remap from="rgb/image"       to="left/image_rect_color"/>
              <remap from="depth/image"     to="depth"/>
              <remap from="rgb/camera_info" to="left/camera_info"/>
              <param name="approx_sync"     value="false"/>
           </node>

           <node pkg="tf" type="static_transform_publisher" name="base_to_camera1_tf"
           args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /zed_center 100" />
        </group>

      <group ns="/zed2" >

           <include file="$(find zed_wrapper)/launch/zed_camera.launch">
         <arg name="zed_id"                value="1" />
              <arg name="publish_tf" value="false"/>
           </include> 

           <node unless="$(arg zed_rgbd_mode)" pkg="stereo_image_proc" type="stereo_image_proc" name="stereo_image_proc">
              <remap from="left/image_raw"    to="left/image_rect_color"/>
              <remap from="left/camera_info"  to="left/camera_info"/>
              <remap from="right/image_raw"   to="right/image_rect_color"/>
              <remap from="right/camera_info" to="right/camera_info"/>
              <param name="disparity_range" value="200"/>
           </node>

           <node pkg="nodelet" type="nodelet" name="camera_nodelet_manager2"  args="manager"/>
           <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="disparity2depth" 
              args="load rtabmap_ros/disparity_to_depth camera_nodelet_manager"/>

           <node     if="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager2">
              <remap from="rgb/image"       to="rgb/image_rect_color"/>
              <remap from="depth/image"     to="depth/depth_registered"/>
              <remap from="rgb/camera_info" to="rgb/camera_info"/>
              <param name="approx_sync"     value="false"/>
           </node>
           <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager2">
              <remap from="rgb/image"       to="left/image_rect_color"/>
              <remap from="depth/image"     to="depth"/>
              <remap from="rgb/camera_info" to="left/camera_info"/>
              <param name="approx_sync"     value="false"/>
           </node>

           <node pkg="tf" type="static_transform_publisher" name="base_to_camera2_tf"
           args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /zed_center 100" />
        </group>

     <!-- rtabmap odometry-->
      <group ns="rtabmap">

     <node pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry" output="screen">
           <remap from="rgbd_image0"       to="/zed1/rgbd_image"/>
           <remap from="rgbd_image1"       to="/zed2/rgbd_image"/>


           <param name="subscribe_rgbd"           type="bool"   value="true"/>
           <param name="frame_id"                 type="string" value="base_link"/>
           <param name="rgbd_cameras"             type="int"    value="2"/>
           <param name="wait_for_transform"       type="bool"   value="$(arg wait_for_transform)"/>
           <param name="Odom/Strategy"            type="string" value="$(arg strategy)"/> 
           <param name="Vis/EstimationType"      type="string" value="0"/> <!-- should be 0 for multi-cameras -->
           <param name="Vis/FeatureType"         type="string" value="$(arg feature)"/>  
           <param name="Vis/CorNNType"           type="string" value="$(arg nn)"/>
           <param name="Vis/MaxDepth"            type="string" value="$(arg max_depth)"/>  
           <param name="Vis/MinInliers"          type="string" value="$(arg min_inliers)"/> 
           <param name="Vis/InlierDistance"      type="string" value="$(arg inlier_distance)"/>       
           <param name="OdomF2M/MaxSize" type="string" value="$(arg local_map)"/> 
           <param name="Odom/FillInfoData"        type="string" value="$(arg odom_info_data)"/>   
         </node>

     <!-- Visual SLAM (robot side) -->
         <!-- args: "delete_db_on_start" and "udebug" -->
         <node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="--delete_db_on_start">
           <param name="subscribe_depth"  type="bool"   value="false"/>
           <param name="subscribe_rgbd"   type="bool"   value="true"/>
           <param name="rgbd_cameras"    type="int"    value="2"/>
           <param name="frame_id"         type="string" value="base_link"/>
           <param name="gen_scan"         type="bool"   value="true"/>
           <param name="wait_for_transform" type="bool"   value="$(arg wait_for_transform)"/>
           <param name="map_negative_poses_ignored" type="bool"   value="false"/>        <!-- refresh grid map even if we are not moving-->
           <param name="map_negative_scan_empty_ray_tracing" type="bool" value="false"/> <!-- don't fill empty space between the generated scans-->

           <remap from="rgbd_image0"       to="/zed1/rgbd_image"/>
           <remap from="rgbd_image1"       to="/zed2/rgbd_image"/>

           <param name="Grid/FromDepth"     type="string" value="false"/>
           <param name="Vis/EstimationType" type="string" value="0"/> <!-- should be 0 for multi-cameras -->
           <param name="Vis/MinInliers"     type="string" value="10"/>
           <param name="Vis/InlierDistance" type="string" value="$(arg inlier_distance)"/>
         </node>

         <!-- Visualisation RTAB-Map -->
         <node if="$(arg rtabmapviz)" pkg="rtabmap_ros" type="rtabmapviz" name="rtabmapviz" args="-d $(find rtabmap_ros)/launch/config/rgbd_gui.ini" output="screen">
           <param name="subscribe_depth"  type="bool"   value="false"/>
           <param name="subscribe_rgbd"   type="bool"   value="true"/>
           <param name="subscribe_odom_info" type="bool"   value="$(arg odom_info_data)"/>
           <param name="frame_id"            type="string" value="base_link"/>
           <param name="rgbd_cameras"       type="int"    value="2"/>
           <param name="wait_for_transform"  type="bool"   value="$(arg wait_for_transform)"/>

           <remap from="rgbd_image0"       to="/zed1/rgbd_image"/>
           <remap from="rgbd_image1"       to="/zed2/rgbd_image"/>
         </node>

       </group>

       <!-- Visualization RVIZ -->
       <node if="$(arg rviz)" pkg="rviz" type="rviz" name="rviz" args="-d $(find rtabmap_ros)/launch/config/rgbd.rviz"/>

     </launch>
click to hide/show revision 5
No.5 Revision

<launch>
<arg name="zed_rgbd_mode" default="true"/>

           <!-- Choose visualization -->
           <arg name="rviz"       default="false" />
           <arg name="rtabmapviz" default="true" /> 

           <!-- ODOMETRY MAIN ARGUMENTS: 
                -"strategy"        : Strategy: 0=Frame-to-Map 1=Frame-to-Frame
                -"feature"         : Feature type: 0=SURF 1=SIFT 2=ORB 3=FAST/FREAK 4=FAST/BRIEF 5=GFTT/FREAK 6=GFTT/BRIEF 7=BRISK
                -"nn"              : Nearest neighbor strategy : 0=Linear, 1=FLANN_KDTREE, 2=FLANN_LSH, 3=BRUTEFORCE 
                                     Set to 1 for float descriptor like SIFT/SURF                  
                                     Set to 3 for binary descriptor like ORB/FREAK/BRIEF/BRISK  
                -"max_depth"       : Maximum features depth (m)  
                -"min_inliers"     : Minimum visual correspondences to accept a transformation (m)  
                -"inlier_distance" : RANSAC maximum inliers distance (m)  
                -"local_map"       : Local map size: number of unique features to keep track 
                -"odom_info_data"  : Fill odometry info messages with inliers/outliers data.
            -->
           <arg name="strategy"        default="0" />
           <arg name="feature"         default="6" />
           <arg name="nn"              default="3" />
           <arg name="max_depth"       default="4.0" />
           <arg name="min_inliers"     default="20" />
           <arg name="inlier_distance" default="0.02" />
           <arg name="local_map"       default="1000" />
           <arg name="odom_info_data"  default="true" />
           <arg name="wait_for_transform"  default="true" />

          <group ns="/zed1" >

              <include file="$(find zed_wrapper)/launch/zed_camera.launch">
        <arg name="zed_id"                value="0" />
                 <arg name="publish_tf" value="false"/>
              </include> 

              <node unless="$(arg zed_rgbd_mode)" pkg="stereo_image_proc" type="stereo_image_proc" name="stereo_image_proc">
                 <remap from="left/image_raw"    to="left/image_rect_color"/>
                 <remap from="left/camera_info"  to="left/camera_info"/>
                 <remap from="right/image_raw"   to="right/image_rect_color"/>
                 <remap from="right/camera_info" to="right/camera_info"/>
                 <param name="disparity_range" value="200"/>
              </node>

              <node pkg="nodelet" type="nodelet" name="camera_nodelet_manager1"  args="manager"/>
              <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="disparity2depth" 
                 args="load rtabmap_ros/disparity_to_depth camera_nodelet_manager1"/>

              <node     if="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager1">
                 <remap from="rgb/image"       to="rgb/image_rect_color"/>
                 <remap from="depth/image"     to="depth/depth_registered"/>
                 <remap from="rgb/camera_info" to="rgb/camera_info"/>
                 <param name="approx_sync"     value="false"/>
              </node>
              <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager1">
                 <remap from="rgb/image"       to="left/image_rect_color"/>
                 <remap from="depth/image"     to="depth"/>
                 <remap from="rgb/camera_info" to="left/camera_info"/>
                 <param name="approx_sync"     value="false"/>
              </node>

              <node pkg="tf" type="static_transform_publisher" name="base_to_camera1_tf"
              args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /zed_center 100" />
           </group>

         <group ns="/zed2" >

              <include file="$(find zed_wrapper)/launch/zed_camera.launch">
            <arg name="zed_id"                value="1" />
                 <arg name="publish_tf" value="false"/>
              </include> 

              <node unless="$(arg zed_rgbd_mode)" pkg="stereo_image_proc" type="stereo_image_proc" name="stereo_image_proc">
                 <remap from="left/image_raw"    to="left/image_rect_color"/>
                 <remap from="left/camera_info"  to="left/camera_info"/>
                 <remap from="right/image_raw"   to="right/image_rect_color"/>
                 <remap from="right/camera_info" to="right/camera_info"/>
                 <param name="disparity_range" value="200"/>
              </node>

              <node pkg="nodelet" type="nodelet" name="camera_nodelet_manager2"  args="manager"/>
              <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="disparity2depth" 
                 args="load rtabmap_ros/disparity_to_depth camera_nodelet_manager"/>

              <node     if="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager2">
                 <remap from="rgb/image"       to="rgb/image_rect_color"/>
                 <remap from="depth/image"     to="depth/depth_registered"/>
                 <remap from="rgb/camera_info" to="rgb/camera_info"/>
                 <param name="approx_sync"     value="false"/>
              </node>
              <node unless="$(arg zed_rgbd_mode)" pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager2">
                 <remap from="rgb/image"       to="left/image_rect_color"/>
                 <remap from="depth/image"     to="depth"/>
                 <remap from="rgb/camera_info" to="left/camera_info"/>
                 <param name="approx_sync"     value="false"/>
              </node>

              <node pkg="tf" type="static_transform_publisher" name="base_to_camera2_tf"
              args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /zed_center 100" />
           </group>

        <!-- rtabmap odometry-->
         <group ns="rtabmap">

        <node pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry" output="screen">
              <remap from="rgbd_image0"       to="/zed1/rgbd_image"/>
              <remap from="rgbd_image1"       to="/zed2/rgbd_image"/>


              <param name="subscribe_rgbd"           type="bool"   value="true"/>
              <param name="frame_id"                 type="string" value="base_link"/>
              <param name="rgbd_cameras"             type="int"    value="2"/>
              <param name="wait_for_transform"       type="bool"   value="$(arg wait_for_transform)"/>
              <param name="Odom/Strategy"            type="string" value="$(arg strategy)"/> 
              <param name="Vis/EstimationType"      type="string" value="0"/> <!-- should be 0 for multi-cameras -->
              <param name="Vis/FeatureType"         type="string" value="$(arg feature)"/>  
              <param name="Vis/CorNNType"           type="string" value="$(arg nn)"/>
              <param name="Vis/MaxDepth"            type="string" value="$(arg max_depth)"/>  
              <param name="Vis/MinInliers"          type="string" value="$(arg min_inliers)"/> 
              <param name="Vis/InlierDistance"      type="string" value="$(arg inlier_distance)"/>       
              <param name="OdomF2M/MaxSize" type="string" value="$(arg local_map)"/> 
              <param name="Odom/FillInfoData"        type="string" value="$(arg odom_info_data)"/>   
            </node>

        <!-- Visual SLAM (robot side) -->
            <!-- args: "delete_db_on_start" and "udebug" -->
            <node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="--delete_db_on_start">
              <param name="subscribe_depth"  type="bool"   value="false"/>
              <param name="subscribe_rgbd"   type="bool"   value="true"/>
              <param name="rgbd_cameras"    type="int"    value="2"/>
              <param name="frame_id"         type="string" value="base_link"/>
              <param name="gen_scan"         type="bool"   value="true"/>
              <param name="wait_for_transform" type="bool"   value="$(arg wait_for_transform)"/>
              <param name="map_negative_poses_ignored" type="bool"   value="false"/>        <!-- refresh grid map even if we are not moving-->
              <param name="map_negative_scan_empty_ray_tracing" type="bool" value="false"/> <!-- don't fill empty space between the generated scans-->

              <remap from="rgbd_image0"       to="/zed1/rgbd_image"/>
              <remap from="rgbd_image1"       to="/zed2/rgbd_image"/>

              <param name="Grid/FromDepth"     type="string" value="false"/>
              <param name="Vis/EstimationType" type="string" value="0"/> <!-- should be 0 for multi-cameras -->
              <param name="Vis/MinInliers"     type="string" value="10"/>
              <param name="Vis/InlierDistance" type="string" value="$(arg inlier_distance)"/>
            </node>

            <!-- Visualisation RTAB-Map -->
            <node if="$(arg rtabmapviz)" pkg="rtabmap_ros" type="rtabmapviz" name="rtabmapviz" args="-d $(find rtabmap_ros)/launch/config/rgbd_gui.ini" output="screen">
              <param name="subscribe_depth"  type="bool"   value="false"/>
              <param name="subscribe_rgbd"   type="bool"   value="true"/>
              <param name="subscribe_odom_info" type="bool"   value="$(arg odom_info_data)"/>
              <param name="frame_id"            type="string" value="base_link"/>
              <param name="rgbd_cameras"       type="int"    value="2"/>
              <param name="wait_for_transform"  type="bool"   value="$(arg wait_for_transform)"/>

              <remap from="rgbd_image0"       to="/zed1/rgbd_image"/>
              <remap from="rgbd_image1"       to="/zed2/rgbd_image"/>
            </node>

          </group>

          <!-- Visualization RVIZ -->
          <node if="$(arg rviz)" pkg="rviz" type="rviz" name="rviz" args="-d $(find rtabmap_ros)/launch/config/rgbd.rviz"/>

        </launch>