Files
BQP/srcs/RobotNet10/Commons/RobotNet10.GlobalPathPlanner/IPathPlannerFactory.cs
2026-07-13 09:25:40 +07:00

38 lines
1.8 KiB
C#

namespace RobotNet10.GlobalPathPlanner;
/// <summary>
/// Factory interface for creating path planner instances optimized for different robot types.
/// Each planner type uses algorithms and strategies tailored to the specific kinematics and constraints of the robot.
/// </summary>
public interface IPathPlannerFactory
{
/// <summary>
/// Creates a path planner optimized for differential drive robots.
/// Differential drive robots have two independently driven wheels on a common axis.
/// </summary>
/// <returns>An instance of <see cref="IPathPlanner"/> configured for differential drive robots.</returns>
IPathPlanner CreateDifferentialPlanner();
/// <summary>
/// Creates a path planner optimized for forklift robots (version 1).
/// Forklift robots have specific constraints related to their lifting mechanism and turning radius.
/// </summary>
/// <returns>An instance of <see cref="IPathPlanner"/> configured for forklift robots.</returns>
IPathPlanner CreateForkliftPlanner();
/// <summary>
/// Creates an enhanced path planner optimized for forklift robots (version 2).
/// This version uses improved algorithms (SSE A*) for better performance and path quality.
/// </summary>
/// <returns>An instance of <see cref="IPathPlanner"/> configured for forklift robots with enhanced algorithms.</returns>
IPathPlanner CreateForkliftPlannerV2();
/// <summary>
/// Creates a path planner optimized for omni-directional drive robots.
/// Omni-drive robots can move in any direction without changing orientation.
/// Note: Currently uses the same planner as differential drive.
/// </summary>
/// <returns>An instance of <see cref="IPathPlanner"/> configured for omni-directional drive robots.</returns>
IPathPlanner CreateOmniDrivePlanner();
}