Tracking & Perception Messages (C++)

Object tracking, landmarks, segmentation, and point cloud field types.

Tracking

TypeKey FieldsUse Case
TrackedObjecttrack_id, position[3], velocity[3], confidence, ageMulti-object tracking
TrackingHeaderframe_count, active_tracksTracker metadata
horus::msg::TrackedObject obj{};
obj.track_id = 42;
obj.position[0] = 1.5;  // x meters
obj.position[1] = 0.3;  // y
obj.position[2] = 0.0;  // z
obj.velocity[0] = 0.5;  // vx m/s
obj.confidence = 0.92f;
obj.age = 15;            // frames since first detection

Landmarks

TypeKey FieldsUse Case
Landmarkid, x, y, covariance[4]2D SLAM landmark
Landmark3Dx, y, z, visibility, indexPose estimation (packed)
LandmarkArraynum_landmarks, confidence, bbox_*Body/hand pose output
horus::msg::LandmarkArray pose{};
pose.num_landmarks = 21;    // hand keypoints
pose.dimension = 3;         // 3D
pose.confidence = 0.85f;
pose.bbox_x = 100.0f;       // bounding box
pose.bbox_y = 200.0f;
pose.bbox_width = 80.0f;
pose.bbox_height = 120.0f;

Segmentation

horus::msg::SegmentationMask mask{};
mask.width = 640;
mask.height = 480;
mask.num_classes = 21;    // COCO classes
mask.mask_type = 0;       // 0=semantic, 1=instance
// Pixel data stored separately via Image/TensorPool

Point Cloud Fields

horus::msg::PointField field{};
std::strncpy(reinterpret_cast<char*>(field.name), "x", 15);
field.offset = 0;
field.datatype = 0;   // 0=f32
field.count = 1;

Clock & Time

TypeKey FieldsUse Case
Clocknanoseconds, sourceTime synchronization
TimeReferencetime_ref_ns, source[32]External time source

Input

TypeKey FieldsUse Case
KeyboardInputkey_code, pressed, modifiersKeyboard teleop
JoystickInputaxes[8], buttons[16], num_axes/buttonsGamepad control
AudioFramesamples[4096], sample_rate, channelsAudio processing

See Also