Jungdae Lee commited on
Commit
cf91caa
ยท
1 Parent(s): d25d1df

add nav_bridge to wire CSM and CVM engine

Browse files
Files changed (1) hide show
  1. nav_bridge.py +67 -0
nav_bridge.py ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pathlib import Path
2
+ import sys
3
+
4
+ # ํ˜„์žฌ ํŒŒ์ผ ์œ„์น˜: .../nav/caanip-backend/nav_bridge.py
5
+ THIS_DIR = Path(__file__).resolve().parent
6
+ BACKEND_ROOT = THIS_DIR # .../caanip-backend
7
+ NAV_ROOT = BACKEND_ROOT.parent # .../nav (caainp-csm, caainp-cvm, caanip-backend ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ)
8
+
9
+ # 1) CSM(src) / CVM(nav_engine) ๊ฒฝ๋กœ๋ฅผ ํŒŒ์ด์ฌ ๋ชจ๋“ˆ ๊ฒ€์ƒ‰ ๊ฒฝ๋กœ์— ์ถ”๊ฐ€
10
+ CSM_SRC = NAV_ROOT / "caainp-csm" / "src"
11
+ CVM_ROOT = NAV_ROOT / "caainp-cvm"
12
+
13
+ sys.path.append(str(CSM_SRC))
14
+ sys.path.append(str(CVM_ROOT))
15
+
16
+ # 2) CSM ๋ชจ๋“ˆ์„ nav_engine๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ง์ ‘ import
17
+ from graph_4f import Graph4F
18
+ from plan_csm import (
19
+ Constraints,
20
+ Step,
21
+ PlanState,
22
+ create_simple_plan,
23
+ update_state_with_node,
24
+ )
25
+
26
+ # 3) CVM ์ชฝ nav_engine์—์„œ ์—”์ง„ ํ•จ์ˆ˜ import
27
+ from nav_engine import init_plan, compute_nav_output
28
+
29
+
30
+ def quick_test():
31
+ """
32
+ backend ๋ ˆํฌ์—์„œ CSM + CVM + nav_engine์ด ์ œ๋Œ€๋กœ ์—ฐ๊ฒฐ๋˜๋Š”์ง€ ํ™•์ธ์šฉ.
33
+ ์‹ค์ œ FastAPI ์ฝ”๋“œ์—์„œ๋Š” init_plan / compute_nav_output๋งŒ ๊ฐ€์ ธ๋‹ค ์“ฐ๋ฉด ๋จ.
34
+ """
35
+ # 1) ํ”Œ๋žœ ์ดˆ๊ธฐํ™” (CSM)
36
+ plan, csv_path = init_plan(
37
+ user_text="401์—์„œ 410ํ˜ธ๊นŒ์ง€ ์ด๋™",
38
+ start_room=401,
39
+ )
40
+
41
+ # 2) CVM ์ด๋ฏธ์ง€ ๊ฒฝ๋กœ ์„ค์ • (caainp-cvm/nav_engine.py์—์„œ ์“ฐ๋˜ node_images ๊ธฐ์ค€)
42
+ node_images_dir = CVM_ROOT / "node_images" / "node_images"
43
+ img_seq = ["401.jpg", "4102.jpg", "4201.jpg"]
44
+
45
+ prev_node = None
46
+
47
+ for img_name in img_seq:
48
+ image_path = node_images_dir / img_name
49
+
50
+ out = compute_nav_output(
51
+ image_path=str(image_path),
52
+ plan=plan, # PlanState ๊ฐ์ฒด (์šฐ๋ฆฌ๊ฐ€ nav_engine์—์„œ ์“ฐ๋Š” ๋ฒ„์ „ ๊ธฐ์ค€)
53
+ prev_node=prev_node,
54
+ csv_path=str(csv_path),
55
+ )
56
+
57
+ nav_output = out["nav_output"]
58
+ plan = out["plan"] # ์—…๋ฐ์ดํŠธ๋œ PlanState ๊ณ„์† ์œ ์ง€
59
+ prev_node = nav_output["current_node"]
60
+
61
+ from pprint import pprint
62
+ print(f"\n[IMAGE] {img_name}")
63
+ pprint(nav_output)
64
+
65
+
66
+ if __name__ == "__main__":
67
+ quick_test()