Files
BQP/srcs/RobotNet10/FleetManager/RobotNet10.FleetManager/Services/TrafficControl/Services/IRoutePlanningService.cs
2026-07-13 09:25:40 +07:00

61 lines
1.8 KiB
C#

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