[Robot Expert Academy 05] Forward Kinematics — Joint 값이 어떻게 TCP 위치가 되는가
PreciseFlex · Guidance · Motion Control · GPL
Joint Position을 읽는 단계에서 한 걸음 더 나아가, 여러 Joint와 Link의 기하학적 관계가 어떻게 하나의 TCP Position/Pose로 변환되는지 이해합니다. 단순 수식 암기보다 Joint → Link Geometry → Coordinate Transform → TCP라는 사고 흐름을 익히고, 실제 위치오차가 어떻게 발생하고 확대되는지까지 연결합니다.
1. Forward Kinematics가 필요한 이유
Robot Controller가 알고 있는 기본 상태 중 하나는 각 Joint의 위치입니다. 그러나 작업자가 필요한 것은 Gripper, Vacuum Cup, Probe 또는 Needle 끝의 실제 공간 위치입니다. Forward Kinematics는 이 두 세계를 연결합니다.
Joint State → Robot Geometry → Tool/TCP Pose
이 변환을 이해하면 Encoder 값은 정상인데 왜 실제 Tool 위치가 틀릴 수 있는지, Shoulder의 작은 각도오차가 왜 Tool 끝에서 큰 위치오차로 나타나는지, Calibration이 왜 필요한지를 한 체계 안에서 설명할 수 있습니다.

2. PF400을 단순화한 Kinematic Model
제공된 PreciseFlex 매뉴얼에서 PF400은 4축 구조입니다. J1은 Z 방향의 직선운동, J2/J3는 평면상 위치 형성에 중요한 회전축, J4는 Wrist/Tool Rotation 역할로 이해할 수 있습니다. 실제 Controller 모델은 제조사가 정의한 기구 파라미터와 Calibration 정보를 사용하므로, 여기서 소개하는 2-link 식은 원리를 설명하기 위한 Engineering Foundation입니다.
평면부를 Link Length L1, L2와 Joint Angle θ1, θ2로 단순화하면 TCP의 X/Y는 두 Link vector의 합으로 생각할 수 있습니다. 즉 두 Joint를 각각 따로 보는 것이 아니라, 첫 Link의 끝에서 두 번째 Link가 다시 회전하며 최종 TCP를 만든다고 이해해야 합니다.
3. 가장 기본적인 Forward Kinematics 식
Y = L1·sin(θ1) + L2·sin(θ1 + θ2)
첫 번째 항은 첫 Link 끝의 위치이고 두 번째 항은 두 번째 Link가 더해 주는 위치입니다. θ2가 단순히 Base 기준 각도가 아니라 첫 Link에 상대적인 Joint angle이라는 점이 중요합니다. 그래서 두 번째 Link의 절대방향에는 θ1+θ2가 등장합니다.
PF400의 Vertical Axis는 별도의 Z motion으로 결합됩니다. 다만 실제 축 명칭과 내부 좌표 정의는 제조사 매뉴얼/Controller 설정을 우선해야 하며, 본 식을 Firmware 내부 공식으로 해석해서는 안 됩니다.
4. 수식보다 중요한 것은 Vector의 합이다
Forward Kinematics를 처음 접하면 sin과 cos 때문에 어렵게 느껴집니다. 하지만 본질은 단순합니다. 각 Link는 길이와 방향을 가진 Vector이고, Base에서 시작해 이 Vector를 차례대로 더하면 TCP에 도달합니다.
이 관점은 3차원 Robot에서도 그대로 확장됩니다. 차이는 단순한 2D Vector 대신 Rotation과 Translation을 함께 표현하는 Transformation Matrix를 연속해서 곱한다는 점입니다.
Forward Kinematics = 각 Joint/Link의 Transform을 Base에서 Tool까지 순서대로 연결하는 과정
5. Homogeneous Transformation으로 확장하기
일반 Robot Engineering에서는 각 Joint/Link의 Rotation과 Translation을 4×4 Homogeneous Transformation으로 표현할 수 있습니다. Base에서 Tool까지의 Transform은 개념적으로 여러 Transform의 곱으로 나타낼 수 있습니다.
Base→Tool = Base→J1 × J1→J2 × J2→J3 × … × Wrist→Tool
이 방식의 장점은 Position과 Orientation을 하나의 연산 체계에서 처리할 수 있다는 것입니다. Chapter 04에서 다룬 Pose Representation이 여기서 실제 Kinematics 계산과 연결됩니다.
6. Encoder가 정확해도 TCP가 틀릴 수 있는 이유
Encoder는 Joint의 상태를 알려 줍니다. 그러나 Controller가 Joint Position에서 TCP를 계산하려면 Link Geometry, Joint Zero, Tool Offset 등 추가 정보가 필요합니다. 이 값 중 하나가 실제 기구와 다르면 Joint feedback이 일관되어도 TCP는 틀릴 수 있습니다.
대표 원인은 Mechanical Assembly 오차, Belt/Pulley 관계, Joint zero 변화, Calibration parameter, Tool 교체 후 잘못된 Tool Offset, Fixture/RefFrame 오류 등입니다. 따라서 Positioning 문제에서 Encoder만 확인하고 종료하면 원인을 놓칠 수 있습니다.
7. 작은 각도오차가 TCP에서 커지는 원리
회전 Joint의 작은 각도오차 Δθ가 있을 때, 회전중심에서 TCP까지의 유효거리 L이 길수록 Cartesian 위치오차가 커질 수 있습니다. 작은 각도에서는 개념적으로 Δx ≈ L·Δθ로 볼 수 있습니다(Δθ는 radian).
예를 들어 같은 Angular Error라도 Arm이 뻗어 있을 때와 접혀 있을 때 TCP Error의 크기와 방향이 달라질 수 있습니다. 이것이 Workspace 위치별 Accuracy를 따로 평가해야 하는 이유입니다.
더 일반적으로는 작은 Joint Error 벡터가 Cartesian Error로 어떻게 전달되는지 Jacobian을 이용해 Δx ≈ J(q)·Δq 형태로 설명할 수 있습니다. Jacobian은 이후 Velocity, Singularity, Error Propagation을 이해하는 핵심 도구이며 여기서는 개념만 소개합니다.
8. Calibration은 Forward Kinematics 모델을 현실에 맞추는 과정
이론적인 Link Length와 Joint Zero만으로 실제 Robot의 모든 제작·조립 오차를 완벽히 표현하기는 어렵습니다. Calibration은 Controller가 사용하는 Kinematic Model과 실제 Robot Geometry의 관계를 맞추는 중요한 과정입니다.
특정 위치 하나만 맞추는 Point Offset과 Kinematic Calibration은 목적이 다릅니다. 여러 Workspace 영역에서 체계적인 Error Pattern이 보인다면 개별 Point를 계속 수정하기보다 Calibration, Tool Definition, Mechanism을 검토하는 것이 바람직합니다.
9. Figure 5-1 — Forward Kinematics of a PreciseFlex Robot
[Figure 5-1 삽입 위치]
Figure 5-1. Forward Kinematics — From Joint State to TCP Pose
Conceptual relationship among Joint Angles, Link Geometry, Vertical Motion, Coordinate Transformation, TCP Position, Work Envelope and Singularity.
※ 이번 편 전용 인포그래픽을 첨부했습니다. 책 편집 시 Forward Kinematics 장의 Overview Figure로 활용하기 좋습니다.
10. 현장 진단 — 오차 패턴으로 원인을 역추적한다
| Error Pattern | Primary Suspect | Engineering Check |
|---|---|---|
| Joint feedback unstable | Encoder / Servo / Transmission | Joint diagnostics |
| Error grows as arm extends | Angular / Geometry Error | Calibration / Mechanism |
| Error changes with Tool rotation | TCP / Tool Offset | Tool calibration |
| Nearly constant offset everywhere | Base / RefFrame | Fixture datum |
11. 현장 실습 — Joint를 움직이고 TCP 궤적을 기록한다
안전한 저속에서 J2를 일정 간격으로 Jog하면서 J3를 고정하고 X/Y를 기록합니다. 다음에는 J2를 고정하고 J3를 변화시킵니다. 마지막으로 두 축을 함께 변화시켜 TCP path를 관찰합니다.
가능하다면 Controller의 Calculated Position과 외부 측정 TCP를 동시에 기록합니다. 그래프에는 Joint Angle, Calculated X, Calculated Y, Measured X, Measured Y, TCP Error처럼 English label을 사용합니다.
이 실습을 통해 “Joint 하나를 움직이면 TCP가 직선으로 움직일 것”이라는 직관이 항상 맞지 않는다는 것을 직접 확인할 수 있습니다.
12. Vision과 Forward Kinematics의 연결
Vision이 Robot에게 Target Pose를 제공한다고 해도 최종적으로 Motor가 움직이려면 Target을 Joint Space로 변환해야 합니다. 반대로 현재 Joint State에서 Camera 또는 Tool이 어디에 있는지 계산하려면 Forward Kinematics가 필요합니다.
따라서 Vision Guided Robotics는 Camera Calibration만의 문제가 아닙니다. Camera Geometry + Frame Transformation + Robot Kinematics + Tool Calibration이 하나의 Chain을 이룹니다. 향후 Hand-Eye Calibration을 다룰 때 이 구조가 다시 등장합니다.
13. Quality Evaluation → Correction → Re-evaluation
Quality Evaluation: Near / Center / Far Workspace에서 Joint Position, Calculated TCP, Externally Measured TCP를 반복 측정합니다. Arm extension과 Tool orientation 조건을 바꿔 Error Map을 만듭니다.
Correction: Error Pattern에 따라 Encoder/Homing, Mechanical Transmission, Calibration, Tool Offset, Base/RefFrame을 계층적으로 수정합니다. 원인이 확인되기 전에 Servo Gain이나 개별 Teaching Point부터 변경하지 않습니다.
Re-evaluation: Correction에 사용하지 않은 Verification Point에서 동일한 측정을 반복합니다.
Stabilization: Homing/Power Cycle 이후와 장시간 반복운전 이후에도 Forward Kinematics 기반 위치 결과가 재현되는지 확인합니다. Acceptance Limit은 공정 요구에 따라 Project-specific TBD로 정의합니다.
Forward Kinematics는 단순한 삼각함수 공식이 아닙니다. Encoder가 읽은 Joint State를 실제 공정점인 TCP로 연결하는 Robot의 공간 모델입니다. 이 모델을 이해해야 Calibration, Accuracy, Vision Integration과 Position Error를 제대로 진단할 수 있습니다.
14. 다음 편 예고
6편 — Inverse Kinematics: From Target Pose to Joint Motion
다음 편에서는 반대로 원하는 TCP Position/Pose가 주어졌을 때 어떤 Joint 상태를 만들어야 하는지 살펴봅니다. Multiple Solutions, Reachability, Joint Limit, Configuration Selection과 실제 Motion Planning 문제까지 연결합니다.
Manual Basis
PF400의 축 구조 및 제품 고유 사항은 제공된 Brooks Automation PreciseFlex 300/400/3400 Robots, P/N PF40-DI-00010 Rev 5.6.0을 기준으로 정리했습니다. 2-link Forward Kinematics, Homogeneous Transformation, Jacobian 기반 오차전파 설명은 일반 Robot Engineering의 Engineering Foundation이며 PreciseFlex Firmware 내부 계산식을 의미하지 않습니다.
Tags
#RobotExpertAcademy #PreciseFlex #ForwardKinematics #RobotKinematics #TCP #JointSpace #CartesianSpace #KinematicChain #RobotCalibration #ErrorPropagation #Jacobian #ToolFrame #MotionControl #VisionGuidedRobotics #IndustrialRobot #Automation #RobotEngineering