---
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 응용 |
