also looking at this
feat: coordinate modeled two-carrier cargo handover
#103
25 files
+1654
-13
| @@ -179,6 +179,46 @@ and limits. This primitive supplies no finite-duration contact forces or impact | ||
| 179 | 179 | release/intake acknowledgement, station handling, authorization or fleet custody handover. |
| 180 | 180 | Those integrations remain open under issue #25. |
| 181 | 181 | |
| 182 | ## Finite station handling prerequisite | |
| 183 | ||
| 184 | The separate [station actor](cargo-station.md) now retains one released point through | |
| 185 | ballistic surface capture, finite powered motion, cancellation braking and one departure | |
| 186 | to a declared receiving joint. Its public integration test uses actual source separation | |
| 187 | and actual receiving-body intake. The world coordinator must still consume the one parcel, | |
| 188 | check the receiver's current authority and produce correlated custody acknowledgement. | |
| 189 | This model alone does not implement a fleet mission or qualify electrical endurance. | |
| 190 | ||
| 191 | ## Receiving mission task prerequisite | |
| 192 | ||
| 193 | The shared owned mission engine accepts `material-receive` only for quadcopters, with a | |
| 194 | non-null `containerId`, a required fixed-origin `positionM` pad anchor and an integer | |
| 195 | 100 to 60,000 ms timeout. The anchor must be inside the mission fence and on or up to | |
| 196 | 1 m above its declared zero surface. Normal and optional one-way alternate landing | |
| 197 | routes contribute to the longest-path time and declared reserve calculation. | |
| 198 | ||
| 199 | Entering intake immediately creates its scoped pending command, including the first | |
| 200 | control frame when the plan starts there. The quad controller uses qualified surface | |
| 201 | contact to keep modeled motor commands neutral during intake. This avoids a one-frame | |
| 202 | spin-up while waiting for the next mission evaluation. It does not erase existing motor | |
| 203 | lag, change mass or generate an acknowledgement. | |
| 204 | ||
| 205 | Mission observations must retain contact, speed at most 0.1 m/s and position within | |
| 206 | 0.2 m of the pad. Losing these interlocks blocks receipt even if an ACK is present. | |
| 207 | A confirmed ACK still needs exact event/task/operation/container/reference correlation, | |
| 208 | a capture inside its deadline, freshness and a finite spatial check. ACK position requires | |
| 209 | three finite own coordinates; sparse arrays are rejected before acknowledgement handling. Timeout, | |
| 210 | foreign scope, rejection or uncertainty can follow a declared counted alternate route; | |
| 211 | they never advance the normal takeoff path or retry intake. A late unsolicited ACK | |
| 212 | blocks rather than reviving the original command. | |
| 213 | ||
| 214 | `tests/unit/cargo-receive-mission.test.ts` covers the native task and an actually empty | |
| 215 | receiving body in its own raw-sensor, estimator and authority runtime. With ACK withheld, | |
| 216 | it stays at the declared pad with zero actual motor thrust and no phantom parcel mass. | |
| 217 | A caller-invented ACK is not proof of mechanical transfer. The | |
| 218 | [two-carrier model](cargo-fleet.md) now binds its receipt port to actual intake, same-epoch | |
| 219 | receiver authority and six bounded fleet cases through `cargo:fleet`. Its broader | |
| 220 | cancellation, fault/recovery and operational matrix remains open under #25. | |
| 221 | ||
| 182 | 222 | ## BVLOS operations evidence |
| 183 | 223 | |
| 184 | 224 | |