Go to the documentation of this file.
21 #ifndef TRACKING__MULTI_OBJECT_TRACKER_HPP_
22 #define TRACKING__MULTI_OBJECT_TRACKER_HPP_
30 #include <autoware_auto_perception_msgs/msg/bounding_box_array.hpp>
31 #include <autoware_auto_perception_msgs/msg/detected_object.hpp>
32 #include <autoware_auto_perception_msgs/msg/point_clusters.hpp>
33 #include <autoware_auto_perception_msgs/msg/tracked_object.hpp>
34 #include <autoware_auto_perception_msgs/msg/tracked_objects.hpp>
36 #include <geometry_msgs/msg/transform_stamped.hpp>
38 #include <nav_msgs/msg/odometry.hpp>
42 #include <tf2/buffer_core.h>
83 autoware_auto_perception_msgs::msg::TrackedObjects
tracks;
100 std::chrono::nanoseconds pruning_time_threshold = std::chrono::nanoseconds::max();
102 std::size_t pruning_ticks_threshold = std::numeric_limits<std::size_t>::max();
104 std::string frame =
"map";
108 template<
class TrackCreatorT>
112 using ClustersMsg = autoware_auto_perception_msgs::msg::PointClusters;
114 using DetectedObjectKinematics = autoware_auto_perception_msgs::msg::DetectedObjectKinematics;
116 using ClassifiedRoiArrayMsg = autoware_auto_perception_msgs::msg::ClassifiedRoiArray;
117 using TrackedObjectsMsg = autoware_auto_perception_msgs::msg::TrackedObjects;
123 TrackCreatorT track_creator,
124 const tf2::BufferCore & tf2_buffer);
141 const DetectedObjectsMsg & detections,
155 const ClustersMsg & incoming_clusters,
160 void update(
const ClassifiedRoiArrayMsg & rois);
165 const DetectedObjectsMsg & detections,
172 std::chrono::system_clock::time_point m_last_update;
183 TrackCreatorT m_track_creator;
188 const ClassifiedRoiArrayMsg &)
190 throw std::runtime_error(
"Trying to update a LiDAR-only tracker with a vision message.");
197 #endif // TRACKING__MULTI_OBJECT_TRACKER_HPP_
@ InvalidShape
At least one of the provided detections has an invalid shape.
A collection of tracked objects.
Definition: include/tracking/tracked_object.hpp:158
TrackerUpdateStatus status
Indicates the success or failure, and kind of failure, of the tracking operation.
Definition: multi_object_tracker.hpp:87
Class to associate the detections and tracks in euclidean space to ROIs in image space on a first-com...
Definition: greedy_roi_associator.hpp:67
Class to perform data association between existing tracks and new detections using mahalanobis distan...
Definition: detected_object_associator.hpp:75
This file includes common type definition.
builtin_interfaces::msg::Time related_rois_stamp
Timestamps of ROI msgs used for track creation. Useful for debugging purposes.
Definition: multi_object_tracker.hpp:89
A class for multi-object tracking.
Definition: multi_object_tracker.hpp:109
Output of MultiObjectTracker::update.
Definition: multi_object_tracker.hpp:80
This file defines the lanelet2_map_provider_node class.
Definition: quick_sort.hpp:24
std::vector< std::size_t > unassigned_clusters_indices
Indices of unassigned clusters.
Definition: multi_object_tracker.hpp:85
GreedyRoiAssociatorConfig vision_association_config
Vision ROI association parameters.
Definition: multi_object_tracker.hpp:98
autoware_auto_perception_msgs::msg::TrackedObjects tracks
The existing tracks output.
Definition: multi_object_tracker.hpp:83
Options for object tracking, with sensible defaults.
Definition: multi_object_tracker.hpp:93
autoware_auto_perception_msgs::msg::BoundingBoxArray BoundingBoxArray
Definition: tf2_autoware_auto_msgs.hpp:38
Definition: greedy_roi_associator.hpp:59
@ DetectionFrameMismatch
The frame of the detections does not match the source frame of the transform.
autoware_auto_vehicle_msgs::msg::VehicleOdometry Odometry
Definition: safety_state_machine.hpp:50
@ TrackerFrameMismatch
The target frame of the transform does not match the frame in which the tracker operates.
This file defines the multi_object_tracking class.
Class to create configuration parameters for data association.
Definition: detected_object_associator.hpp:40
DataAssociationConfig object_association_config
Detected object association parameters.
Definition: multi_object_tracker.hpp:96
TrackerUpdateStatus
A return code for the tracker update.
Definition: multi_object_tracker.hpp:61
This file holds a collection of states that are commonly used in this package.
autoware_auto_perception_msgs::msg::DetectedObjects DetectedObjects
Definition: euclidean_cluster_node.cpp:39