Odometry - Registration Failed: Not enough inliers 0/20

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

Odometry - Registration Failed: Not enough inliers 0/20

marlu
This post was updated on .
Hi there!
I test Rtabmap odometry by launching a camera node and rtabmap_odom node (see below). Both RGB and depth topics are running on approx. 30 Hz in quite a feature-rich surrounding. Odometry works while moving the sensor very slowly (a few centimeters/degrees per second), but gets lost while moving faster complaining about not enough inliers:

OdometryF2M.cpp:557::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=26) between -1 and 1409

Currently, the camera`s onboard IMU is not active, so odometry runs on pure RGB and depth data. Are there any settings recommendations for Rtabmap in conjunction with Luxonis OAK-D-Pro camera or for this particular case?


Launch file:
<?xml version="1.0"?>
<launch>

    <arg name="camera_name"                         default="oak_pro" />
    <arg name="xsens_enable"                        default="false" />
    <arg name="args"                                default="" />
    <arg name="rgb_topic"                           default="/$(arg camera_name)/rgb/image_raw" />
    <arg name="depth_topic"                         default="/$(arg camera_name)/stereo/image_raw" />
    <arg name="camera_info_topic"                   default="/$(arg camera_name)/rgb/camera_info" />
    <arg name="imu_topic"                           default="/imu/data" />
    <arg name="frame_id"                            default="oak-d-base-frame" />
    <arg name="approx_sync"                         default="true" />
    <arg name="approx_sync_max_interval"            default="0.01" />
    <arg name="use_sim_time"                        default="false"/>

    <node pkg="rtabmap_odom" type="rgbd_odometry" name="rgbd_odometry" output="screen">
        <remap from="rgb/image"             to="$(arg rgb_topic)"/>
        <remap from="depth/image"           to="$(arg depth_topic)"/>
        <remap from="rgb/camera_info"       to="$(arg camera_info_topic)"/>
        <param name="frame_id"              type="string"   value="$(arg frame_id)"/>
        <param name="approx_sync"           type="bool"     value="$(arg approx_sync)"/>
        <param name="approx_sync_max_interval"              value="$(arg approx_sync_max_interval)"/>
        <param name="Odom/Strategy"                         value="0"/>
        <param name="Vis/CorType"                           value="0"/>     <!-- Correspondences: 0=Features Matching, 1=Optical Flow -->
        <param name="GFTT/MinDistance" type="string" value="10"/>           <!-- default 5 pixels -->

    </node>

</launch>
Reply | Threaded
Open this post in threaded view
|

Re: Odometry - Registration Failed: Not enough inliers 0/20

matlabbe
Administrator
Humm, is the depth image aligned with the color camera? I don't have an OAK-D-Pro on hand, only an OAK-D. Don't know how much the depthai-ROS support is different between OAK-D and OAK-D Pro, but examples here worked for OAK-D (note that IMU is optional).

How is oak-d pro node started?

cheers,
Mathieu