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 completed - •
reason: 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
json
{"type":"nav-advance","blocks":3,"out":"$adv"}