Autoware.Auto
euclidean_cluster.hpp File Reference

This file defines the euclidean cluster algorithm for object detection. More...

#include <euclidean_cluster/visibility_control.hpp>
#include <autoware_auto_perception_msgs/msg/bounding_box_array.hpp>
#include <autoware_auto_perception_msgs/msg/detected_objects.hpp>
#include <autoware_auto_perception_msgs/msg/point_clusters.hpp>
#include <geometry/spatial_hash.hpp>
#include <common/types.hpp>
#include <limits>
#include <string>
#include <utility>
#include <vector>
Include dependency graph for euclidean_cluster.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  autoware::perception::segmentation::euclidean_cluster::PointXYZI
 Simple point struct for memory mapping to and from PointCloud2 type. More...
 
class  autoware::perception::segmentation::euclidean_cluster::PointXYZIR
 Helper point for which euclidean distance is computed only once. More...
 
class  autoware::perception::segmentation::euclidean_cluster::FilterConfig
 
class  autoware::perception::segmentation::euclidean_cluster::Config
 Configuration class for euclidean cluster In the future this can become a base class with subclasses defining different threshold functions. This configuration's threshold function currently assumes isotropy, and minor details in the clustering implementation also assume this property. More...
 
class  autoware::perception::segmentation::euclidean_cluster::EuclideanCluster
 implementation of euclidean clustering for point cloud segmentation This clas implicitly projects points onto a 2D (x-y) plane, and segments according to euclidean distance. This can be thought of as a graph-based approach where points are vertices and edges are defined by euclidean distance The input to this should be nonground points pased through a voxel grid. More...
 

Namespaces

 autoware
 This file defines the lanelet2_map_provider_node class.
 
 autoware::perception
 Perception related algorithms and functionality, such as those acting on 3D lidar data, camera data, radar, or ultrasonic information.
 
 autoware::perception::segmentation
 
 autoware::perception::segmentation::euclidean_cluster
 Supporting classes for euclidean clustering, an object detection algorithm.
 
 autoware::perception::segmentation::euclidean_cluster::details
 Common euclidean cluster functions not intended for external use.
 
 autoware::common
 
 autoware::common::geometry
 
 autoware::common::geometry::point_adapter
 Temporary namespace for point adapter methods, for use with nonstandard point types.
 

Typedefs

using autoware::perception::segmentation::euclidean_cluster::HashConfig = autoware::common::geometry::spatial_hash::Config2d
 
using autoware::perception::segmentation::euclidean_cluster::Hash = autoware::common::geometry::spatial_hash::SpatialHash2d< PointXYZIR >
 
using autoware::perception::segmentation::euclidean_cluster::Clusters = autoware_auto_perception_msgs::msg::PointClusters
 
using autoware::perception::segmentation::euclidean_cluster::details::BoundingBox = autoware_auto_perception_msgs::msg::BoundingBox
 
using autoware::perception::segmentation::euclidean_cluster::details::BoundingBoxArray = autoware_auto_perception_msgs::msg::BoundingBoxArray
 
using autoware::perception::segmentation::euclidean_cluster::details::DetectedObjects = autoware_auto_perception_msgs::msg::DetectedObjects
 

Enumerations

enum  autoware::perception::segmentation::euclidean_cluster::details::BboxMethod { autoware::perception::segmentation::euclidean_cluster::details::BboxMethod::Eigenbox, autoware::perception::segmentation::euclidean_cluster::details::BboxMethod::LFit }
 

Functions

EUCLIDEAN_CLUSTER_PUBLIC BoundingBoxArray autoware::perception::segmentation::euclidean_cluster::details::compute_bounding_boxes (Clusters &clusters, const BboxMethod method, const bool compute_height, const bool size_filter=false, const FilterConfig &filter_config={0.0F, 0.0F, 0.0F, std::numeric_limits< float >::max(), std::numeric_limits< float >::max(), std::numeric_limits< float >::max()})
 Compute bounding boxes from clusters. More...
 
EUCLIDEAN_CLUSTER_PUBLIC DetectedObjects autoware::perception::segmentation::euclidean_cluster::details::convert_to_detected_objects (const BoundingBoxArray &boxes)
 Convert this bounding box to a DetectedObjects message. More...
 
EUCLIDEAN_CLUSTER_PUBLIC DetectedObjects autoware::perception::segmentation::euclidean_cluster::details::convert_to_polygon_prisms (const Clusters &clusters)
 Convert this clusters to polygon prisms as a DetectedObjects message. More...
 
template<>
EUCLIDEAN_CLUSTER_PUBLIC auto autoware::common::geometry::point_adapter::x_ (const perception::segmentation::euclidean_cluster::PointXYZIR &pt)
 
template<>
EUCLIDEAN_CLUSTER_PUBLIC auto autoware::common::geometry::point_adapter::y_ (const perception::segmentation::euclidean_cluster::PointXYZIR &pt)
 
template<>
EUCLIDEAN_CLUSTER_PUBLIC auto autoware::common::geometry::point_adapter::z_ (const perception::segmentation::euclidean_cluster::PointXYZIR &pt)
 

Detailed Description

This file defines the euclidean cluster algorithm for object detection.