table_detection¶
This package uses the primitive_extraction package to extract planes
and determines which of the planes are tables based on size, angle with
respect to floor, shape and height above floor. A list of detected
tables is kept locally and in the mongodb_store and new tables
overlapping with old ones are merged by finding the common convex hull.
All currently found tables can be found by querying all
strands_perception_msgs/Table from the mongodb_store.
The table detection is launched by:
roslaunch table_detection detection.launch cloud:=/pointcloud2/topic,
where /pointcloud2/topic is a point cloud in the frame of reference
of a global map. Currently, the package outputs three visualization
topics in RViz:
/primitive_extraction/primitive_marker_array- All detected planes from the last processed point cloud asvisualization_msgs/MarkerArray./table_detection/primitive_marker_array- All detected tables from the last processed point cloud asvisualization_msgs/MarkerArray./primitives_to_tables/table_markers- Tracked tables that have been determined to be new instances or merged with an old one, published asvisualization_msgs/Marker.
The launch file has a bunch of options and parameters, notably for determining what is a table:
min_height- Minimum height of a table plane.max_height- Maximum height of a table plane.max_angle- Maximum deviation of table normal from straight up.min_side_ratio- Minimum ratio of shortest side divided by longest side.min_area- Minimum area of table plane.
Original page: https://github.com/strands-project/strands_tabletop_perception/blob/hydro-devel/table_detection/README.md