Skip to content

Commit

Permalink
Merge pull request autowarefoundation#1815 from CPFL/feature/shape_es…
Browse files Browse the repository at this point in the history
…timation

Feature/shape estimation
  • Loading branch information
yukkysaito authored Jan 17, 2019
2 parents 76f82f2 + 958805f commit 87e0641
Show file tree
Hide file tree
Showing 38 changed files with 2,220 additions and 230 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ng# Range Vision Fusion
# Range Vision Fusion

The Range Vision Fusion node will try match the objects detected on a range sensor, with the ones obtained from a vision detector.
A match will be considered found if the 3D projection of the object overlaps at least 50% (configurable) over the 2D object detection.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
<arg name="min_truck_dimensions" default="[4,2,2]"/>
<arg name="sync_topics" default="false"/>
<arg name="overlap_threshold" default="0.6"/>
<arg name="use_vector_map" default="false"/>
<arg name="namespace" default="/detection/fusion_tools"/>

<node name="range_vision_fusion_01" pkg="range_vision_fusion" type="range_vision_fusion" output="screen">
<param name="detected_objects_range" value="$(arg detected_objects_range)"/>
Expand All @@ -18,6 +20,22 @@
<param name="overlap_threshold" value="$(arg overlap_threshold)"/>
</node>

<node pkg="detected_objects_visualizer" type="visualize_detected_objects" name="range_vision_visualization_01"
output="screen" ns="/detection/fusion_tools"/>
<group if="$(arg use_vector_map)">
<node name="object_roi_filter_range_fusion" pkg="roi_object_filter" type="roi_object_filter"
output="screen" ns="$(arg namespace)">
<param name="objects_src_topic" value="/objects"/>
<param name="sync_topics" value="false"/>
<param name="exception_list" value="[person, bicycle]"/>
</node>
<node pkg="detected_objects_visualizer" type="visualize_detected_objects" name="range_fusion_visualization_01"
output="screen" ns="$(arg namespace)">
<param name="objects_src_topic" value="/objects_filtered"/>
</node>
</group>
<group unless="$(arg use_vector_map)">
<node pkg="detected_objects_visualizer" type="visualize_detected_objects" name="range_fusion_visualization_01"
output="screen" ns="$(arg namespace)">
<param name="objects_src_topic" value="/objects"/>
</node>
</group>
</launch>
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
/centroid_marker,
/cloud_clusters,
/cluster_centroids,
/cluster_hulls,
/cluster_ids,
/detection/lidar_detector/objects_hulls,
/detection/lidar_detector/objects_markers,
/grid_map_wayarea,
/points_cluster,
/points_ground,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,78 +1,87 @@
<!-- -->
<launch>
<arg name="points_node" default="/points_raw"/><!--CHANGE THIS TO READ WHETHER FROM VSCAN OR POINTS_RAW -->
<arg name="remove_ground" default="true"/>
<arg name="downsample_cloud" default="false"/> <!-- Apply VoxelGrid Filter with the value given by "leaf_size"-->
<arg name="leaf_size" default="0.1"/><!-- Voxel Grid Filter leaf size-->
<arg name="cluster_size_min" default="20"/><!-- Minimum number of points to consider a cluster as valid-->
<arg name="cluster_size_max" default="100000"/><!-- Maximum number of points to allow inside a cluster-->
<arg name="sync" default="false"/>
<arg name="use_diffnormals" default="false"/>
<arg name="pose_estimation" default="true"/>
<arg name="clip_min_height" default="-1.3"/>
<arg name="clip_max_height" default="0.5"/>
<arg name="points_node" default="/points_raw" /><!--CHANGE THIS TO READ WHETHER FROM VSCAN OR POINTS_RAW -->
<arg name="remove_ground" default="true" />
<arg name="downsample_cloud" default="false" /> <!-- Apply VoxelGrid Filter with the value given by "leaf_size"-->
<arg name="leaf_size" default="0.1" /><!-- Voxel Grid Filter leaf size-->
<arg name="cluster_size_min" default="20" /><!-- Minimum number of points to consider a cluster as valid-->
<arg name="cluster_size_max" default="100000" /><!-- Maximum number of points to allow inside a cluster-->
<arg name="sync" default="false" />
<arg name="use_diffnormals" default="false" />
<arg name="pose_estimation" default="true" />
<arg name="clip_min_height" default="-1.3" />
<arg name="clip_max_height" default="0.5" />

<arg name="keep_lanes" default="false"/>
<arg name="keep_lane_left_distance" default="5"/>
<arg name="keep_lane_right_distance" default="5"/>
<arg name="max_boundingbox_side" default="10"/>
<arg name="cluster_merge_threshold" default="1.5"/>
<arg name="clustering_distance" default="0.75"/>
<arg name="keep_lanes" default="false" />
<arg name="keep_lane_left_distance" default="5" />
<arg name="keep_lane_right_distance" default="5" />
<arg name="max_boundingbox_side" default="10" />
<arg name="cluster_merge_threshold" default="1.5" />
<arg name="clustering_distance" default="0.75" />

<arg name="use_vector_map" default="true"/>
<arg name="vectormap_frame" default="map"/>
<arg name="wayarea_gridmap_topic" default="grid_map_wayarea"/>
<arg name="wayarea_gridmap_layer" default="wayarea"/>
<arg name="wayarea_no_road_value" default="255"/>
<arg name="use_vector_map" default="false" />
<arg name="wayarea_gridmap_layer" default="wayarea" />

<arg name="output_frame" default="velodyne"/>
<arg name="output_frame" default="velodyne" />

<arg name="remove_points_upto" default="0.0"/>
<arg name="remove_points_upto" default="0.0" />

<arg name="use_gpu" default="false"/>
<arg name="use_gpu" default="false" />

<arg name="use_multiple_thres" default="false"/>
<arg name="clustering_ranges" default="[15,30,45,60]"/><!-- Distances to segment pointcloud -->
<arg name="clustering_distances"
default="[0.5,1.1,1.6,2.1,2.6]"/><!-- Euclidean Clustering threshold distance for each segment -->
<arg name="use_multiple_thres" default="false"/>
<arg name="clustering_ranges" default="[15,30,45,60]"/><!-- Distances to segment pointcloud -->
<arg name="clustering_distances"
default="[0.5,1.1,1.6,2.1,2.6]"/><!-- Euclidean Clustering threshold distance for each segment -->

<!-- rosrun lidar_tracker euclidean_cluster _points_node:="" -->
<node pkg="lidar_euclidean_cluster_detect" type="lidar_euclidean_cluster_detect"
name="lidar_euclidean_cluster_detect" output="screen">
<param name="points_node"
value="$(arg points_node)"/> <!-- Can be used to select which pointcloud node will be used as input for the clustering -->
<param name="remove_ground" value="$(arg remove_ground)"/>
<param name="downsample_cloud" value="$(arg downsample_cloud)"/>
<param name="leaf_size" value="$(arg leaf_size)"/>
<param name="cluster_size_min" value="$(arg cluster_size_min)"/>
<param name="cluster_size_max" value="$(arg cluster_size_max)"/>
<param name="use_diffnormals" value="$(arg use_diffnormals)"/>
<param name="pose_estimation" value="$(arg pose_estimation)"/>
<param name="keep_lanes" value="$(arg keep_lanes)"/>
<param name="keep_lane_left_distance" value="$(arg keep_lane_left_distance)"/>
<param name="keep_lane_right_distance" value="$(arg keep_lane_right_distance)"/>
<param name="max_boundingbox_side" value="$(arg max_boundingbox_side)"/>
<param name="clip_min_height" value="$(arg clip_min_height)"/>
<param name="clip_max_height" value="$(arg clip_max_height)"/>
<param name="output_frame" value="$(arg output_frame)"/>
<param name="use_vector_map" value="$(arg use_vector_map)"/>
<param name="vectormap_frame" value="$(arg vectormap_frame)"/>
<param name="wayarea_gridmap_topic" value="$(arg wayarea_gridmap_topic)"/>
<param name="wayarea_gridmap_layer" value="$(arg wayarea_gridmap_layer)"/>
<param name="wayarea_no_road_value" value="$(arg wayarea_no_road_value)"/>
<param name="remove_points_upto" value="$(arg remove_points_upto)"/>
<param name="clustering_distance" value="$(arg clustering_distance)"/>
<param name="cluster_merge_threshold" value="$(arg cluster_merge_threshold)"/>
<param name="use_gpu" value="$(arg use_gpu)"/>
<param name="use_multiple_thres" value="$(arg use_multiple_thres)"/>
<param name="clustering_ranges" value="$(arg clustering_ranges)"/><!-- Distances to segment pointcloud -->
<param name="clustering_distances"
value="$(arg clustering_distances)"/><!-- Euclidean Clustering threshold distance for each segment -->
<node pkg="lidar_euclidean_cluster_detect" type="lidar_euclidean_cluster_detect"
name="lidar_euclidean_cluster_detect" output="screen">
<param name="points_node"
value="$(arg points_node)"/> <!-- Can be used to select which pointcloud node will be used as input for the clustering -->
<param name="remove_ground" value="$(arg remove_ground)"/>
<param name="downsample_cloud" value="$(arg downsample_cloud)"/>
<param name="leaf_size" value="$(arg leaf_size)"/>
<param name="cluster_size_min" value="$(arg cluster_size_min)"/>
<param name="cluster_size_max" value="$(arg cluster_size_max)"/>
<param name="use_diffnormals" value="$(arg use_diffnormals)"/>
<param name="pose_estimation" value="$(arg pose_estimation)"/>
<param name="keep_lanes" value="$(arg keep_lanes)"/>
<param name="keep_lane_left_distance" value="$(arg keep_lane_left_distance)"/>
<param name="keep_lane_right_distance" value="$(arg keep_lane_right_distance)"/>
<param name="max_boundingbox_side" value="$(arg max_boundingbox_side)"/>
<param name="clip_min_height" value="$(arg clip_min_height)"/>
<param name="clip_max_height" value="$(arg clip_max_height)"/>
<param name="output_frame" value="$(arg output_frame)"/>
<param name="remove_points_upto" value="$(arg remove_points_upto)"/>
<param name="clustering_distance" value="$(arg clustering_distance)"/>
<param name="cluster_merge_threshold" value="$(arg cluster_merge_threshold)"/>
<param name="use_gpu" value="$(arg use_gpu)"/>
<param name="use_multiple_thres" value="$(arg use_multiple_thres)"/>
<param name="clustering_ranges" value="$(arg clustering_ranges)"/><!-- Distances to segment pointcloud -->
<param name="clustering_distances"
value="$(arg clustering_distances)"/><!-- Euclidean Clustering threshold distance for each segment -->

<remap from="/points_raw" to="/sync_drivers/points_raw" if="$(arg sync)"/>
</node>
<remap from="/points_raw" to="/sync_drivers/points_raw" if="$(arg sync)" />
</node>

<group if="$(arg use_vector_map)">
<node name="object_roi_filter_clustering" pkg="roi_object_filter" type="roi_object_filter"
output="screen" ns="/detection/lidar_detector">
<param name="objects_src_topic" value="/objects"/>
<param name="wayarea_gridmap_layer" value="$(arg wayarea_gridmap_layer)"/>
<param name="sync_topics" value="false"/>
<param name="exception_list" value="[person, bicycle]"/>
</node>
<node pkg="detected_objects_visualizer" type="visualize_detected_objects" name="cluster_detect_visualization_01"
output="screen" ns="/detection/lidar_detector" />
output="screen" ns="/detection/lidar_detector">
<param name="objects_src_topic" value="/objects_filtered"/>
</node>
</group>
<group unless="$(arg use_vector_map)">
<node pkg="detected_objects_visualizer" type="visualize_detected_objects" name="cluster_detect_visualization_01"
output="screen" ns="/detection/lidar_detector">
<param name="objects_src_topic" value="/objects"/>
</node>
</group>

</launch>
Loading

0 comments on commit 87e0641

Please sign in to comment.