// using System; // using System.Collections.Generic; // using System.Drawing; // using System.Numerics; // using ClumsyCore; // using ClumsyCore.DTools; // using ClumsyCore.Pilot; // using CommonUsage.Chassis; // using MDCSToolBox.Clumsy.Tracks; // namespace MultiWheelC // { // //在世界坐标系下,从路径起点追踪到终点并停车 // public class DstTracker : MovementDefinition // { // public Vector2 Src; // public Vector2 Dst; // // 本次轨迹的巡航速度上限,单位m/s。 // public float MaxSpeed = PilotDefinition.Conf.DstTrackerMaxSpeed; // public float CarDirectionBias = 0f; // public Painter Painter = UI.GetPainter("DstTracker"); // public override IEnumerable Get() // { // var chassis = (MultiWheelChassis)PilotDefinition.Chassis; // DriveTask task = null; // try // { // Console.WriteLine($"DstTracker src:({Src.X:F2}, {Src.Y:F2}) dst:({Dst.X:F2}, {Dst.Y:F2})"); // Painter.DrawLine(Color.Cyan, Src.X, Src.Y, Dst.X, Dst.Y, width: 3); // var tracker = new ChassisController // { // BaseSpeed = MaxSpeed // }.Get(); // // 要求路径末端速度下降到零。 // tracker.FinishSpeed = 0f; // var linePath = new LineTrack(Src, Dst) // { // CarDirectionBias = CarDirectionBias, // Speed = MaxSpeed // }; // tracker.AddTrack(linePath); // task = new DriveTask(tracker.Track()); // task.Wait(); // yield return false; // } // finally // { // task?.Stop(); // chassis.PredefinedDriveStop(); // } // } // } // }