Navigate·
one call → a whole sequence of timed move steps (speed presets, room loops); every /control frame still passes the thinker drive-off gate — tools/rover_navigate.py, 1 tool.
From the module docstring
🛣️ Earth Rover navigation — batch sequence of move commands.
| tool | does |
|---|---|
rover_navigate |
Execute a batch sequence of move commands in ONE tool call. |
rover_navigate·
rover_navigate(
steps: List[Dict[str, Any]],
default_speed: Any = 'normal',
look_every_n_steps: int = 0,
look_camera: str = 'front',
stop_on_error: bool = True,
) -> Dict[str, Any]
Execute a batch sequence of move commands in ONE tool call.
Drastically reduces tool-call overhead for multi-segment journeys (e.g. "go down hallway, turn right, continue 3m"). Each step is a rover_move-equivalent that auto-stops at its end; the whole sequence auto-stops cleanly after the last step.
| argument | meaning |
|---|---|
steps |
List of step dicts. Each step: |
default_speed |
Named speed ("crawl"/"slow"/"normal"/"fast"/"max") or a 0..1 float applied to any step that omits its own "speed". Lets the agent pick a journey-wide pace (e.g. "crawl" through a cluttered room, "fast" down a clear hallway) and override per-step as needed. Steps that give raw linear/angular WITHOUT "speed" keep full manual control (back-compat). |
look_every_n_steps |
If > 0, capture a camera frame every N steps and inline it in the result so the agent can re-plan. 0 = off. |
look_camera |
"front" or "rear" — which camera for periodic looks. |
stop_on_error |
If True (default), abort remaining steps when one fails. If False, log and continue. |
Returns
Dict with overall status, per-step log, total duration, and any
inlined camera frames.
Examples
rover_navigate(steps=[
{"linear": 0.4, "angular": 0.0, "duration": 2, "label": "fwd"},
{"linear": 0.0, "angular": 0.5, "duration": 1, "label": "turn left"},
{"linear": 0.4, "angular": 0.0, "duration": 2, "label": "fwd"},
], look_every_n_steps=2)
source: tools/rover_navigate.py:107