A launch file request for a 3D laser issue 359

classic Classic list List threaded Threaded
2 messages Options
acp
Reply | Threaded
Open this post in threaded view
|

A launch file request for a 3D laser issue 359

acp
This post was updated on .
Dear People,


I have found this issue.

I have tried to run the launch file in ros-noetic and I have added the icp_odometry


This is the updated launch file  to an Asus Xtion Pro:

<include file="$(find openni_launch)/launch/openni.launch"/> 

<group ns="rtabmap">
   
    <node pkg="nodelet" type="nodelet" name="rgbd_sync" args="standalone rtabmap_ros/rgbd_sync">
        <remap from="rgb/image"         to="/camera/rgb/image_rect_color"/>
        <remap from="depth/image"       to="/camera/depth_registered/image_raw"/>
        <remap from="rgb/camera_info"   to="/camera/rgb/camera_info"/>
        <--param name="approx_sync"       value="true"/>
      </node>
     
     
     
       <node pkg="rtabmap_ros" type="icp_odometry" name="icp_odometry" output="screen">
        <remap from="scan_cloud" to="/camera/depth_registered/points"/>
        <--param name="frame_id"        type="string" value="camera_link"/>  
        <--param name="odom_frame_id"   type="string" value="odom"/>
        <--param name="expected_update_rate" type="double" value="30"/>
        <--param name="max_update_rate" value="30"/>
        <--param name="scan_cloud_max_points"       type="int"    value="0"/>
       
        <--param name="publish_tf"          type="bool"   value="true"/>
     
   
       
     
        <--param name="Icp/VoxelSize"                  type="string" value="0.05"/>
        <--param name="Icp/PointToPlaneK"              type="string" value="20"/>
        <--param name="Icp/PointToPlaneRadius"         type="string" value="0"/>
        <--param name="Icp/PointToPlane"               type="string" value="true"/>
        <--param name="Icp/Iterations"                 type="string" value="10"/>
        <--param name="Icp/Epsilon"                    type="string" value="0.001"/>
        <--param name="Icp/MaxTranslation"             type="string" value="3"/>
        <--param name="Icp/MaxCorrespondenceDistance"  type="string" value="0.1"/>
        <--param name="Icp/PM"                         type="string" value="true"/>
        <--param name="Icp/PMOutlierRatio"             type="string" value="0.7"/>
        <--param name="Icp/CorrespondenceRatio"        type="string" value="0.2"/>

               
        <--param name="Odom/ScanKeyFrameThr"       type="string" value="0.9"/>
        <--param name="Odom/Strategy"              type="string" value="0"/>
        <--param name="OdomF2M/ScanSubtractRadius" type="string" value="0.3"/>
       
        <--param name="OdomF2M/ScanMaxSize"        type="string" value="40000"/>
      </node> 
     
     
      <node pkg="rtabmap_ros" type="rtabmap" name="rtabmap" output="screen" args="-d">         
        <--param name="frame_id"             type="string" value="camera_link"/>  
        <--param name="subscribe_depth"      type="bool" value="false"/>
        <--param name="subscribe_rgb"        type="bool" value="false"/>
        <--param name="subscribe_rgbd"       type="bool" value="true"/>
        <--param name="subscribe_scan_cloud" type="bool" value="true"/>
        <--param name="approx_sync"          type="bool" value="true"/>
       
        <remap from="scan_cloud" to="/camera/depth_registered/points"/>
        <remap from="rgbd_image" to="rgbd_image"/>
        <remap from="odom" to="odom"/>
     
       
         <--param name="RGBD/NeighborLinkRefining" type="string" value="true"/>
         <--param name="RGBD/ProximityBySpace"     type="string" value="true"/>
         <--param name="RGBD/AngularUpdate"        type="string" value="0.01"/>
         <--param name="RGBD/LinearUpdate"         type="string" value="0.01"/>
         <--param name="RGBD/OptimizeFromGraphEnd" type="string" value="false"/>
         <--param name="Grid/FromDepth"            type="string" value="false"/>
         <--param name="Reg/Force3DoF"             type="string" value="true"/>
         <--param name="Reg/Strategy"              type="string" value="1"/>

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

</group>



I do have the following issue:

When I run the launch file I get the following warning:


 Odom: ratio=0.000000, std dev=0.000000m|0.000000rad, update time=0.000095s
[ERROR] (2021-06-09 15:38:29.093) RegistrationIcp.cpp:897::computeTransformationImpl() RegistrationIcp cannot do registration with a null guess.
[ WARN] (2021-06-09 15:38:29.093) OdometryF2M.cpp:525::computeTransform() Registration failed: "RegistrationIcp cannot do registration with a null guess."


Then the odometry is very unstable even the Asus sensor is not moving at all, as it can be seen in the Figures.






I am very confuse with so many parameters,  just wondering if it is possible to tune some parameters so  the odometer can be stable and be able to produce a nice 3D map.


Cheers :)


Thank you
Reply | Threaded
Open this post in threaded view
|

Re: A launch file request for a 3D laser issue 359

matlabbe
Administrator
This post was updated on .
Hi,

That issue was for 3D Lidar, not RGB-D cameras. Parameters can be quite different. There is an example here in ROS with a L515: http://official-rtab-map-forum.206.s1.nabble.com/Kinect-For-Azure-L515-ICP-lighting-invariant-mapping-tp7187p7899.html

Note that L515 or Kinect Azure use TOF cameras, which is different from asus's structured light (tof cameras are more accurate).

cheers,
Mathieu