package com.algo.service;
|
|
import com.algo.model.PlannedPath;
|
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 路径规划器接口
|
* 定义AGV路径规划方法
|
*/
|
public interface PathPlanner {
|
|
/**
|
* 规划单个AGV的路径
|
*
|
* @param startCode 起始路径点ID
|
* @param endCode 目标路径点ID
|
* @param constraints 约束条件列表 [x, y, radius]
|
* @return 规划的路径,失败返回null
|
*/
|
PlannedPath planPath(String startCode, String endCode, List<double[]> constraints);
|
|
/**
|
* 规划单个AGV的路径(无约束条件)
|
*
|
* @param startCode 起始路径点ID
|
* @param endCode 目标路径点ID
|
* @return 规划的路径,失败返回null
|
*/
|
PlannedPath planPath(String startCode, String endCode);
|
|
/**
|
* 验证路径点是否有效
|
*
|
* @param pathCode 路径点ID
|
* @return true如果路径点有效
|
*/
|
boolean isValidPathPoint(String pathCode);
|
|
/**
|
* 计算两个路径点之间的距离
|
*
|
* @param startCode 起始路径点ID
|
* @param endCode 目标路径点ID
|
* @return 距离值,无效路径点返回-1
|
*/
|
double calculateDistance(String startCode, String endCode);
|
|
/**
|
* 获取路径映射信息
|
*
|
* @return 路径映射表
|
*/
|
Map<String, Map<String, Integer>> getPathMapping();
|
|
/**
|
* 获取邻接点列表
|
*
|
* @param pathCode 路径点ID
|
* @return 邻接点列表及其方向
|
*/
|
List<Map<String, String>> getNeighbors(String pathCode);
|
}
|