[Robot Expert Academy 06] Inverse Kinematics — Target Pose에서 Joint Motion까지
PreciseFlex · Guidance · Motion Control · GPL
Forward Kinematics가 Joint State에서 TCP Pose를 계산하는 과정이었다면, Inverse Kinematics는 원하는 Target Pose를 만들기 위해 필요한 Joint State를 찾는 과정입니다. 이번 편에서는 수식보다 중요한 Reachability, Multiple Solutions, Joint Limit, Configuration, Singularity, Motion Path까지 연결해 실제 장비에서 IK를 어떻게 바라봐야 하는지 설명합니다.
1. Robot Program의 명령은 왜 Inverse Kinematics를 필요로 하는가?
작업자는 보통 ‘J2를 몇 도 돌려라’보다 ‘이 Tray Pocket으로 이동하라’, ‘이 Die 중심을 Pick하라’처럼 공정 공간의 Target을 정의합니다. Controller 입장에서는 이 Cartesian Target을 실제 Motor가 움직일 Joint 값으로 변환해야 합니다.
Target Position/Pose → Inverse Kinematics → Joint Target → Motion Control → Robot Motion
따라서 IK는 Cartesian Programming과 Joint Servo 사이를 연결하는 핵심 계층입니다.

2. Forward와 Inverse Kinematics는 서로 반대 방향이다
Forward Kinematics는 현재 Joint 값 q가 주어졌을 때 TCP Pose x를 계산합니다. 개념적으로 x=f(q)입니다. Inverse Kinematics는 원하는 x가 주어졌을 때 이를 만족하는 q를 찾는 문제입니다.
그러나 역문제는 단순히 Forward 식을 거꾸로 계산하는 것보다 어렵습니다. 어떤 Target에는 해가 없을 수 있고, 어떤 Target에는 둘 이상의 Joint Configuration이 존재할 수 있기 때문입니다.
3. 2-Link Planar Robot으로 IK 원리를 이해하기
PF400의 평면부를 원리 설명을 위한 2-link model로 단순화하면 Target (X,Y)까지의 거리 r과 Link Length L1, L2의 기하관계로 Joint Angle을 구할 수 있습니다. 대표적으로 cosine law를 이용하면 θ2의 후보를 얻고, atan2 관계를 이용해 θ1을 구할 수 있습니다.
cos θ2 = (r² − L1² − L2²) / (2·L1·L2)
이 식은 PreciseFlex Firmware의 내부 IK 구현을 뜻하지 않는 Engineering Foundation입니다. 실제 Controller는 제조사가 정의한 Robot Model과 Configuration을 사용합니다.
4. 하나의 Target에 여러 해가 존재할 수 있다
Articulated 구조에서는 동일한 TCP 위치를 서로 다른 Joint 조합으로 만들 수 있습니다. 일반적인 2-link 예에서는 흔히 Elbow-up과 Elbow-down 같은 두 Configuration으로 설명합니다.
수학적으로 둘 다 Target에 도달한다고 해서 생산설비에서 둘 다 좋은 해는 아닙니다. 한 해는 Cable/Fixture와 간섭할 수 있고, 다른 해는 Joint Limit에 너무 가까울 수 있습니다. 따라서 IK의 실제 문제는 해를 찾는 것에서 끝나지 않고 가장 적절한 해를 선택하는 것까지 포함합니다.
Best IK Solution = Reachable + Safe Margin + Collision-free + Stable Configuration + Suitable Cycle Time
5. Reachability — Target이 Workspace 안에 있는가?
2-link planar model에서 Target까지의 거리 r은 대략 |L1−L2|와 L1+L2 사이에 있어야 해가 존재합니다. PF400 실제 Workspace는 Joint Range, Vertical Stroke, Tool/Gripper configuration 등 더 많은 조건에 의해 제한됩니다.
따라서 CAD에서 Robot Reach 원 안에 Station이 들어온다고 해서 모든 Target Pose가 실제로 사용 가능한 것은 아닙니다. Orientation과 Approach/Retreat path까지 고려해야 합니다.
6. Joint Limit — 도달 가능과 운전 적합은 다르다
Target이 수학적으로 Reachable하더라도 특정 Joint가 Limit 근처에 위치하면 생산운전에 불리할 수 있습니다. Fixture 위치가 조금 변하거나 Vision Compensation이 추가되는 순간 Limit을 넘어갈 수 있기 때문입니다.
그래서 Workcell 설계에서는 최대 Reach보다 Joint Limit Margin을 확보하는 것이 중요합니다. Station을 배치할 때 Nominal Point뿐 아니라 공정 허용오차, Vision Offset, Model Change, Approach Point까지 포함한 범위를 검토해야 합니다.
7. Singularity와 IK의 관계
특정 Kinematic Configuration에서는 작은 Cartesian 변화가 큰 Joint 변화로 이어질 수 있습니다. 일반 Robot Engineering에서 이러한 상태는 Singularity와 관련됩니다. 이 부근에서는 해 선택과 Velocity 변환이 민감해지고 Motion이 불안정하게 보일 수 있습니다.
제공된 PreciseFlex 매뉴얼이 일반 교과서 수준의 Singularity 수학을 정의하는 것은 아니므로 이 절은 Engineering Foundation입니다. 제품 고유 동작과 Limit은 반드시 Controller/Robot 매뉴얼을 우선해야 합니다.
8. IK Solution과 Motion Path는 같은 문제가 아니다
Target Point에 유효한 IK Solution이 있다고 해서 현재 위치에서 그 Target까지 안전하게 이동할 수 있다는 뜻은 아닙니다. 시작점과 끝점 사이에 Fixture, Camera, Tray, Cable, Robot 자체 구조물이 있을 수 있습니다.
따라서 실제 Robot Program은 IK + Path Planning + Collision/Interlock + Motion Profile을 함께 고려해야 합니다. Pick & Place에서 Approach Point와 Retract Point를 두는 것도 이러한 이유입니다.
9. RefFrame과 Tool Definition이 틀리면 IK도 올바른 답을 낼 수 없다
Inverse Kinematics는 입력된 Target Pose가 정확하다는 전제에서 Joint 값을 계산합니다. Base/RefFrame이나 TCP/Tool Offset이 잘못되어 있다면 IK 계산 자체는 논리적으로 정상이어도 실제 Robot은 잘못된 위치로 이동합니다.
이 때문에 ‘Robot이 엉뚱한 Joint 자세로 간다’는 현상을 바로 IK 문제로 단정하면 안 됩니다. 먼저 Target Frame → Tool Definition → Robot Calibration → Joint State의 순서로 입력조건을 확인해야 합니다.
10. Figure 6-1 — Inverse Kinematics and Solution Selection
[Figure 6-1 삽입 위치]
Figure 6-1. Inverse Kinematics — From Target Pose to Joint Motion
Target Pose, multiple joint solutions, workspace, joint limits, singularity and solution-selection concept for a PreciseFlex-style 4-axis robot.
※ 이번 편 전용 인포그래픽을 첨부했습니다. 책 편집 시 IK 장의 Overview Figure로 활용할 수 있습니다.
11. 현장에서 자주 만나는 IK 관련 증상
| Symptom | Possible Cause | First Check |
|---|---|---|
| Target cannot be reached | Outside Workspace / Limit | Target & Joint Margin |
| Unexpected arm configuration | Alternative IK Solution | Configuration / Start Pose |
| Large joint change near one pose | Kinematic Sensitivity | Singularity Margin |
| Calculated move is consistently offset | Frame / TCP Error | RefFrame / Tool Definition |
12. 현장 실습 — Target Grid로 IK의 성격을 관찰한다
안전한 저속에서 Workspace의 Near / Center / Far 영역에 Target Grid를 만들고 각 Target에서 Joint Position을 기록합니다. 인접한 Cartesian Target 사이에서 J2/J3가 얼마나 변하는지 비교하고 Joint Limit에 가까워지는 구간을 표시합니다.
가능하다면 같은 Target에 접근하는 Start Pose를 바꿔 Configuration 변화가 있는지도 관찰합니다. 그래프 표기는 Target X, Target Y, Joint 2 Angle, Joint 3 Angle, Joint Margin, TCP Error처럼 English로 구성합니다.
이 실습은 ‘Cartesian에서는 작은 이동인데 Joint Space에서는 큰 변화’가 생길 수 있다는 사실을 직접 확인하는 데 목적이 있습니다.
13. Vision Guided Pick에서 IK는 어디에 위치하는가?
Vision이 Part의 Position/Rotation을 검출하면 해당 결과는 Robot Reference Frame으로 변환되어 Target Pose가 됩니다. 그 다음 IK가 이 Target을 Joint Target으로 바꾸고 Motion Controller가 실제 축을 움직입니다.
Image → Object Pose → Frame Transform → Robot Target Pose → IK → Joint Motion → Servo
따라서 Vision Pick 오차를 분석할 때는 Vision Accuracy와 IK를 섞어 판단하지 않고 Chain을 단계별로 검증해야 합니다.
14. Quality Evaluation → Correction → Re-evaluation
Quality Evaluation: Near / Center / Far 영역에서 Target Pose, Selected Joint State, Joint Margin, Calculated TCP, Measured TCP를 기록합니다. Approach/Retreat까지 포함하여 Configuration이 안정적으로 유지되는지 확인합니다.
Correction: 문제 유형에 따라 Station Layout, Target Pose, RefFrame/TCP, Calibration, Approach Path 또는 Motion Profile을 수정합니다. Acceptance Limit은 공정별 Project-specific TBD로 정의합니다.
Re-evaluation: 수정에 사용하지 않은 Verification Target과 다른 Start Pose에서도 다시 평가합니다.
Stabilization: Homing/Power Cycle 및 장시간 반복운전 후에도 동일 Target에서 Solution/Configuration과 공정 결과가 안정적으로 재현되는지 확인합니다.
Inverse Kinematics의 목표는 단순히 ‘Joint Angle을 계산하는 것’이 아닙니다. 실제 장비에서는 Reachable하고, Joint Margin이 충분하며, 간섭이 없고, 안정적으로 반복 가능한 Joint Solution을 선택하는 것까지가 IK Engineering입니다.
15. 다음 편 예고
7편 — Workspace, Reachability and Singularities
다음 편에서는 Robot이 ‘갈 수 있는 곳’과 ‘생산에 안정적으로 사용할 수 있는 곳’의 차이를 다룹니다. Work Envelope, Joint Margin, Singular Region, Station Layout과 실제 Workcell 설계까지 연결합니다.
Manual Basis
PF400의 축 구조와 제품 고유 Motion 범위는 제공된 Brooks Automation PreciseFlex 300/400/3400 Robots, P/N PF40-DI-00010 Rev 5.6.0을 기준으로 합니다. 2-link IK 수학, Elbow-up/down, Singularity 및 일반 Solution Selection 설명은 Robot Engineering의 Engineering Foundation이며 PreciseFlex Firmware의 내부 IK 알고리즘이나 GPL 명령을 의미하지 않습니다.
Tags
#RobotExpertAcademy #PreciseFlex #InverseKinematics #RobotKinematics #TargetPose #JointSpace #CartesianSpace #Reachability #JointLimit #Singularity #MotionPlanning #TCP #RefFrame #RobotCalibration #VisionGuidedRobotics #MotionControl #IndustrialRobot #Automation #RobotEngineering