# TrackedObject — a single tracked moving obstacle.
#
# predicted_path[i] is the estimated pose at predicted_times[i] seconds from now.
# All poses are in the same frame as header.frame_id (typically 'odom').

std_msgs/Header header

uint32 object_id               # stable ID across frames (monotonically increasing)

geometry_msgs/PoseWithCovariance pose    # current best-estimate pose (x, y, yaw)
geometry_msgs/Vector3            velocity # vx, vy in m/s (vz = 0 for ground objects)

geometry_msgs/Pose[] predicted_path   # future positions at predicted_times
float32[]            predicted_times  # seconds from header.stamp for each pose

float32 speed_mps    # scalar |v|
float32 confidence   # 0.0–1.0 (higher after more confirmed frames)

uint32 age_frames    # frames since first detection
uint32 hits          # number of successful associations
bool   is_valid      # false if in tentative / just-created state
