From aff02ffde796d45bd61f096e3944b6c301ec9c31 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期四, 05 十二月 2024 14:49:30 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java | 24 +++++++++++++----------- 1 files changed, 13 insertions(+), 11 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java index 7cbe7b0..0f4def0 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java @@ -25,7 +25,7 @@ private final RedisSupport redis = RedisSupport.defaultRedisSupport; - public static final boolean OPEN_TURN_COST_WEIGHT = Boolean.FALSE; + public static final boolean OPEN_TURN_COST_WEIGHT = Boolean.TRUE; public static final int WEIGHT_CALC_FACTOR = 1; @@ -88,10 +88,13 @@ if (!vehicle.equals(DynamicNodeType.ACCESS.val)) { if (!vehicle.equals(agvNo)) { + // 濡傛灉瀛樺湪杞﹁締锛屽垯澧炲姞鏉冮噸 2 鎴栬�� 3锛屽洜涓烘嫄鐐逛細澧炲姞鏉冮噸 1 // vehicle宸茬粡涓哄綋鍓峴egment鍋氳繃浜嗛伩璁╋紝涓旈伩璁╀换鍔″凡瀹屾垚锛屽垯鏉冮噸鍊煎鍔� if (null != segment) { if (!Cools.isEmpty(jamService.getJamFromSegmentByAvo(segment, vehicle))) { - weight += WEIGHT_CALC_FACTOR; + weight += (WEIGHT_CALC_FACTOR * 3); + } else { + weight += (WEIGHT_CALC_FACTOR * 2); } } @@ -150,7 +153,11 @@ } // G + H + T (瀵瑰惎鍙戝嚱鏁板鍔犲幓鎷愮偣鏂规calcNodeTurnCost) - int gCost = calcNodeCost(currentNode, node) * (OPEN_TURN_COST_WEIGHT ? calcNodeTurnCost(currentNode, node, end) : 1); + int gCost = calcNodeCost(currentNode, node); + + if (OPEN_TURN_COST_WEIGHT) { + gCost += calcNodeTurnCost(currentNode, node, end); + } //杩涜璁$畻瀵� G, F, H 绛夊�� node.setWeight(weight); @@ -328,21 +335,16 @@ || nextNode.getX() == currNode.getParent().getX() || nextNode.getY() == currNode.getParent().getY() ) { - return 1; + return 0; } // 鎷愬悜缁堢偣鐨勭偣 if (nextNode.getX() == endNode.getX() || nextNode.getY() == endNode.getY()) { - return 2; + return 1; } // 鏅�氭嫄鐐� - /* - 鎷愮偣鍒ゆ柇閫昏緫 - 鎷垮埌鐖惰妭鐐瑰拰涓嬩竴鑺傜偣 - 閫氳繃鍒ゆ柇鐖惰妭鐐瑰拰涓嬩竴鑺傜偣鐨剎鏁版嵁鍜寉鏁版嵁閮戒笉鐩稿悓鏃讹紝鍒欒〃鏄庡綋鍓嶅潗鏍囨槸涓�涓嫄鐐� - */ - return 3; + return 1; } } -- Gitblit v1.9.1