nav-advance
Planner-friendly multi-step forward motion. Reduces fragile planner loops while preserving nav invariants (verification, snap-to-grid, nav history).
Input
blocks: Integer number of blocks to advance (required)step_duration: Float seconds per move (default:0.2)max_abs_delta_y: Float tolerance for Y noise (default:0.2)
Output
Success (status: "success"):
value: Summary text (e.g., "Advance completed: TARGET_REACHED (3/3)")
Failure (status: "failed"):
value: Summary with steps completedreason: One of"INVALID_TARGET","STATUS_FAILED","MOVE_FAILED","COLLISION","FELL","OBSERVATION_FAILED","UNEXPECTED_VERTICAL_CHANGE","SUPPORT_AMBIGUOUS"
Behavior
- Automatically aligns agent to block center and cardinal yaw before movement
- Moves forward in the direction of current yaw (use
nav-turnfirst if yaw isn't in desired direction) - Internally performs up to
blockssingle moves with verification - Snaps to block center after each landed move and updates nav history
- Stops immediately when unsafe conditions are detected
Alignment
Before each movement, agent is automatically aligned:
- Position: Block center (x+0.5, y, z+0.5) - eliminates fractional offsets
- Yaw: Nearest cardinal (0°=South, 90°=West, 180°=North, 270°=East)
- Pitch: 0°
This prevents collisions from fractional offsets and ensures predictable movement direction.
Planning Notes
- Ensure agent yaw points in desired direction before calling (use
nav-turnif needed) - Use instead of planner loops over
nav-move - If
reasonisFELL, treat as safety event and considernav-backtrack
Example
{"type":"nav-advance","blocks":3,"out":"$adv"}