REPOSITORY
nas/thinning-end-effector Private
[참조 MVP] 적과 엔드이펙터 제어 — 과실 후보에 대한 접근·분리·회수 시퀀스를 표현하는 참조 MVP입니다.
https://git.agrithing.ai/nas/thinning-end-effector.git 9073cca feat: 적과 엔드이펙터 제어 구체 MVP 구현
61be75a ci: add static dynamic and evidence gates
bf80881 feat: add executable institution reference MVP
71123d9 docs: define product role and interface contract
2 items · feat/concrete-mvp-v2
·/ asw_component/component.py
python · 820 B · 11574f5 Download
from __future__ import annotationsdef execute(payload: dict) -> dict: reasons = [] force = float(payload.get("forceLimitN", 0)) if payload.get("operation") != "thinning": reasons.append("UNSUPPORTED_OPERATION") if payload.get("safetyState") != "READY": reasons.append("SAFETY_NOT_READY") if not 1 <= force <= 25: reasons.append("FORCE_LIMIT_OUT_OF_RANGE") accepted = not reasons sequence = ["APPROACH", "GRIP", "TWIST", "RETRACT", "RELEASE"] if accepted else [] return {"component": "nas/thinning-end-effector", "accepted": accepted, "status": "SEQUENCE_READY" if accepted else "BLOCKED", "target": "mcu", "targetId": str(payload.get("targetId", "unknown")), "sequence": sequence, "interlocks": reasons, "estimatedCycleMs": 3400 if accepted else 0}