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