Head Pose
Overview
Head pose is the head’s position (x, y, z in meters) and orientation (quaternion w, x, y, z) in the world frame. One message is published per frame, time-aligned with body and hand pose.
Coordinate Frame
- Reference frame: World.
- Axes: X forward, Y left, Z up (right-handed).
- Units: Position in meters.
- Orientation: Quaternion in w, x, y, z order.
Local coordinate orientations of head, hands, and body root (pelvis) in the world frame. Red, green, blue arrows denote X, Y, Z axes at each frame.
Topic & Message Type
- Topic:
/pose/head_pose - Message type:
pose.HeadPoseFrame - Encoding:
protobuf
HeadPoseFrame uses pose_common for the transform: each message has a header and one Transform (position + quaternion). The head pose is transforms[0].
Message definition (head pose, one message per frame):
syntax = "proto3";
package pose;
import "common/header.proto";
import "pose/pose_common.proto";
message HeadPoseFrame {
.common.header.Header header = 1;
repeated pose.common.Transform transforms = 2;
}
Transform type (from pose/pose_common.proto):
syntax = "proto3";
package pose.common;
message Quaternion {
double w = 1;
double x = 2;
double y = 3;
double z = 4;
}
message Transform {
Quaternion quat = 1;
double x = 2;
double y = 3;
double z = 4;
}