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; }
}