using RobotNet10.Shared.Geometry; namespace RobotNet10.RobotApp.Motion; /// /// Cấu hình cho một bánh xe trong DifferentialDrive /// public class WheelConfiguration { /// /// Device ID của servo điều khiển bánh xe này /// public string DeviceId { get; set; } = string.Empty; /// /// Vị trí bánh xe so với tâm robot (Pose: x, y, orientation) /// Đơn vị: mét /// public Pose Position { get; set; } /// /// Đường kính bánh xe (mét) /// public double WheelDiameter { get; set; } /// /// Số xung encoder trên 1 vòng quay của bánh xe /// public int PulsesPerRevolution { get; set; } /// /// Polarity của encoder/motor: /// - false (default): Velocity dương → bánh xe roll forward theo roll direction của nó /// - true: Velocity dương → bánh xe roll backward (encoder/motor đấu ngược) /// public bool IsReversed { get; set; } = false; } /// /// Cấu hình cho DifferentialDrive /// public class DifferentialDriveConfiguration { /// /// Cấu hình bánh xe trái /// public WheelConfiguration LeftWheel { get; set; } = new(); /// /// Cấu hình bánh xe phải /// public WheelConfiguration RightWheel { get; set; } = new(); }