Posted by
gian on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Comparison-between-realsense-D435-vs-T265-vs-T265-D435-dual-setup-tp6456p7008.html
Thank you very much Mathieu !
I used this Voxel plugin and indeed the obstacle is not cleared anymore !
{name: voxel_layer, type: "costmap_2d::VoxelLayer"}
voxel_layer:
origin_z: 0.0
z_resolution: 0.1
z_voxels: 10
but still there is the problem of detection : the robot detects the obstacle only if it is more than
one meter far !!!
I put also negative min_obstacle_height to take into account the distance of the camera from the base_link.
This is the complete costmap :
footprint: [[ 0.15, 0.15], [-0.15, 0.15], [-0.15, -0.15], [ 0.15, -0.15]]
footprint_padding: 0.0
inflation_layer:
inflation_radius: 0.08 # 2xfootprint, it helps to keep the global planned path farther from obstacles
transform_tolerance: 2
obstacle_layer:
obstacle_range: 2.5
raytrace_range: 12
max_obstacle_height: 3
track_unknown_space: true
voxel_layer:
enabled: true
origin_z: 0.0
z_resolution: 0.1
z_voxels: 10
publish_voxel_map: true
footprint_clearing_enabled: false
observation_sources: point_cloud_sensorA point_cloud_sensorB
point_cloud_sensorA: {
sensor_frame: d400_link,
data_type: PointCloud2,
topic: /obstacles_cloud,
expected_update_rate: 0.5,
marking: true,
clearing: true,
min_obstacle_height: -0.7
}
point_cloud_sensorB: {
sensor_frame: d400_link,
data_type: PointCloud2,
topic: /ground_cloud,
expected_update_rate: 0.5,
marking: false,
clearing: true,
min_obstacle_height: -1.0 # make sure the ground is not filtered
}
these are the Grid parameters in rtabmap :
<param name="Grid/MaxObstacleHeight" type="string" value="1" />
<param name="Grid/NoiseFilteringRadius" type="string" value="0.0"/>
<param name="Grid/NoiseFilteringMinNeighbors" type="string" value="5.0"/>
<param name="Grid/FromDepth" type="bool" value="true" />
<!--param name="Grid/DepthDecimation" type="string" value="4"/-->
<param name="Grid/3D" type="bool" value="true" />
<param name="Grid/RayTracing" type="bool" value="true" />
<param name="Grid/NormalsSegmentation" type="string" value="true" />
<param name="Grid/MaxGroundHeight" type="string" value="0.05" />
<param name="Grid/MaxGroundAngle" type="string" value="10" />
<param name="Grid/RangeMax" type="string" value="1" />
<param name="Grid/FootprintHeight" type="string" value="0.1"/>
<param name="Grid/FootprintLength" type="string" value="0.1"/>
<param name="Grid/FootprintWidh" type="string" value="0.1"/>
<param name="Grid/MapFrameProjection" type="bool" value="false"/>
and these the obstacle layer :
<node pkg="nodelet" type="nodelet" name="nodelet_manager" args="manager" />
<node pkg="nodelet" type="nodelet" name="points_xyz_planner" args="load rtabmap_ros/point_cloud_xyz nodelet_manager">
<remap from="depth/image" to="/d400/aligned_depth_to_color/image_raw"/>
<remap from="depth/camera_info" to="/d400/color/camera_info"/>
<remap from="cloud" to="cloudXYZ" />
<param name="decimation" type="int" value="4"/>
<param name="max_depth" type="double" value="3.0"/>
<param name="voxel_size" type="double" value="0.05"/>
<param name="approx_sync" type="bool" value="false"/>
</node>
<node pkg="nodelet" type="nodelet" name="obstacles_detection" args="load rtabmap_ros/obstacles_detection nodelet_manager">
<remap from="cloud" to="cloudXYZ"/>
<remap from="obstacles" to="/obstacles_cloud"/>
<remap from="ground" to="/ground_cloud"/>
<param name="frame_id" type="string" value="base_link"/>
<param name="map_frame_id" type="string" value="map"/>
<param name="wait_for_transform" type="bool" value="true"/>
<param name="Grid/ClusterRadius" type="string" value="0.2"/>
<param name="Grid/GroundIsObstacle" type="string" value="false"/>
Do you have any advice ? Sorry for one more post off topic,this will be the last one off topic.
PS regarding VIO , I didn't try VINS fusion , instead with d435i I tried
https://github.com/introlab/rtabmap_ros/blob/master/launch/tests/sensor_fusion.launch , with robot localization inside, and it works for me at very low speed of the robot
So I would ask you, in your experience , how would be possible to make the odometry more resilient to speed of the robot ( with some calibration of parameters or the camera/imu in robot localization or adding maybe Vins Fusion ...I try to guess !)
Thanks a lot for all !
cheers
gian