autoware::perception::tracking Namespace Reference




class  Associated
 This class describes an associated object array of a certain message type. More...
struct  Association
 A struct that represents an association. It holds an enum that indicates the type of a match and an index of an object to which this association is matched. More...
struct  AssociatorResult
 Struct to store results after the assignment is done. More...
struct  CameraIntrinsics
 Camera intrinsic parameters. More...
class  CameraModel
 This model represents a camera in 3D space and can project 3D shapes into an image. More...
struct  ClassificationVariable
 A struct to create a variable type from a given uint8_t value. More...
class  DataAssociationConfig
 Class to create configuration parameters for data association. More...
class  DetectedObjectAssociator
 Class to perform data association between existing tracks and new detections using mahalanobis distance and hungarian assigner. More...
struct  DetectedObjectsUpdateResult
 Output of MultiObjectTracker::update. More...
class  GenericClassificationTracker
 A class for tracking classification information that works on any set of variables. More...
class  GreedyRoiAssociator
 Class to associate the detections and tracks in euclidean space to ROIs in image space on a first-come-first-serve manner. More...
struct  GreedyRoiAssociatorConfig
struct  IOUHeuristic
 Simple heuristic functor that returns the IoU between two shapes. More...
class  LidarClusterIfVisionPolicy
 Class implementing LidarIfVision track creation policy. More...
class  LidarOnlyPolicy
class  MultiObjectTracker
 A class for multi-object tracking. More...
struct  MultiObjectTrackerOptions
 Options for object tracking, with sensible defaults. More...
struct  Projection
struct  TrackCreationResult
 Struct to be used as the return value from track creation process. More...
class  TrackCreator
 Class to create new tracks based on a predefined policy and unassociated detections. More...
class  TrackedObject
 Internal class containing the object state and other information. More...
struct  TrackedObjects
 A collection of tracked objects. More...
struct  VisionPolicyConfig
 Struct defining configuration parameters for LidarIfVision policy. More...


using ClassificationTracker = GenericClassificationTracker< ObjectClassificationState >
using assigner_idx_t = autoware::fusion::hungarian_assigner::index_t
using Associations = std::vector< Association >
using ObjectsWithAssociations = Associated< autoware_auto_perception_msgs::msg::DetectedObjects >
using RoisWithAssociations = Associated< autoware_auto_perception_msgs::msg::ClassifiedRoiArray >
using TracksWithAssociations = Associated< autoware_auto_perception_msgs::msg::ClassifiedRoiArray >
using ObjectClassificationState = common::state_vector::FloatState< ClassificationVariable< autoware_auto_perception_msgs::msg::ObjectClassification::UNKNOWN >, ClassificationVariable< autoware_auto_perception_msgs::msg::ObjectClassification::CAR >, ClassificationVariable< autoware_auto_perception_msgs::msg::ObjectClassification::TRUCK >, ClassificationVariable< autoware_auto_perception_msgs::msg::ObjectClassification::BUS >, ClassificationVariable< autoware_auto_perception_msgs::msg::ObjectClassification::TRAILER >, ClassificationVariable< autoware_auto_perception_msgs::msg::ObjectClassification::MOTORCYCLE >, ClassificationVariable< autoware_auto_perception_msgs::msg::ObjectClassification::BICYCLE >, ClassificationVariable< autoware_auto_perception_msgs::msg::ObjectClassification::PEDESTRIAN > >
 A common state used for classification in the tracker. More...


enum  TrackerUpdateStatus {
  TrackerUpdateStatus::Ok, TrackerUpdateStatus::WentBackInTime, TrackerUpdateStatus::DetectionFrameMismatch, TrackerUpdateStatus::TrackerFrameMismatch,
  TrackerUpdateStatus::FrameNotGravityAligned, TrackerUpdateStatus::InvalidShape
 A return code for the tracker update. More...
enum  Matched { Matched::kNothing, Matched::kOtherDetection, Matched::kExistingTrack, Matched::kNewTrack }
 This enum holds various values that signify a match to a certain modality. More...
enum  TrackCreationPolicy { TrackCreationPolicy::LidarClusterOnly, TrackCreationPolicy::LidarClusterIfVision }


template<typename StateT >
static void assert_indices_match_classification_constants ()
 Check that all the indices in the state vector correspond to the integral constant that the variable type represents. More...


constexpr uint16_t MAX_NUM_TRACKS = 256U
 Maximum number of tracks possible in every timestep. More...
constexpr uint16_t NUM_OBJ_POSE_DIM = 2U
 Number of dimensions needed to represent object position for tracking (x and y) More...
template class TRACKING_PUBLIC MultiObjectTracker< TrackCreator< LidarOnlyPolicy > >
template class TRACKING_PUBLIC MultiObjectTracker< TrackCreator< LidarClusterIfVisionPolicy > >

Typedef Documentation

◆ assigner_idx_t

◆ Associations

◆ ClassificationTracker

◆ ObjectClassificationState

using autoware::perception::tracking::ObjectClassificationState = typedef common::state_vector::FloatState< ClassificationVariable<autoware_auto_perception_msgs::msg::ObjectClassification::UNKNOWN>, ClassificationVariable<autoware_auto_perception_msgs::msg::ObjectClassification::CAR>, ClassificationVariable<autoware_auto_perception_msgs::msg::ObjectClassification::TRUCK>, ClassificationVariable<autoware_auto_perception_msgs::msg::ObjectClassification::BUS>, ClassificationVariable<autoware_auto_perception_msgs::msg::ObjectClassification::TRAILER>, ClassificationVariable<autoware_auto_perception_msgs::msg::ObjectClassification::MOTORCYCLE>, ClassificationVariable<autoware_auto_perception_msgs::msg::ObjectClassification::BICYCLE>, ClassificationVariable<autoware_auto_perception_msgs::msg::ObjectClassification::PEDESTRIAN> >

A common state used for classification in the tracker.

◆ ObjectsWithAssociations

◆ RoisWithAssociations

using autoware::perception::tracking::RoisWithAssociations = typedef Associated<autoware_auto_perception_msgs::msg::ClassifiedRoiArray>

◆ TracksWithAssociations

using autoware::perception::tracking::TracksWithAssociations = typedef Associated<autoware_auto_perception_msgs::msg::ClassifiedRoiArray>

Enumeration Type Documentation

◆ Matched

This enum holds various values that signify a match to a certain modality.


Nothing was matched.


Matched another detection.


Matched an existing track.


Matched a new track.

◆ TrackCreationPolicy


Create tracks from every unassociated lidar cluster.


Create tracks from unassociated lidar clusters only if they have associated vision detections.

◆ TrackerUpdateStatus

A return code for the tracker update.




The provided detections were older than the previous detections. The Kalman filter can only extrapolate forward, so this is an error.


The frame of the detections does not match the source frame of the transform.


The target frame of the transform does not match the frame in which the tracker operates.


The provided detections are not in a usable frame – the detection frame must be gravity-aligned.


At least one of the provided detections has an invalid shape.

Function Documentation

◆ assert_indices_match_classification_constants()

template<typename StateT >
static void autoware::perception::tracking::assert_indices_match_classification_constants ( )

Check that all the indices in the state vector correspond to the integral constant that the variable type represents.

This check is needed to ensure that all the values from ObjectClassification constants are covered by the variables used in the state. The function itself does nothing important but it will not compile if there is a mismatch in variable values.

Template Parameters
StateTA state that needs checking.

Variable Documentation


constexpr uint16_t autoware::perception::tracking::MAX_NUM_TRACKS = 256U

Maximum number of tracks possible in every timestep.

◆ MultiObjectTracker< TrackCreator< LidarClusterIfVisionPolicy > >

◆ MultiObjectTracker< TrackCreator< LidarOnlyPolicy > >


constexpr uint16_t autoware::perception::tracking::NUM_OBJ_POSE_DIM = 2U

Number of dimensions needed to represent object position for tracking (x and y)