A-SW Hub / Repositories
Local Gitea · READ ONLY
← 저장소 Repositories
REPOSITORY

metafarmers/fruit-thinning-pinching-robot Private

[제품 기준선] 과채류 적과·적심 로봇 — 온실 과채류의 작업대상 인식, 로봇팔 작업, 전용 엔드이펙터, 이동 플랫폼과 다중로봇 관제를 하나의 제품 기준선으로 통합합니다.

https://git.agrithing.ai/metafarmers/fruit-thinning-pinching-robot.git
2 commits
COMMIT DETAIL

feat: register 과채류 적과·적심 로봇 product baseline

A-SW Reference Factory <[email protected]> · 2026. 8. 3. 오후 2:18:45
6d81f137289e8f923929c6312315cb9a1a19ffcb
10 changed files +667 −0
added .asw/product.json +131−0 View file
@@ -0,0 +1,131 @@
1 + {
2 + "schemaVersion": "asw.product/v1",
3 + "id": "fruit-thinning-pinching-robot",
4 + "name": "과채류 적과·적심 로봇",
5 + "description": "온실 과채류의 작업대상 인식, 로봇팔 작업, 전용 엔드이펙터, 이동 플랫폼과 다중로봇 관제를 하나의 제품 기준선으로 통합합니다.",
6 + "workspaceId": "RS-2025-02219411",
7 + "ownerOrg": "metafarmers",
8 + "owner": "주식회사 메타파머스",
9 + "releasePolicy": {
10 + "validationGate": {
11 + "id": "integration-validation",
12 + "label": "작업 시나리오 통합검증",
13 + "detail": "고정된 구성요소 리비전의 제품 시나리오 증빙 확인"
14 + },
15 + "acceptanceGate": {
16 + "id": "product-acceptance",
17 + "label": "META 제품 검수",
18 + "detail": "선행 품질 게이트, 기관 승인, 통합검증 완료 후 제품 소유기관이 검수"
19 + }
20 + },
21 + "targets": [
22 + {
23 + "id": "vpu",
24 + "name": "VPU",
25 + "description": "과채류 인지와 3D 작업공간 매핑"
26 + },
27 + {
28 + "id": "acu",
29 + "name": "ACU",
30 + "description": "비주얼 서보와 로봇팔 작업 제어"
31 + },
32 + {
33 + "id": "lpu",
34 + "name": "LPU",
35 + "description": "온실 LPS 기반 측위·주행"
36 + },
37 + {
38 + "id": "mcu",
39 + "name": "MCU",
40 + "description": "엔드이펙터와 고소작업 플랫폼 제어"
41 + },
42 + {
43 + "id": "service",
44 + "name": "Service",
45 + "description": "다중로봇 작업·OTA 관제"
46 + }
47 + ],
48 + "components": [
49 + {
50 + "org": "metafarmers",
51 + "repo": "fruit-work-target-perception",
52 + "institution": "주식회사 메타파머스",
53 + "institutionCode": "META",
54 + "name": "과채류 작업대상 인식",
55 + "domain": "Perception",
56 + "target": "vpu"
57 + },
58 + {
59 + "org": "metafarmers",
60 + "repo": "visual-servo-manipulation",
61 + "institution": "주식회사 메타파머스",
62 + "institutionCode": "META",
63 + "name": "비주얼 서보 매니퓰레이션",
64 + "domain": "Manipulation",
65 + "target": "acu"
66 + },
67 + {
68 + "org": "kiro",
69 + "repo": "pinching-end-effector",
70 + "institution": "한국로봇융합연구원",
71 + "institutionCode": "KIRO",
72 + "name": "적심 엔드이펙터 제어",
73 + "domain": "End Effector",
74 + "target": "mcu"
75 + },
76 + {
77 + "org": "nas",
78 + "repo": "thinning-end-effector",
79 + "institution": "국립농업과학원",
80 + "institutionCode": "NAS",
81 + "name": "적과 엔드이펙터 제어",
82 + "domain": "End Effector",
83 + "target": "mcu"
84 + },
85 + {
86 + "org": "daedongrobotics",
87 + "repo": "greenhouse-lps-navigation",
88 + "institution": "대동로보틱스",
89 + "institutionCode": "DAEDONG",
90 + "name": "온실 LPS 측위·주행",
91 + "domain": "Localization & Navigation",
92 + "target": "lpu"
93 + },
94 + {
95 + "org": "agerobotics",
96 + "repo": "high-lift-mobile-platform",
97 + "institution": "에이지로보틱스",
98 + "institutionCode": "AGE",
99 + "name": "고소작업 이동 플랫폼",
100 + "domain": "Mobile Platform",
101 + "target": "mcu"
102 + },
103 + {
104 + "org": "via",
105 + "repo": "fruit-multi-robot-control",
106 + "institution": "주식회사 비아",
107 + "institutionCode": "VIA",
108 + "name": "과채류 다중로봇 관제",
109 + "domain": "Service Platform",
110 + "target": "service"
111 + },
112 + {
113 + "org": "unist",
114 + "repo": "crop-structure-mapping",
115 + "institution": "울산과학기술원",
116 + "institutionCode": "UNIST",
117 + "name": "작물구조 3D 매핑",
118 + "domain": "3D Mapping",
119 + "target": "vpu"
120 + }
121 + ],
122 + "validationAssets": [
123 + {
124 + "org": "metafarmers",
125 + "repo": "fruit-robot-validation",
126 + "name": "적과·적심 로봇 통합검증",
127 + "owner": "주식회사 메타파머스",
128 + "required": true
129 + }
130 + ]
131 + }
added .gitea/workflows/verify.yml +33−0 View file
@@ -0,0 +1,33 @@
1 + name: Verify product baseline
2 +
3 + on:
4 + push:
5 + branches: [main]
6 + pull_request:
7 +
8 + jobs:
9 + verify:
10 + runs-on: ubuntu-latest
11 + steps:
12 + - uses: actions/checkout@v4
13 + - name: Validate product documents
14 + run: |
15 + python -m json.tool .asw/product.json >/dev/null
16 + python -m json.tool product/baseline.json >/dev/null
17 + python -m json.tool product/release-index.json >/dev/null
18 + python -m json.tool approvals/releases/FRUIT-ROBOT-2026.08-R1.json >/dev/null
19 + - name: Validate pinned revisions
20 + run: python -c 'import json; d=json.load(open("product/baseline.json")); p=d["components"]+d.get("validationAssets",[]); assert p and all(len(x["commitSha"])==40 for x in p)'
21 + - name: Build Audit Package skeleton
22 + run: |
23 + mkdir -p dist/audit-package/manifest dist/audit-package/quality dist/audit-package/approvals
24 + cp product/baseline.json dist/audit-package/manifest/product-baseline.json
25 + cp quality/gates.json dist/audit-package/quality/quality-gates.json
26 + cp approvals/policy.json dist/audit-package/approvals/approval-policy.json
27 + cp audit/package-layout.json dist/audit-package/package-layout.json
28 + find dist/audit-package -type f -exec sha256sum {} + > dist/audit-package/checksums.sha256
29 + - uses: christopherhx/gitea-upload-artifact@v4
30 + with:
31 + name: product-audit-package-skeleton
32 + path: dist
33 + retention-days: 30
added README.md +10−0 View file
@@ -0,0 +1,10 @@
1 + # 과채류 적과·적심 로봇 — 제품 기준선
2 +
3 + 이 저장소는 RS-2025-02219411 사업의 기관별 참조 MVP 리비전을 하나의 제품 릴리스로 고정합니다. 각 저장소는 독립적으로 개발·검토되며, 이 제품 저장소는 승인된 버전 조합과 검증·검수 이력을 관리합니다.
4 +
5 + - 제품 소유기관: **주식회사 메타파머스**
6 + - 구성요소: **8개**
7 + - 검증 자산: **1개**
8 + - 현재 기준선: **FRUIT-ROBOT-2026.08-R1**
9 +
10 + > 포함된 MVP는 A-SW 서비스 플랫폼 사용법을 설명하기 위한 VIA 참조 구현이며 각 기관의 공식 연구개발 결과물을 대체하지 않습니다.
added approvals/policy.json +20−0 View file
@@ -0,0 +1,20 @@
1 + {
2 + "schemaVersion": "asw.approval-policy/v1",
3 + "rules": [
4 + {
5 + "gate": "component-owner",
6 + "approver": "각 구성요소 소유기관 검토자",
7 + "scope": "소유 저장소의 고정 리비전과 증빙"
8 + },
9 + {
10 + "gate": "integration-validation",
11 + "approver": "META 통합 검증자",
12 + "scope": "과채류 적과·적심 로봇 시나리오"
13 + },
14 + {
15 + "gate": "product-acceptance",
16 + "approver": "META 제품 책임자",
17 + "scope": "제품 기준선과 Audit Package"
18 + }
19 + ]
20 + }
added approvals/releases/FRUIT-ROBOT-2026.08-R1.json +157−0 View file
@@ -0,0 +1,157 @@
1 + {
2 + "schemaVersion": "asw.release-review/v1",
3 + "releaseId": "FRUIT-ROBOT-2026.08-R1",
4 + "state": "DRAFT",
5 + "submittedAt": null,
6 + "submittedBy": null,
7 + "updatedAt": "2026-08-03T15:00:00+09:00",
8 + "componentEvidence": [
9 + {
10 + "repository": "metafarmers/fruit-work-target-perception",
11 + "institutionCode": "META",
12 + "state": "PENDING",
13 + "actor": null,
14 + "at": null,
15 + "evidence": null,
16 + "note": "기관 공식 증빙 제출 대기"
17 + },
18 + {
19 + "repository": "metafarmers/visual-servo-manipulation",
20 + "institutionCode": "META",
21 + "state": "PENDING",
22 + "actor": null,
23 + "at": null,
24 + "evidence": null,
25 + "note": "기관 공식 증빙 제출 대기"
26 + },
27 + {
28 + "repository": "kiro/pinching-end-effector",
29 + "institutionCode": "KIRO",
30 + "state": "PENDING",
31 + "actor": null,
32 + "at": null,
33 + "evidence": null,
34 + "note": "기관 공식 증빙 제출 대기"
35 + },
36 + {
37 + "repository": "nas/thinning-end-effector",
38 + "institutionCode": "NAS",
39 + "state": "PENDING",
40 + "actor": null,
41 + "at": null,
42 + "evidence": null,
43 + "note": "기관 공식 증빙 제출 대기"
44 + },
45 + {
46 + "repository": "daedongrobotics/greenhouse-lps-navigation",
47 + "institutionCode": "DAEDONG",
48 + "state": "PENDING",
49 + "actor": null,
50 + "at": null,
51 + "evidence": null,
52 + "note": "기관 공식 증빙 제출 대기"
53 + },
54 + {
55 + "repository": "agerobotics/high-lift-mobile-platform",
56 + "institutionCode": "AGE",
57 + "state": "PENDING",
58 + "actor": null,
59 + "at": null,
60 + "evidence": null,
61 + "note": "기관 공식 증빙 제출 대기"
62 + },
63 + {
64 + "repository": "via/fruit-multi-robot-control",
65 + "institutionCode": "VIA",
66 + "state": "PENDING",
67 + "actor": null,
68 + "at": null,
69 + "evidence": null,
70 + "note": "기관 공식 증빙 제출 대기"
71 + },
72 + {
73 + "repository": "unist/crop-structure-mapping",
74 + "institutionCode": "UNIST",
75 + "state": "PENDING",
76 + "actor": null,
77 + "at": null,
78 + "evidence": null,
79 + "note": "기관 공식 증빙 제출 대기"
80 + }
81 + ],
82 + "institutionApprovals": [
83 + {
84 + "institutionCode": "META",
85 + "institution": "주식회사 메타파머스",
86 + "state": "PENDING",
87 + "actor": null,
88 + "at": null,
89 + "evidence": null
90 + },
91 + {
92 + "institutionCode": "KIRO",
93 + "institution": "한국로봇융합연구원",
94 + "state": "PENDING",
95 + "actor": null,
96 + "at": null,
97 + "evidence": null
98 + },
99 + {
100 + "institutionCode": "NAS",
101 + "institution": "국립농업과학원",
102 + "state": "PENDING",
103 + "actor": null,
104 + "at": null,
105 + "evidence": null
106 + },
107 + {
108 + "institutionCode": "DAEDONG",
109 + "institution": "대동로보틱스",
110 + "state": "PENDING",
111 + "actor": null,
112 + "at": null,
113 + "evidence": null
114 + },
115 + {
116 + "institutionCode": "AGE",
117 + "institution": "에이지로보틱스",
118 + "state": "PENDING",
119 + "actor": null,
120 + "at": null,
121 + "evidence": null
122 + },
123 + {
124 + "institutionCode": "VIA",
125 + "institution": "주식회사 비아",
126 + "state": "PENDING",
127 + "actor": null,
128 + "at": null,
129 + "evidence": null
130 + },
131 + {
132 + "institutionCode": "UNIST",
133 + "institution": "울산과학기술원",
134 + "state": "PENDING",
135 + "actor": null,
136 + "at": null,
137 + "evidence": null
138 + }
139 + ],
140 + "validation": {
141 + "state": "PENDING",
142 + "actor": null,
143 + "at": null,
144 + "evidence": null
145 + },
146 + "decision": null,
147 + "events": [
148 + {
149 + "at": "2026-08-03T15:00:00+09:00",
150 + "actor": "A-SW Reference Factory",
151 + "action": "CREATED",
152 + "from": null,
153 + "to": "DRAFT",
154 + "comment": "과채류 적과·적심 로봇 참조 제품 기준선 생성"
155 + }
156 + ]
157 + }
added audit/package-layout.json +15−0 View file
@@ -0,0 +1,15 @@
1 + {
2 + "schemaVersion": "asw.audit-package-layout/v1",
3 + "paths": [
4 + "manifest/product-baseline.json",
5 + "manifest/validation-assets.json",
6 + "quality/integration-gates.json",
7 + "quality/component-gates.json",
8 + "approvals/release-review.json",
9 + "approvals/institution-approvals.json",
10 + "evidence/component-register.json",
11 + "validation/",
12 + "package-metadata.json",
13 + "checksums.sha256"
14 + ]
15 + }
added product/baseline.json +121−0 View file
@@ -0,0 +1,121 @@
1 + {
2 + "schemaVersion": "asw.product-baseline/v1",
3 + "releaseId": "FRUIT-ROBOT-2026.08-R1",
4 + "product": "fruit-thinning-pinching-robot",
5 + "displayName": "과채류 적과·적심 로봇",
6 + "owner": "주식회사 메타파머스",
7 + "state": "DRAFT",
8 + "generatedAt": "2026-08-03T15:00:00+09:00",
9 + "components": [
10 + {
11 + "repository": "metafarmers/fruit-work-target-perception",
12 + "ref": "main",
13 + "commitSha": "bb3f276f33feb9d3e8c1548279bdff7d30bdc880",
14 + "version": "0.1.0-mvp",
15 + "requiredChecks": [
16 + "static-analysis",
17 + "unit-test",
18 + "component-test",
19 + "interface-contract"
20 + ]
21 + },
22 + {
23 + "repository": "metafarmers/visual-servo-manipulation",
24 + "ref": "main",
25 + "commitSha": "ab796492c50180eb496cf51cc78bd765bcfd912a",
26 + "version": "0.1.0-mvp",
27 + "requiredChecks": [
28 + "static-analysis",
29 + "unit-test",
30 + "component-test",
31 + "interface-contract"
32 + ]
33 + },
34 + {
35 + "repository": "kiro/pinching-end-effector",
36 + "ref": "main",
37 + "commitSha": "51664f3b51ef3ef9a0c7541cca66d265db19c044",
38 + "version": "0.1.0-mvp",
39 + "requiredChecks": [
40 + "static-analysis",
41 + "unit-test",
42 + "component-test",
43 + "interface-contract"
44 + ]
45 + },
46 + {
47 + "repository": "nas/thinning-end-effector",
48 + "ref": "main",
49 + "commitSha": "61be75ad4c138eb6796db0d8484847226b7ca094",
50 + "version": "0.1.0-mvp",
51 + "requiredChecks": [
52 + "static-analysis",
53 + "unit-test",
54 + "component-test",
55 + "interface-contract"
56 + ]
57 + },
58 + {
59 + "repository": "daedongrobotics/greenhouse-lps-navigation",
60 + "ref": "main",
61 + "commitSha": "075262f6a428bc991fd63f0cd298f35fc13b8d8c",
62 + "version": "0.1.0-mvp",
63 + "requiredChecks": [
64 + "static-analysis",
65 + "unit-test",
66 + "component-test",
67 + "interface-contract"
68 + ]
69 + },
70 + {
71 + "repository": "agerobotics/high-lift-mobile-platform",
72 + "ref": "main",
73 + "commitSha": "5b12bc4c1bba10e844e2b025fe317f0245057eb7",
74 + "version": "0.1.0-mvp",
75 + "requiredChecks": [
76 + "static-analysis",
77 + "unit-test",
78 + "component-test",
79 + "interface-contract"
80 + ]
81 + },
82 + {
83 + "repository": "via/fruit-multi-robot-control",
84 + "ref": "main",
85 + "commitSha": "9216e1faff31f8d71a2062c174e8944d188c7c61",
86 + "version": "0.1.0-mvp",
87 + "requiredChecks": [
88 + "static-analysis",
89 + "unit-test",
90 + "component-test",
91 + "interface-contract"
92 + ]
93 + },
94 + {
95 + "repository": "unist/crop-structure-mapping",
96 + "ref": "main",
97 + "commitSha": "e30994c35a9282020c01ae62a031924725677486",
98 + "version": "0.1.0-mvp",
99 + "requiredChecks": [
100 + "static-analysis",
101 + "unit-test",
102 + "component-test",
103 + "interface-contract"
104 + ]
105 + }
106 + ],
107 + "validationAssets": [
108 + {
109 + "repository": "metafarmers/fruit-robot-validation",
110 + "ref": "main",
111 + "commitSha": "f93f07560096fc1d340d8f140b33d5e3591e9c2f",
112 + "version": "0.1.0-mvp",
113 + "requiredChecks": [
114 + "static-analysis",
115 + "unit-test",
116 + "component-test",
117 + "interface-contract"
118 + ]
119 + }
120 + ]
121 + }
added product/release-index.json +12−0 View file
@@ -0,0 +1,12 @@
1 + {
2 + "schemaVersion": "asw.product-release-index/v1",
3 + "currentReleaseId": "FRUIT-ROBOT-2026.08-R1",
4 + "releases": [
5 + {
6 + "id": "FRUIT-ROBOT-2026.08-R1",
7 + "baselinePath": "product/releases/FRUIT-ROBOT-2026.08-R1.json",
8 + "reviewPath": "approvals/releases/FRUIT-ROBOT-2026.08-R1.json",
9 + "createdAt": "2026-08-03T15:00:00+09:00"
10 + }
11 + ]
12 + }
added product/releases/FRUIT-ROBOT-2026.08-R1.json +121−0 View file
@@ -0,0 +1,121 @@
1 + {
2 + "schemaVersion": "asw.product-baseline/v1",
3 + "releaseId": "FRUIT-ROBOT-2026.08-R1",
4 + "product": "fruit-thinning-pinching-robot",
5 + "displayName": "과채류 적과·적심 로봇",
6 + "owner": "주식회사 메타파머스",
7 + "state": "DRAFT",
8 + "generatedAt": "2026-08-03T15:00:00+09:00",
9 + "components": [
10 + {
11 + "repository": "metafarmers/fruit-work-target-perception",
12 + "ref": "main",
13 + "commitSha": "bb3f276f33feb9d3e8c1548279bdff7d30bdc880",
14 + "version": "0.1.0-mvp",
15 + "requiredChecks": [
16 + "static-analysis",
17 + "unit-test",
18 + "component-test",
19 + "interface-contract"
20 + ]
21 + },
22 + {
23 + "repository": "metafarmers/visual-servo-manipulation",
24 + "ref": "main",
25 + "commitSha": "ab796492c50180eb496cf51cc78bd765bcfd912a",
26 + "version": "0.1.0-mvp",
27 + "requiredChecks": [
28 + "static-analysis",
29 + "unit-test",
30 + "component-test",
31 + "interface-contract"
32 + ]
33 + },
34 + {
35 + "repository": "kiro/pinching-end-effector",
36 + "ref": "main",
37 + "commitSha": "51664f3b51ef3ef9a0c7541cca66d265db19c044",
38 + "version": "0.1.0-mvp",
39 + "requiredChecks": [
40 + "static-analysis",
41 + "unit-test",
42 + "component-test",
43 + "interface-contract"
44 + ]
45 + },
46 + {
47 + "repository": "nas/thinning-end-effector",
48 + "ref": "main",
49 + "commitSha": "61be75ad4c138eb6796db0d8484847226b7ca094",
50 + "version": "0.1.0-mvp",
51 + "requiredChecks": [
52 + "static-analysis",
53 + "unit-test",
54 + "component-test",
55 + "interface-contract"
56 + ]
57 + },
58 + {
59 + "repository": "daedongrobotics/greenhouse-lps-navigation",
60 + "ref": "main",
61 + "commitSha": "075262f6a428bc991fd63f0cd298f35fc13b8d8c",
62 + "version": "0.1.0-mvp",
63 + "requiredChecks": [
64 + "static-analysis",
65 + "unit-test",
66 + "component-test",
67 + "interface-contract"
68 + ]
69 + },
70 + {
71 + "repository": "agerobotics/high-lift-mobile-platform",
72 + "ref": "main",
73 + "commitSha": "5b12bc4c1bba10e844e2b025fe317f0245057eb7",
74 + "version": "0.1.0-mvp",
75 + "requiredChecks": [
76 + "static-analysis",
77 + "unit-test",
78 + "component-test",
79 + "interface-contract"
80 + ]
81 + },
82 + {
83 + "repository": "via/fruit-multi-robot-control",
84 + "ref": "main",
85 + "commitSha": "9216e1faff31f8d71a2062c174e8944d188c7c61",
86 + "version": "0.1.0-mvp",
87 + "requiredChecks": [
88 + "static-analysis",
89 + "unit-test",
90 + "component-test",
91 + "interface-contract"
92 + ]
93 + },
94 + {
95 + "repository": "unist/crop-structure-mapping",
96 + "ref": "main",
97 + "commitSha": "e30994c35a9282020c01ae62a031924725677486",
98 + "version": "0.1.0-mvp",
99 + "requiredChecks": [
100 + "static-analysis",
101 + "unit-test",
102 + "component-test",
103 + "interface-contract"
104 + ]
105 + }
106 + ],
107 + "validationAssets": [
108 + {
109 + "repository": "metafarmers/fruit-robot-validation",
110 + "ref": "main",
111 + "commitSha": "f93f07560096fc1d340d8f140b33d5e3591e9c2f",
112 + "version": "0.1.0-mvp",
113 + "requiredChecks": [
114 + "static-analysis",
115 + "unit-test",
116 + "component-test",
117 + "interface-contract"
118 + ]
119 + }
120 + ]
121 + }
added quality/gates.json +47−0 View file
@@ -0,0 +1,47 @@
1 + {
2 + "schemaVersion": "asw.quality-gates/v1",
3 + "componentGates": [
4 + {
5 + "id": "static-analysis",
6 + "owner": "component-owner",
7 + "required": true
8 + },
9 + {
10 + "id": "unit-test",
11 + "owner": "component-owner",
12 + "required": true
13 + },
14 + {
15 + "id": "component-test",
16 + "owner": "component-owner",
17 + "required": true
18 + },
19 + {
20 + "id": "interface-contract",
21 + "owner": "component-owner",
22 + "required": true
23 + }
24 + ],
25 + "integrationGates": [
26 + {
27 + "id": "component-evidence",
28 + "owner": "metafarmers",
29 + "required": true
30 + },
31 + {
32 + "id": "institution-approval",
33 + "owner": "metafarmers",
34 + "required": true
35 + },
36 + {
37 + "id": "integration-validation",
38 + "owner": "metafarmers",
39 + "required": true
40 + },
41 + {
42 + "id": "product-acceptance",
43 + "owner": "metafarmers",
44 + "required": true
45 + }
46 + ]
47 + }