introlab / rtabmap_ros

RTAB-Map's ROS package.
http://wiki.ros.org/rtabmap_ros
BSD 3-Clause "New" or "Revised" License
949 stars 554 forks source link

Nvidia AGX suddenly shutdown when using rtabmap_ros with 2 stereo cameras #802

Open hsynklceng opened 2 years ago

hsynklceng commented 2 years ago

Hi,

We are trying to use rtabmap with 2 realsense d435i for mapping. But, during the mapping Nvidia AGX is suddenly shutdown. Before, we made mapping with one camera and everything worked fine. But now, we are trying to two stereo cameras but we cant.

I tried launch this file.

<?xml version="1.0"?>
<launch>

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

   <arg name="wait_for_transform"  default="true" />
   <arg name="localization"            default="false"/>
   <arg name="database_path"           default=""/>

   <include file="$(find realsense2_camera)/launch/rs_camera.launch">
     <!--arg name="depth_registration" value="True" /-->
     <arg name="camera" value="camera_front" />
     <arg name="serial_no" value="***" />
   </include>
   <include file="$(find realsense2_camera)/launch/rs_camera.launch">
     <!--arg name="depth_registration" value="True" /-->
     <arg name="camera" value="camera_back" />
     <arg name="serial_no" value="***" />
   </include>

   <!-- sync rgb/depth images per camera -->
   <group ns="Realsense_Front">

    <node pkg="nodelet" type="nodelet" name="rgbd_sync" args="standalone rtabmap_ros/rgbd_sync">
      <remap from="rgb/image"         to="/camera_front/color/image_raw"/>
      <remap from="depth/image"       to="/camera_front/aligned_depth_to_color/image_raw"/>
      <remap from="rgb/camera_info"   to="/camera_front/color/camera_info"/>
      <param name="approx_sync"     type="bool"   value="true"/>
    </node>
   </group>
   <group ns="Realsense_Back">

    <node pkg="nodelet" type="nodelet" name="rgbd_sync" args="standalone rtabmap_ros/rgbd_sync">
      <remap from="rgb/image"         to="/camera_back/color/image_raw"/>
      <remap from="depth/image"       to="/camera_back/aligned_depth_to_color/image_raw"/>
      <remap from="rgb/camera_info"   to="/camera_back/color/camera_info"/>
      <param name="approx_sync"     type="bool"   value="true"/>
    </node>
   </group>

  <group ns="rtabmap">

    <!-- Odometry -->
    <node pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry" output="screen">

      <remap from="rgbd_image0"       to="/Realsense_Front/rgbd_image"/>
          <remap from="rgbd_image1"       to="/Realsense_Back/rgbd_image"/>
          <remap from="odom"              to="/odom"/>
          <remap from="imu"               to="/imu/data"/>

      <param name="wait_for_transform"       type="bool"   value="$(arg wait_for_transform)"/>
      <param name="frame_id"                    type="string" value="chassis"/>
          <param name="odom_frame_id"               type="string" value="odom"/>
          <param name="publish_tf"                  type="bool"   value="false"/>
          <param name="ground_truth_frame_id"       type="string" value=""/>
          <param name="ground_truth_base_frame_id"  type="string" value=""/>
          <param name="wait_for_transform_duration" type="double" value="0.2"/>
          <param name="wait_imu_to_init"            type="bool"   value="false"/>
          <param name="approx_sync"                 type="bool"   value="true"/>
          <param name="config_path"                 type="string" value=""/>
          <param name="queue_size"                  type="int"    value="10"/>
          <param name="subscribe_rgbd"              type="bool"   value="true"/>
      <param name="rgbd_cameras"                type="int"    value="2"/>
          <param name="guess_frame_id"              type="string" value=""/>
          <param name="guess_min_translation"       type="double" value="0"/>
          <param name="guess_min_rotation"          type="double" value="0"/>
          <param name="expected_update_rate"        type="double" value="0"/>
          <param name="max_update_rate"             type="double" value="0"/>
          <param name="keep_color"                  type="bool"   value="false"/>   

      <!--param name="Odom/Strategy"            type="string" value="$(arg strategy)"/--> 
      <param name="OdomF2M/BundleAdjustment" type="string" value="0"/> <!-- should be 0 for multi-cameras -->
      <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/CorGuessWinSize"     type="string" value="0"/> 
      <!--param name="Vis/CorNNType"           type="string" value="$(arg nn)"/-->
      <param name="Vis/MaxDepth"            type="string" value="2.5"/>  
      <!--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 --Optimizer/GravitySigma 0.3">

      <param name="subscribe_depth"  type="bool"   value="false"/>
      <param name="subscribe_rgbd"   type="bool"   value="true"/>
      <param name="rgbd_cameras"    type="int"    value="2"/>
      <remap from="rgbd_image0"       to="/Realsense_Front/rgbd_image"/>
      <remap from="rgbd_image1"       to="/Realsense_Back/rgbd_image"/>

      <param name="approx_sync"     type="bool"   value="true"/>
      <param name="frame_id"         type="string" value="chassis"/>
      <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-->
      <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/MaxDepth"       type="string" value="2.5"/>
      <!--param name="Vis/InlierDistance" type="string" value="$(arg inlier_distance)"/-->

      <param name="database_path"        type="string" value="$(arg database_path)"/>
      <param name="subscribe_scan"       type="bool"   value="true"/>
      <param name="subscribe_odom_info"  type="bool"   value="true"/>
      <param name="frame_id"             type="string" value="chassis"/>
      <param name="map_frame_id"         type="string" value="map"/>
      <param name="odom_frame_id"        type="string" value="odom"/>
      <param name="odom_frame_id_init"   type="string" value=""/>
      <param name="publish_tf"           type="bool"   value="true"/>
      <param name="gen_scan"             type="bool"   value="true"/>
      <param name="ground_truth_frame_id"       type="string" value=""/>
      <param name="ground_truth_base_frame_id"  type="string" value=""/>
      <param name="odom_tf_angular_variance" type="double" value="0"/>
      <param name="odom_tf_linear_variance"  type="double" value="0"/>
      <param name="odom_sensor_sync"         type="bool"   value="0"/>
      <param name="wait_for_transform_duration"  type="double"   value="0.2"/>
      <param name="database_path"        type="string" value="~/.ros/rtabmap.db"/>
      <param name="config_path"          type="string" value=""/>
      <param name="queue_size"           type="int" value="10"/>
      <param name="landmark_linear_variance"   type="double" value="0.0001"/>
      <param name="landmark_angular_variance"  type="double" value="9999"/> 
      <param name="gen_depth"                  type="bool"   value="false" />
      <param name="gen_depth_decimation"       type="int"    value="1" />
      <param name="gen_depth_fill_holes_size"  type="int"    value="0" />
      <param name="gen_depth_fill_iterations"  type="int"    value="1" />
      <param name="gen_depth_fill_holes_error" type="double" value="0.1" />

      <remap from="scan"                   to="/scan_multi"/>
      <remap from="tag_detections"         to="/tag_detections"/>
      <remap from="fiducial_transforms"    to="/fiducial_transforms"/>
      <remap from="odom"                   to="/odom"/>
      <remap from="imu"                    to="/imu/data"/>

    <param name="proj_max_height" value="1.0"/>

    <param name="RGBD/NeighborLinkRefining" type="string" value="true"/>
        <param name="RGBD/ProximityBySpace"     type="string" value="true"/>
        <param name="RGBD/AngularUpdate"        type="string" value="0.05"/>
        <param name="RGBD/LinearUpdate"         type="string" value="0.05"/>
        <param name="RGBD/OptimizeFromGraphEnd" type="string" value="false"/>
        <param name="Grid/FromDepth"            type="string" value="true"/> <!-- occupancy grid from depth -->
        <param name="Reg/Force3DoF"             type="string" value="true"/>
        <param name="Reg/Strategy"              type="string" value="1"/> <!-- 1=ICP -->

        <!-- ICP parameters -->
        <param name="Icp/VoxelSize"                 type="string" value="0.05"/>
        <param name="Icp/MaxCorrespondenceDistance" type="string" value="0.1"/>

    <param name="RGBD/ProximityPathMaxNeighbors" type="string" value="10"/>

      <!-- 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>

  </group>

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

</launch>

I took a screenshot of tegrastats just before it shuts down.

tegrastats
matlabbe commented 1 year ago

If the computer is shutting down, I feel it is more a power problem. You may try another power supply adapter or check for related issues on Nvidia forums about AGX shutting down on high CPU load.