2 RGBD on Jetson performance

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

2 RGBD on Jetson performance

Guglie
Hello matlabbe!

I'm using RTABmap on a Jetson Xavier NX with RGBD odometry.
Do you have any hint to optimize fps?
Odometry is running at 3-7hz occasionally freezing, cameras are publishing correctly rgb and depth at 30hz.
Tested with OpticalFlow odometry as you suggested in another post, but is not gaining much.
Is there a way to use nodelets with zero copy transport in this setup?

 - rtabmap 0.20.8
 - rtabmap_ros 0.20.7
 - ros1-melodic
 - opencv-3.4 built with CUDA

launch (without camera drivers (realsense D400)):
    <group ns="rgbd1">
        <node pkg="nodelet" type="nodelet" name="nodelet_manager1" args="manager"/>
        <node pkg="nodelet" type="nodelet" name="rgbd_sync1" args="load rtabmap_ros/rgbd_sync nodelet_manager1">
            <remap from="rgb/image" to="color/image_raw"/>
            <remap from="depth/image" to="aligned_depth_to_color/image_raw"/>
            <remap from="rgb/camera_info" to="color/camera_info"/>
            <param name="approx" value="false"/>
        </node>
    </group>
    <group ns="rgbd2">
        <node pkg="nodelet" type="nodelet" name="nodelet_manager2" args="manager"/>
        <node pkg="nodelet" type="nodelet" name="rgbd_sync2" args="load rtabmap_ros/rgbd_sync nodelet_manager2">
            <remap from="rgb/image" to="color/image_raw"/>
            <remap from="depth/image" to="aligned_depth_to_color/image_raw"/>
            <remap from="rgb/camera_info" to="color/camera_info"/>
            <param name="approx" value="false"/>
        </node>
    </group>


    <group ns="rtabmap">

        <!-- Odometry -->
        <node pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry" output="screen">
            <remap from="rgbd_image0" to="/rgbd1/rgbd_image"/> 
            <remap from="rgbd_image1" to="/rgbd2/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="Vis/EstimationType" type="string" value="0"/>

            <param name="Odom/Strategy" value="0"/>

            <param name="Odom/InlierDistance" value="0.1" />
            <param name="Odom/MaxDepth" value="0" />

            <param name="Vis/MinInliers" value="10" />

            <!-- maximum features map size, default 2000 -->
            <param name="OdomF2M/MaxSize" type="string" value="500"/> 
            <!-- maximum features extracted by image, default 1000 -->
            <param name="Vis/MaxFeatures" type="string" value="300"/>

            <param name="GFTT/MinDistance" value="7" />
            <param name="Vis/CorGuessWinSize" value="0" />

            <param name="Odom/ResetCountdown" value="1" />
        </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_rgb" 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="map_negative_poses_ignored" type="bool" value="false"/>
            <param name="map_negative_scan_empty_ray_tracing" type="bool" value="false"/>

            <remap from="rgbd_image0" to="/rgbd1/rgbd_image"/>
            <remap from="rgbd_image1" to="/rgbd2/rgbd_image"/>

            <param name="Grid/FromDepth" type="string" value="True"/>
            <param name="Vis/EstimationType" type="string" value="0"/>

            <param name="Odom/InlierDistance" value="0.1" />
            <param name="Odom/MaxDepth" value="10" />
            <param name="Vis/MinInliers" value="10" />
            <param name="Odom/MinInliers" value="10" />

            <param name="Rtabmap/StartNewMapOnLoopClosure" value="true"/>

            <!-- reduce pointcloud noise -->
            <param name="cloud_noise_filtering_radius" value="0.05"/>
            <param name="cloud_noise_filtering_min_neighbors" value="2"/>

        </node>
    </group>