mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2026-08-29 13:04:59 +00:00
pathing: stabilize 0-replan round-trip on ledge/descend runs
Fix a cluster of execution-layer issues that caused replans and void falls when traversing narrow ledges and multi-block descents between (251.5,141,210.5) and (252.5,138,220.5): - WalkTemplate / GroundedSegmentController: suppress the pre-rotation bias toward the next segment's exit heading on stable-footing Turn exits where the next segment is not a jump. The next template snaps yaw on its first tick anyway, and pre-rotating mid-stride on a 1-block walkway pushes sprint drift perpendicular to the path and walks the bot off the edge. Turn exits into a jump still get the bias so the takeoff direction stays aligned. - GroundedSegmentController.ShouldComplete: relax the headingReady gate for Turn exits with stable footing so the segment can complete once yaw is aligned with either the current or the next segment heading (within 25/15 deg). Without this the removed bias would leave the bot stuck at the end of a walkway waiting for a rotation that never happens. - DescendTemplate: restrict the airborne exit-heading bias so it only kicks in when the footprint is inside the landing block, or on single-step drops where the fall is too short for lateral drift to miss the landing column. On 2+ block drops the bot now keeps yaw pointed at the landing center for the whole fall. - DescendTemplate: add a multi-block overshoot guard on PrepareJump exits. Once airborne and past the landing end-plane on a 2+ Y drop, release forward/sprint and press back briefly so air drag pulls the bot back into the 1x1 landing column instead of sailing one block past it into the neighbouring void. Live round-trip between the two goal coordinates now completes with zero replans in three consecutive runs in each direction. Full unit test suite is unchanged from the pre-existing baseline (22 failing tests, all orthogonal to this change). Made-with: Cursor
This commit is contained in:
parent
d002930a6a
commit
5de169db64
19 changed files with 1418 additions and 171 deletions
|
|
@ -428,6 +428,19 @@
|
|||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "ascend",
|
||||
"movement_mode": "sprint",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 0,
|
||||
"max_mm": 0,
|
||||
"max_reach": 2,
|
||||
"delta_y": 1.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "ascend",
|
||||
|
|
@ -441,6 +454,19 @@
|
|||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "ascend",
|
||||
"movement_mode": "sprint",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 1,
|
||||
"max_mm": 12,
|
||||
"max_reach": 3,
|
||||
"delta_y": 1.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "ascend",
|
||||
|
|
@ -480,6 +506,19 @@
|
|||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "ascend",
|
||||
"movement_mode": "walk",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 0,
|
||||
"max_mm": 0,
|
||||
"max_reach": 1,
|
||||
"delta_y": 1.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "ascend",
|
||||
|
|
@ -493,6 +532,19 @@
|
|||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "ascend",
|
||||
"movement_mode": "walk",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 1,
|
||||
"max_mm": 12,
|
||||
"max_reach": 2,
|
||||
"delta_y": 1.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
|
|
@ -532,6 +584,19 @@
|
|||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
"movement_mode": "sprint",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 0,
|
||||
"max_mm": 0,
|
||||
"max_reach": 4,
|
||||
"delta_y": -2.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
|
|
@ -545,6 +610,19 @@
|
|||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
"movement_mode": "sprint",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 1,
|
||||
"max_mm": 12,
|
||||
"max_reach": 5,
|
||||
"delta_y": -2.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
|
|
@ -584,6 +662,19 @@
|
|||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
"movement_mode": "sprint",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 0,
|
||||
"max_mm": 1,
|
||||
"max_reach": 4,
|
||||
"delta_y": -1.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
|
|
@ -597,6 +688,19 @@
|
|||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
"movement_mode": "sprint",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 2,
|
||||
"max_mm": 12,
|
||||
"max_reach": 5,
|
||||
"delta_y": -1.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
|
|
@ -649,6 +753,19 @@
|
|||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
"movement_mode": "walk",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 0,
|
||||
"max_mm": 0,
|
||||
"max_reach": 2,
|
||||
"delta_y": -2.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
|
|
@ -662,6 +779,19 @@
|
|||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
"movement_mode": "walk",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 1,
|
||||
"max_mm": 2,
|
||||
"max_reach": 3,
|
||||
"delta_y": -2.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
|
|
@ -675,6 +805,19 @@
|
|||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
"movement_mode": "walk",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 3,
|
||||
"max_mm": 12,
|
||||
"max_reach": 4,
|
||||
"delta_y": -2.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
|
|
@ -714,6 +857,19 @@
|
|||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
"movement_mode": "walk",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 0,
|
||||
"max_mm": 0,
|
||||
"max_reach": 2,
|
||||
"delta_y": -1.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
|
|
@ -727,6 +883,19 @@
|
|||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "descend",
|
||||
"movement_mode": "walk",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 1,
|
||||
"max_mm": 12,
|
||||
"max_reach": 3,
|
||||
"delta_y": -1.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "flat",
|
||||
|
|
@ -766,6 +935,19 @@
|
|||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "flat",
|
||||
"movement_mode": "sprint",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 0,
|
||||
"max_mm": 0,
|
||||
"max_reach": 3,
|
||||
"delta_y": 0.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "flat",
|
||||
|
|
@ -779,6 +961,19 @@
|
|||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "flat",
|
||||
"movement_mode": "sprint",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 1,
|
||||
"max_mm": 12,
|
||||
"max_reach": 4,
|
||||
"delta_y": 0.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "flat",
|
||||
|
|
@ -818,6 +1013,19 @@
|
|||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "flat",
|
||||
"movement_mode": "walk",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 0,
|
||||
"max_mm": 1,
|
||||
"max_reach": 2,
|
||||
"delta_y": 0.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "flat",
|
||||
|
|
@ -830,5 +1038,18 @@
|
|||
"ceiling_height": null,
|
||||
"wall_offset": 1,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"family": "sidewall",
|
||||
"subfamily": "flat",
|
||||
"movement_mode": "walk",
|
||||
"capability_metric": "gap_blocks",
|
||||
"min_mm": 2,
|
||||
"max_mm": 12,
|
||||
"max_reach": 3,
|
||||
"delta_y": 0.0,
|
||||
"ceiling_height": null,
|
||||
"wall_offset": 2,
|
||||
"notes": ""
|
||||
}
|
||||
]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue