61 lines
1.8 KiB
C#
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);
|
|
}
|
|
|