Skip to content

Commit df12393

Browse files
committed
remove passing in reference to modules
1 parent 18cda83 commit df12393

2 files changed

Lines changed: 14 additions & 6 deletions

File tree

dimos/navigation/bt_navigator/navigator.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import threading
2222
import time
2323
from enum import Enum
24-
from typing import Optional
24+
from typing import Callable, Optional
2525

2626
from dimos.core import Module, In, Out, rpc
2727
from dimos.msgs.geometry_msgs import PoseStamped
@@ -72,8 +72,9 @@ class BehaviorTreeNavigator(Module):
7272

7373
def __init__(
7474
self,
75-
local_planner: BaseLocalPlanner,
7675
publishing_frequency: float = 1.0,
76+
reset_local_planner: Callable[[], None] = None,
77+
check_goal_reached: Callable[[], bool] = None,
7778
**kwargs,
7879
):
7980
"""Initialize the Navigator.
@@ -108,10 +109,13 @@ def __init__(
108109
self.control_thread: Optional[threading.Thread] = None
109110
self.stop_event = threading.Event()
110111

111-
self.local_planner = local_planner
112112
# TF listener
113113
self.tf = TF()
114114

115+
# Local planner
116+
self.reset_local_planner = reset_local_planner
117+
self.check_goal_reached = check_goal_reached
118+
115119
# Recovery server for stuck detection
116120
self.recovery_server = RecoveryServer(stuck_duration=5.0)
117121

@@ -284,7 +288,7 @@ def _control_loop(self):
284288
self.cancel_goal()
285289

286290
# Check if goal is reached
287-
if self.local_planner.is_goal_reached():
291+
if self.check_goal_reached():
288292
reached_msg = Bool()
289293
reached_msg.data = True
290294
self.goal_reached.publish(reached_msg)
@@ -317,7 +321,7 @@ def stop(self):
317321
with self.state_lock:
318322
self.state = NavigatorState.IDLE
319323

320-
self.local_planner.reset()
324+
self.reset_local_planner()
321325
self.recovery_server.reset() # Reset recovery server when stopping
322326

323327
logger.info("Navigator stopped")

dimos/robot/unitree_webrtc/unitree_go2.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,11 @@ def _deploy_navigation(self):
312312
"""Deploy and configure navigation modules."""
313313
self.global_planner = self.dimos.deploy(AstarPlanner)
314314
self.local_planner = self.dimos.deploy(HolonomicLocalPlanner)
315-
self.navigator = self.dimos.deploy(BehaviorTreeNavigator, local_planner=self.local_planner)
315+
self.navigator = self.dimos.deploy(
316+
BehaviorTreeNavigator,
317+
reset_local_planner=self.local_planner.reset,
318+
check_goal_reached=self.local_planner.is_goal_reached,
319+
)
316320
self.frontier_explorer = self.dimos.deploy(WavefrontFrontierExplorer)
317321

318322
self.navigator.goal.transport = core.LCMTransport("/navigation_goal", PoseStamped)

0 commit comments

Comments
 (0)