namespace RobotNet10.RobotApp.Client.Shared.Motion; /// /// DTO cho thông tin Odometry từ IOdometryEstimator /// SignalR serialization-friendly version using simple properties /// instead of System.Numerics types which don't serialize properly with System.Text.Json /// public class OdometryDto { /// /// Timestamp của pose /// public DateTime Timestamp { get; set; } /// /// Frame ID (header.frame_id, parent frame, typically "odom") /// public string FrameId { get; set; } = "odom"; /// /// Child frame ID (typically "base_link" or "base_footprint") - cùng giá trị gửi lên XLOC /// public string ChildFrameId { get; set; } = "base_link"; /// /// Position X (meters) /// public double PositionX { get; set; } /// /// Position Y (meters) /// public double PositionY { get; set; } /// /// Position Z (meters) /// public double PositionZ { get; set; } /// /// Orientation Quaternion X /// public double OrientationX { get; set; } /// /// Orientation Quaternion Y /// public double OrientationY { get; set; } /// /// Orientation Quaternion Z /// public double OrientationZ { get; set; } /// /// Orientation Quaternion W /// public double OrientationW { get; set; } /// /// Tần số update odometry hiện tại (Hz) /// public double UpdateFrequency { get; set; } /// /// Vận tốc tuyến tính X (m/s) - hướng tiến /// public double LinearVelocityX { get; set; } /// /// Vận tốc tuyến tính Y (m/s) /// public double LinearVelocityY { get; set; } /// /// Vận tốc tuyến tính Z (m/s) /// public double LinearVelocityZ { get; set; } /// /// Vận tốc góc X (rad/s) /// public double AngularVelocityX { get; set; } /// /// Vận tốc góc Y (rad/s) /// public double AngularVelocityY { get; set; } /// /// Vận tốc góc Z (rad/s) - quay quanh trục dọc /// public double AngularVelocityZ { get; set; } }