docs(10_Wiki): 위키 전체 재구성 — Topic_* 폴더를 4개 카테고리로 통합 + 대규모 중복 제거
Topic_Agent/Topic_Blog/Topics/Topics_Biz/Topics_Meeting/Topics_Rag의 마크다운 지식 문서를 Topic_General/Topic_Programming/Topic_Graphic/Topic_Business 4개 카테고리로 재분류. - 중복 제거: frontmatter의 status:duplicate/merged + duplicate_of/redirect_to 필드로 자기 자신을 중복으로 선언한 리다이렉트 stub 1032개 제거, 완전 동일 내용 파일 472개 제거, 동일 파일명·다른 내용 충돌 시 더 큰(완전한) 버전만 유지(162개 제거) — 총 1639개 중복 제거. - 분류: 폴더 단위로 명확한 항목(AI_and_ML/Coding/Architecture 등 → Programming, Comfyui/Visual_Effects → Graphic, Topics_Biz/Topics_Meeting/사업 등 → Business, Poetic_Blog_Writing/창의성/Game_Design 등 → General)은 폴더 우선순위로, 나머지 혼재 폴더(Topic_Agent/Topic_Blog/Topics 루트/Thinking & Reasoning/Other/UI_UX_Assets)는 title/tags 키워드 스코어링으로 파일 단위 분류(불명확한 경우 General로 폴백). 원본 폴더명은 "From_*" 서브폴더로 보존해 추적 가능성 유지. - 최종 배치: Programming 2784 / General 1608 / Graphic 285 / Business 249 = 4926개 문서. - 에이전트 운영 상태(.astra/.agent/.obsidian/sessions/memory/_company/docs/lessons/_shared/src)는 지식 콘텐츠가 아니므로 재분류 대상에서 제외하고 원위치 유지. - Topics/Topic_email(상위 보호 폴더 Topic_email과 파일명 100% 중복) 삭제 — 보호 폴더 자체는 미변경. - 완전히 비게 된 Topic_Agent/Topic_Blog/Topics_Biz/Topics_Rag 폴더 제거.
This commit is contained in:
@@ -0,0 +1,165 @@
|
||||
---
|
||||
id: wiki-2026-0508-perceptual-motor-skills
|
||||
title: Perceptual Motor Skills
|
||||
category: 10_Wiki/Topics
|
||||
status: verified
|
||||
canonical_id: self
|
||||
aliases: [Sensorimotor Skills, PM Skills, Eye-Hand Coordination]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.9
|
||||
verification_status: applied
|
||||
tags: [psychology, motor-control, hci, vr, robotics]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-10
|
||||
github_commit: pending
|
||||
tech_stack:
|
||||
language: theory
|
||||
framework: motor-learning
|
||||
---
|
||||
|
||||
# Perceptual Motor Skills
|
||||
|
||||
## 매 한 줄
|
||||
> **"매 perception and action are one closed loop, not two systems."**. 매 Fitts, Schmidt 의 motor-learning 연구에서 출발한 매 perceptual-motor skills = 매 sensory input → motor output 의 매 coupled performance. 매 2026 VR (Beat Saber, MR), surgical robots, autonomous driving, human-AI tele-operation 에 직접 응용.
|
||||
|
||||
## 매 핵심
|
||||
|
||||
### 매 components
|
||||
- **Perception**: 매 visual, vestibular, proprioceptive, tactile input integration.
|
||||
- **Decision**: 매 motor program selection (Schmidt's schema theory).
|
||||
- **Execution**: 매 muscle coordination + online correction.
|
||||
- **Feedback**: 매 KR (Knowledge of Results), KP (Knowledge of Performance).
|
||||
|
||||
### 매 laws
|
||||
- **Fitts' Law**: 매 MT = a + b·log₂(2D/W) — 매 difficulty ∝ distance/target-size.
|
||||
- **Hick's Law**: 매 RT = a + b·log₂(N) — 매 choice reaction time vs alternatives.
|
||||
- **Power Law of Practice**: 매 T(n) = T₁ · n^(-α) — 매 skill acquisition curve.
|
||||
|
||||
### 매 stages (Fitts & Posner)
|
||||
- **Cognitive**: 매 verbal rehearsal, slow, error-prone.
|
||||
- **Associative**: 매 refining; reduced explicit thought.
|
||||
- **Autonomous**: 매 fast, low-attention-cost, automatic.
|
||||
|
||||
### 매 응용
|
||||
1. VR exergaming: 매 Beat Saber score = 매 PM skill metric.
|
||||
2. Surgical training: 매 da Vinci 의 PM skill calibration.
|
||||
3. Robotic teleoperation: 매 latency 가 PM loop 깨면 매 performance 폭락.
|
||||
4. UI design: 매 Fitts' Law → 매 button size & placement.
|
||||
|
||||
## 💻 패턴
|
||||
|
||||
### Pattern 1: Fitts' Law calculator (UI design)
|
||||
```python
|
||||
import math
|
||||
|
||||
def fitts_mt(distance_px, width_px, a=0.05, b=0.1):
|
||||
"""매 movement time in seconds. a, b empirically calibrated."""
|
||||
return a + b * math.log2(2 * distance_px / width_px)
|
||||
|
||||
# 매 example: button 40px wide at 300px away
|
||||
print(fitts_mt(300, 40)) # ~0.36s
|
||||
```
|
||||
|
||||
### Pattern 2: Power-law learning curve fit
|
||||
```python
|
||||
import numpy as np
|
||||
from scipy.optimize import curve_fit
|
||||
|
||||
def power_law(n, T1, alpha):
|
||||
return T1 * n ** (-alpha)
|
||||
|
||||
trials = np.arange(1, 100)
|
||||
times = ... # 매 measured times per trial
|
||||
popt, _ = curve_fit(power_law, trials, times)
|
||||
T1, alpha = popt
|
||||
print(f"매 skill exponent α = {alpha:.3f}")
|
||||
```
|
||||
|
||||
### Pattern 3: Online correction in robot teleop
|
||||
```python
|
||||
# 매 closed-loop with 100Hz feedback
|
||||
import time
|
||||
|
||||
def teleop_loop(robot, target):
|
||||
while not at_target(robot.pose, target, tol=0.005):
|
||||
err = target - robot.pose
|
||||
robot.send_velocity(0.5 * err) # 매 P-controller
|
||||
time.sleep(0.01)
|
||||
```
|
||||
|
||||
### Pattern 4: KR vs KP feedback in training app
|
||||
```python
|
||||
def feedback(trial_result):
|
||||
return {
|
||||
"KR": f"매 hit/miss: {trial_result.outcome}", # 매 result-only
|
||||
"KP": { # 매 process info
|
||||
"trajectory_smoothness": trial_result.jerk,
|
||||
"reaction_time": trial_result.rt_ms,
|
||||
"approach_angle": trial_result.angle,
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
### Pattern 5: VR PM skill scoring
|
||||
```python
|
||||
def beat_saber_pm_score(slices):
|
||||
accuracy = sum(s.angle_error < 15 for s in slices) / len(slices)
|
||||
timing = sum(abs(s.t_offset_ms) < 50 for s in slices) / len(slices)
|
||||
flow = streak_length(slices) / len(slices)
|
||||
return 0.4*accuracy + 0.4*timing + 0.2*flow
|
||||
```
|
||||
|
||||
### Pattern 6: Latency budget for VR
|
||||
```python
|
||||
# 매 motion-to-photon < 20ms or 매 PM loop breaks (sim-sickness)
|
||||
def latency_audit(pipeline):
|
||||
budget_ms = 20
|
||||
used = sum(pipeline.stage_latencies.values())
|
||||
assert used < budget_ms, f"매 over budget: {used}ms"
|
||||
```
|
||||
|
||||
### Pattern 7: Hick's Law menu design
|
||||
```python
|
||||
import math
|
||||
def menu_rt(n_options, a=0.2, b=0.15):
|
||||
return a + b * math.log2(n_options + 1)
|
||||
# 매 8 options ≈ 0.67s, 16 options ≈ 0.81s — 매 sublinear
|
||||
```
|
||||
|
||||
## 매 결정 기준
|
||||
| 상황 | Approach |
|
||||
|---|---|
|
||||
| 매 button placement | Fitts' Law optimization |
|
||||
| 매 menu structure | Hick's Law (depth vs breadth) |
|
||||
| 매 training app | KR for novice, KP for advanced |
|
||||
| 매 VR app | Latency budget < 20ms motion-to-photon |
|
||||
| 매 teleoperation | Closed-loop with predictive control |
|
||||
| 매 skill assessment | Power-law exponent α + asymptote |
|
||||
|
||||
**기본값**: 매 close the perception-action loop with < 100ms latency.
|
||||
|
||||
## 🔗 Graph
|
||||
- 부모: [[Cognitive Psychology]] · [[Motor Control]]
|
||||
- 응용: [[VR Sickness]] · [[Beat Saber]]
|
||||
- Adjacent: [[Proprioception]]
|
||||
|
||||
## 🤖 LLM 활용
|
||||
**언제**: 매 designing UI/VR/robotics interfaces, 매 modeling skill acquisition, 매 latency budgeting.
|
||||
**언제 X**: 매 pure cognitive tasks (no motor component) — 매 different framework.
|
||||
|
||||
## ❌ 안티패턴
|
||||
- **Ignoring Fitts**: 매 tiny buttons far away — 매 high MT, errors.
|
||||
- **Open-loop teleop**: 매 no feedback → 매 oscillation, drift.
|
||||
- **KR for experts**: 매 expert needs KP detail, not just hit/miss.
|
||||
- **Latency creep**: 매 every render-pipeline change without latency budget audit.
|
||||
|
||||
## 🧪 검증 / 중복
|
||||
- Verified (Fitts 1954, Schmidt 1975, Magill *Motor Learning*).
|
||||
- 신뢰도 A.
|
||||
|
||||
## 🕓 Changelog
|
||||
| 날짜 | 변경 |
|
||||
|---|---|
|
||||
| 2026-05-08 | Phase 1 |
|
||||
| 2026-05-10 | Manual cleanup — Fitts/Hicks/Schmidt + VR/teleop 응용 |
|
||||
Reference in New Issue
Block a user