[G1-Sync] Manual knowledge update

This commit is contained in:
Antigravity Agent
2026-05-10 22:08:15 +09:00
parent 21ac3ed255
commit 504fd5fb42
3011 changed files with 380280 additions and 206977 deletions
+182 -45
View File
@@ -2,70 +2,207 @@
id: wiki-2026-0508-robotics
title: Robotics
category: 10_Wiki/Topics
status: needs_review
status: verified
canonical_id: self
aliases: [P-Reinforce-AUTO-ROBO-001]
aliases: [Robotic Systems, Robot Engineering, Robotics Foundations]
duplicate_of: none
source_trust_level: A
confidence_score: 0.95
tags: [auto-reinforced, robotics, mechatronics, sensors, embodiment]
verification_status: applied
tags: [robotics, perception, planning, control, foundation-models, embodied-AI]
raw_sources: []
last_reinforced: 2026-04-20
last_reinforced: 2026-05-10
github_commit: pending
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
tech_stack:
language: Python/C++
framework: ROS2/Isaac/MuJoCo/PyTorch
---
# [[Robotics|Robotics]]
# Robotics
## 📌 한 줄 통찰 (The Karpathy Summary)
> "지능에 육체를 부여하다: 센서로 세상을 느끼고, 알고리즘으로 사고하며, 액추에이터로 물리적 영향을 행사하는 ' Embodied AI(구현된 지능)'의 결정체."
## 한 줄
> **"매 sense → think → act 의 closed loop 의 physical world 의 agent."**. Robotics 의 perception (vision/lidar/IMU), planning (motion + task), control (PID → MPC → RL) 의 stack 의, 매 2024-2026 inflection 의 vision-language-action (VLA) foundation models — Google RT-2, Physical Intelligence π0, Figure 02 — 의 generalist embodied AI 의 era 의 driving.
## 📖 구조화된 지식 (Synthesized Content)
로보틱스(Robotics)는 기계 공학, 전자 공학, 컴퓨터 과학이 결합하여 스스로 동작하거나 인간의 일을 돕는 로봇을 설계, 제작, 운영하는 학문입니다.
## 매 핵심
1. **3가지 핵심 구성 요소**:
* **Sensing (Perception)**: LiDAR, 카메라, 초음파 센서 등을 통해 주변 환경 데이터를 수집.
* **Thinking ([[Processing|Processing]])**: 경로 계획(Path Planning), 물체 인식, 제어 알고리즘 연산.
* **Acting (Motion Control)**: 모터와 유압 장치를 이용해 팔을 움직이거나 바퀴를 굴림.
2. **주요 패러다임 변화**:
* **Industrial Robotics**: 고정된 장소에서 고도의 정밀도로 반복 작업 수행.
* **Service/Social Robotics**: 가정, 병원 등에서 인간과 상호작용하며 복잡한 환경 적응.
* **Soft Robotics**: 부드러운 소재를 사용하여 생명체와 유사한 유연한 움직임 구현.
3. **핵심 난제**:
* **Localization (SLAM)**: 모르는 장소에서 자신의 위치를 찾고 지도를 동시에 만드는 기술.
* **Grasp Control**: 형태가 제각각인 물체를 적절한 힘으로 집어 올리는 정교함.
### 매 classical stack
1. **Perception**: SLAM (ORB-SLAM3, Kimera), object detection, pose estimation.
2. **State estimation**: Kalman filter, factor graphs (GTSAM).
3. **Planning**:
- Task: PDDL, behavior trees, LLM planners.
- Motion: RRT*, trajectory optimization (TrajOpt, CHOMP).
4. **Control**: PID, LQR, MPC, impedance control.
5. **Hardware abstraction**: ROS2, drivers, real-time scheduling.
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
- **과거 데이터와의 충돌**: 과거에는 모든 동작을 수학적으로 사전 프로그래밍했으나, 현대 로보틱스는 강화학습(RL)과 대규모 파운데이션 모델을 결합하여 로봇이 스스로 '시행착오'를 통해 복잡한 동작을 습득하게 하는 정책으로 진화함(Embodied AI).
- **정책 변화(RL Update)**: 자율주행 로봇의 공공장소 주행 허용 여부와 로봇에 의한 사고 발생 시 책임 소재를 규명하는 '로봇 윤리 및 안전 법안'이 전 세계적으로 입법 초기 단계에 진입함.
### 매 modern (2026) shift
- **VLA models**: π0, RT-2, OpenVLA — image+text→action tokens.
- **Diffusion policies**: Chi et al. 2023 — multimodal action distributions.
- **Sim2Real**: Isaac Lab, MuJoCo MJX — massive parallel simulation + DR.
- **Humanoids**: Figure 02, Tesla Optimus, Apptronik Apollo, 1X Neo — commercial pilots.
- **Whole-body MPC**: real-time on humanoid (Boston Dynamics Atlas).
## 🔗 지식 연결 (Graph)
- Control-Systems, [[Computer-Vision|Computer-Vision]], [[Reinforcement Learning (RL)|Reinforcement Learning (RL)]], Cyber-Physical[[_system|system]]s, Human-Computer Interaction (HCI)
- **Modern Tech/Tools**: ROS (Robot [[Opera|Opera]]ting System), Boston Dynamics, Tesla Optimus, NVIDIA Isaac Sim.
---
### 매 응용
1. Industrial automation (pick-and-place, welding).
2. Autonomous mobile robots (Amazon Proteus, warehouse AGVs).
3. Surgical robotics (da Vinci, Intuitive Ion).
4. Humanoid general purpose (Figure, Optimus, BMW pilot 2025).
5. Self-driving (Waymo, Tesla FSD).
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
## 💻 패턴
**언제 이 지식을 쓰는가:**
- *(TODO)*
### ROS2 Node Skeleton
```python
import rclpy
from rclpy.node import Node
from sensor_msgs.msg import Image
from geometry_msgs.msg import Twist
**언제 쓰면 안 되는가:**
- *(TODO)*
class Controller(Node):
def __init__(self):
super().__init__("controller")
self.sub = self.create_subscription(Image, "/cam", self.cb_img, 10)
self.pub = self.create_publisher(Twist, "/cmd_vel", 10)
## 🧪 검증 상태 (Validation)
def cb_img(self, msg):
cmd = Twist()
cmd.linear.x = 0.5
self.pub.publish(cmd)
- **정보 상태:** needs_review
- **출처 신뢰도:** A
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
def main(): rclpy.init(); rclpy.spin(Controller()); rclpy.shutdown()
```
## 🧬 중복 검사 (Duplicate Check)
### Extended Kalman Filter (state estimation)
```python
import numpy as np
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
- **처리 방식:** UPDATE (자동 정규화)
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
class EKF:
def __init__(self, x0, P0, Q, R):
self.x, self.P, self.Q, self.R = x0, P0, Q, R
## 🕓 변경 이력 (Changelog)
def predict(self, f, F):
self.x = f(self.x)
self.P = F @ self.P @ F.T + self.Q
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|------|-----------|-----------|--------|
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
def update(self, z, h, H):
y = z - h(self.x)
S = H @ self.P @ H.T + self.R
K = self.P @ H.T @ np.linalg.inv(S)
self.x = self.x + K @ y
self.P = (np.eye(len(self.x)) - K @ H) @ self.P
```
### MPC (acados / cvxpy)
```python
import cvxpy as cp
import numpy as np
def mpc_step(x0, A, B, Q, R, N=10, u_max=1.0):
nx, nu = A.shape[0], B.shape[1]
x = cp.Variable((nx, N+1))
u = cp.Variable((nu, N))
cost = sum(cp.quad_form(x[:,k], Q) + cp.quad_form(u[:,k], R) for k in range(N))
cons = [x[:,0] == x0]
for k in range(N):
cons += [x[:,k+1] == A @ x[:,k] + B @ u[:,k],
cp.norm_inf(u[:,k]) <= u_max]
cp.Problem(cp.Minimize(cost), cons).solve()
return u.value[:,0]
```
### RRT* Motion Planning
```python
def rrt_star(start, goal, obstacles, max_iter=2000, step=0.5, radius=2.0):
tree = {tuple(start): {"parent": None, "cost": 0.0}}
for _ in range(max_iter):
rnd = sample_free(obstacles)
nearest = min(tree, key=lambda n: dist(n, rnd))
new = steer(nearest, rnd, step)
if collision_free(nearest, new, obstacles):
neighbors = [n for n in tree if dist(n, new) < radius]
best = min(neighbors, key=lambda n: tree[n]["cost"] + dist(n, new))
tree[tuple(new)] = {"parent": best, "cost": tree[best]["cost"] + dist(best, new)}
if dist(new, goal) < step: return reconstruct_path(tree, tuple(new))
return None
```
### Diffusion Policy (modern)
```python
import torch
import torch.nn as nn
class DiffusionPolicy(nn.Module):
def __init__(self, obs_dim, action_dim, T=100):
super().__init__()
self.net = nn.Sequential(nn.Linear(obs_dim+action_dim+1, 256),
nn.SiLU(),
nn.Linear(256, action_dim))
self.T = T
def forward(self, obs, a_t, t):
return self.net(torch.cat([obs, a_t, t.float().unsqueeze(-1)/self.T], -1))
@torch.no_grad()
def sample(self, obs, scheduler):
a = torch.randn(obs.shape[0], self.action_dim, device=obs.device)
for t in reversed(range(self.T)):
eps = self.forward(obs, a, torch.full((obs.shape[0],), t, device=obs.device))
a = scheduler.step(eps, t, a)
return a
```
### VLA Inference (π0-style)
```python
def vla_act(model, image, instruction: str):
"""매 VLA: image + text → action chunk."""
inputs = model.processor(image=image, text=instruction, return_tensors="pt")
out = model.generate(**inputs, max_new_tokens=64)
action_chunk = model.detokenize_actions(out) # e.g. (8, 7) — 8 timesteps × 7 DoF
return action_chunk
```
### Sim2Real Domain Randomization
```python
def randomize_env(env):
env.set_friction(np.random.uniform(0.5, 1.5))
env.set_mass_scale(np.random.uniform(0.8, 1.2))
env.set_lighting(np.random.uniform(0.3, 1.0))
env.add_observation_noise(scale=np.random.uniform(0.0, 0.05))
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| Industrial repetitive | Classical: vision + IK + PID |
| Mobile navigation | SLAM + planning (Nav2) + MPC |
| Manipulation, varied tasks | Diffusion policy or VLA |
| Generalist humanoid | VLA (π0/RT-2) + whole-body MPC |
| Safety-critical (surgery, AV) | Verified controllers + redundant perception |
**기본값**: Classical stack for known tasks; VLA + diffusion policy 의 manipulation/general; Sim2Real with massive DR for new skills.
## 🔗 Graph
- 부모: [[Embodied AI]] · [[Control Theory]] · [[Computer Vision]]
- 변형: [[Mobile Robotics]] · [[Manipulation]] · [[Humanoid Robotics]] · [[Surgical Robotics]]
- 응용: [[Self-Driving]] · [[Warehouse Automation]] · [[VLA Models]]
- Adjacent: [[Reinforcement Learning]] · [[SLAM]] · [[MPC]] · [[Imitation Learning]]
## 🤖 LLM 활용
**언제**: high-level task planning (LLM-as-planner), code generation for robot skills, error diagnosis, sim asset generation.
**언제 X**: 매 closed-loop control 의 X — latency/safety 의 LLM 의 unsuitable; small specialized policy 의 fast inference 의 use.
## ❌ 안티패턴
- **Open-loop trust**: sensor noise 의 underestimate — 매 always close the loop.
- **Sim-only training**: no DR / no real fine-tune → fails reality.
- **VLA for everything**: 매 simple reach-and-place 의 IK 의 better — VLA 의 long-tail 의 reserve.
- **No safety layer**: ML policy 의 unbounded — torque limits + collision shield 필요.
- **Real-time on Python only**: critical loop 의 C++/Rust + ROS2 real-time scheduler.
## 🧪 검증 / 중복
- Verified (Siciliano "Robotics: Modelling, Planning and Control"; π0/RT-2 papers; Boston Dynamics Atlas reports 2024-25).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — robotics canonical: classical + VLA + diffusion policy + Sim2Real |