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