Open samialperen opened 2 years ago
Hi, I am trying to use rtabmap/obstacle_detection nodelet with oak-d cameras outdoors, but the performance is not great. How can I improve it? I tried to fine-tune some parameters, but it still did not help much.
Here is an example rosbag file: https://easyupload.io/u0ypqb
Here is the launch file that I am using
<launch> <!-- Parameters --> <arg name="use_rosbag" default="false"/> <arg name="gen_cloud" default="true"/> <!-- Generate Point Cloud --> <arg name="gen_queue_size" default="100"/> <arg name="gen_approx_sync" default="false"/> > <arg name="gen_decimation" default="1"/> <arg name="gen_voxel_size" default="0.00"/> <arg name="gen_min_depth" default="1.2"/> <arg name="gen_max_depth" default="0.0"/> <arg name="gen_noise_filter_radius" default="0.1"/> <!-- play with noise filtering more--> <arg name="gen_noise_filter_min_neighbors" default="1000"/> <arg name="gen_normal_k" default="0"/> <!-- check normal filtering--> <arg name="gen_normal_radius" default="0.1"/> <arg name="gen_filter_nans" default="true"/> <arg name="gen_roi_ratios" default="0.0 0.0 0.0 0.0"/> <!-- Convert Compressed Depth to Depth (Only for rosbags)--> <param if="$(arg use_rosbag)" name="/use_sim_time" value="true"/> <node if="$(arg use_rosbag)" pkg="image_transport" type="republish" name="republish_depth" args="compressedDepth in:=/stereo_inertial_publisher/stereo/image raw out:=/stereo_inertial_publisher/stereo/image"/> <node pkg="nodelet" type="nodelet" name="oak_nodelet" args="manager"/> <!-- <node if="$(eval arg('gen_cloud') == true)" pkg="nodelet" type="nodelet" name="depth_image_to_pointcloud" args="load depth_image_proc/point_cloud_xyz oak_nodelet"> <param name="queue_size" value="100"/> <remap from="camera_info" to="/stereo_inertial_publisher/stereo/camera_info"/> <remap from="image_rect" to="/stereo_inertial_publisher/stereo/image"/> <remap from="points" to="/oak/point_cloud"/> </node> --> <!-- Create Point Cloud from Depth --> <node if="$(arg gen_cloud)" pkg="nodelet" type="nodelet" name="gen_cloud_from_depth" args="load rtabmap_ros/point_cloud_xyz oak_nodelet"> <remap from="depth/image" to="/stereo_inertial_publisher/stereo/image"/> <remap from="depth/camera_info" to="/stereo_inertial_publisher/stereo/camera_info"/> <remap from="cloud" to="/oak/point_cloud" /> <param name="queue_size" type="int" value="$(arg gen_queue_size)"/> <param name="approx_sync" type="bool" value="$(arg gen_approx_sync)"/> <param name="decimation" type="double" value="$(arg gen_decimation)"/> <param name="voxel_size" type="double" value="$(arg gen_voxel_size)"/> <param name="min_depth" type="double" value="$(arg gen_min_depth)"/> <param name="max_depth" type="double" value="$(arg gen_max_depth)"/> <param name="noise_filter_radius" type="double" value="$(arg gen_noise_filter_radius)"/> <param name="noise_filter_min_radius" type="int" value="$(arg gen_noise_filter_min_neighbors)"/> <param name="normal_k" type="int" value="$(arg gen_normal_k)"/> <param name="normal_radius" type="double" value="$(arg gen_normal_radius)"/> <param name="filter_nans" type="bool" value="$(arg gen_filter_nans)"/> <param name="roi_ratios" type="string" value="$(arg gen_roi_ratios)"/> </node> <!-- Transforms --> <!-- <node pkg="nodelet" type="nodelet" name="pointcloud_transformer" args="load transform_pointcloud/transformPointcloud oak_nodelet"> <param name="to_frame" value="base_link"/> <remap from="~input_pcl2" to="/oak/point_cloud"/> </node> --> <!-- Create point cloud for the local planner --> <node pkg="nodelet" type="nodelet" name="obstacles_detection" args="load rtabmap_ros/obstacles_detection oak_nodelet"> <!-- Input --> <remap from="cloud" to="/oak/point_cloud"/> <!-- Outputs --> <remap from="ground" to="/cassie/ground"/> <remap from="obstacles" to="/cassie/obstacles"/> <param name="frame_id" type="string" value="oak-d-base-frame"/> <param name="queue_size" type="int" value="10"/> <param name="normal_estimation_radius" type="double" value="0.05"/> <param name="Grid/MaxGroundAngle" value="60"/> <param name="min_cluster_size" type="int" value="100"/> <param name="max_obstacles_height" type="double" value="0.0"/> <!-- <param name="Grid/ClusterRadius" type="double" value="0.1"/> <param name="Grid/MinClusterSize" type="int" value="20"/> <param name="Grid/MaxObstacleHeight" type="double" value="1.0"/> <param name="ground_normal_angle" type="double" value="$(eval 3.1415/4)"/> --> </node> </launch>
performance is not great
The rosbag is not available anymore, post screenshots at minimum.
Hi, I am trying to use rtabmap/obstacle_detection nodelet with oak-d cameras outdoors, but the performance is not great. How can I improve it? I tried to fine-tune some parameters, but it still did not help much.
Here is an example rosbag file: https://easyupload.io/u0ypqb
Here is the launch file that I am using