using RobotNet10.Shared.Geometry; namespace RobotNet10.RobotApp.Motion; /// /// Interface cho Odometry Estimator - tính toán tọa độ odometry từ vị trí các bánh xe /// public interface IOdometryEstimator { /// /// Lấy pose hiện tại của robot (odometry) /// Pose CurrentPose { get; } /// /// Tần suất cập nhật odometry (Hz), dùng cho UI/telemetry tương thích ngược. /// double UpdateFrequency => 0; /// /// Reset odometry về vị trí ban đầu /// void Reset(); /// /// Reset odometry về một pose cụ thể /// /// Pose để reset về void Reset(Pose pose); /// /// Alias tương thích ngược cho các call site cũ. /// void ResetOdometry() => Reset(); /// /// Alias tương thích ngược cho các call site cũ. /// /// Pose để reset về void ResetOdometry(Pose pose) => Reset(pose); /// /// Cập nhật odometry từ vị trí encoder của các bánh xe /// /// Vị trí encoder bánh trái (encoder counts) /// Vị trí encoder bánh phải (encoder counts) void Update(int leftWheelPosition, int rightWheelPosition); }