using RobotNet10.FleetManager.Services.TrafficControl.Models; using RobotNet10.GlobalPathPlanner.Model; namespace RobotNet10.FleetManager.Services.TrafficControl.Services; /// /// Service for route planning /// public interface IRoutePlanningService { /// /// Plan route for a robot from start to goal /// Task PlanRouteAsync( string robotId, Guid startNodeId, Guid goalNodeId, CancellationToken cancellationToken = default); /// /// Plan route with optional constraints (angle, startDirection, finalDirection) /// Task PlanRouteAsync( string robotId, Guid startNodeId, Guid goalNodeId, double? goalAngle, Orientation? startDirection, Orientation? finalDirection, CancellationToken cancellationToken = default); /// /// Plan route from current position (x, y, theta) to goal node /// Task PlanRouteFromPositionAsync( string robotId, double x, double y, double theta, Guid goalNodeId, double? goalAngle, Orientation? startDirection, Orientation? finalDirection, CancellationToken cancellationToken = default); /// /// Plan route from current position (x, y, theta) to goal node /// Task PlanRouteFromPositionACSTrafficAsync( string robotId, double x, double y, double theta, Guid goalNodeId, double? goalAngle, Orientation? startDirection, Orientation? finalDirection, CancellationToken cancellationToken = default); }