본문으로 건너뛰기
시뮬레이터

Isaac Sim에서 Closed Loop 로봇 다루기

델타 로봇, 병렬 링크 그리퍼 등 폐쇄형 루프 구조의 로봇이 Isaac Sim에서 동작하지 않는 문제를 Guide Joint와 Exclude From Articulation으로 해결하는 방법을 다룹니다.

WRWIM Robotics Team
·
isaac-simarticulationclosed-loop

델타 로봇이나 복잡한 그리퍼를 Isaac Sim에 로딩했더니 시뮬레이션이 시작되지 않거나, 관절이 풀어지는 현상을 경험한 적 있으신가요? 이는 Isaac Sim의 Articulation 시스템이 폐쇄형 루프(Closed Loop) 구조를 직접 지원하지 않기 때문입니다.

이 글에서는 PhysX 물리 엔진의 Articulation 원리를 설명하고, Guide Joint와 Exclude From Articulation 두 가지 방법으로 Closed Loop 문제를 해결하는 실전 사례를 공유합니다.

Articulation이란?​

Articulation은 Isaac Sim에서 로봇의 움직임을 정의하는 핵심 단위입니다. 단순히 링크(Link)와 조인트(Joint) 사이의 연결 관계만 시각화하는 RViz 같은 도구와 달리, Isaac Sim은 NVIDIA의 물리 엔진 PhysX를 기반으로 동작합니다.

PhysX의 물리 파라미터​

PhysX는 단순한 기하학적 연결이 아니라, 다음과 같은 물리적 파라미터를 활용하여 시뮬레이션합니다:

파라미터설명영향
Mass링크의 질량중력, 관성력 계산
Inertia관성 텐서회전 운동 동역학
Friction마찰 계수접촉 시 미끄러짐
Damping감쇠 계수진동 억제
Stiffness강성위치 유지력

트리 순회 알고리즘​

PhysX는 로봇을 트리(Tree) 구조로 해석합니다:

Base Link (Articulation Root)
└── Link 1
└── Link 2
└── Link 3
└── ...
└── Tool (End Effector)

이 트리 구조에서 순회 알고리즘(Traversal Algorithm)을 활용하여 루트(Root)에서 말단(Tip)으로 순차적으로 힘과 운동학을 계산합니다.

일반적인 6축 또는 7축 로봇 팔은 완전한 트리 구조를 이루므로 문제가 없습니다. 각 링크가 정확히 하나의 부모와 하나의 자식만 가지기 때문에, 순회 알고리즘이 한 방향으로 깔끔하게 진행됩니다.

문제 상황: Closed Loop 구조​

델타 로봇의 구조​

델타 로봇(Delta Robot)은 병렬 링크 구조의 대표적인 예입니다:

        /-- Bicep 1 --- Forearm 1 --\
Base ---+-- Bicep 2 --- Forearm 2 ---+--- Platform --- Tool
\-- Bicep 3 --- Forearm 3 --/

세 개의 팔이 각각 독립적으로 시작해서 하나의 플랫폼에서 만납니다. 이렇게 링크로 만들어지는 폐쇄형 루프(Closed Loop)가 존재하면, 순회 과정에서 하위 링크의 움직임이 상위 링크에 영향을 미치는 순환 참조가 발생합니다.

그리퍼의 Closed Loop​

그리퍼도 마찬가지입니다. 평행 그리퍼(Parallel Gripper)의 핑거 메커니즘은 4절 링크 구조로, 작은 공간 안에 폐쇄형 루프를 형성합니다.

이런 구조를 그대로 Isaac Sim에 로딩하면:

  1. 시뮬레이션이 시작되지 않음 - PhysX가 트리 구조를 파싱하지 못함
  2. 관절이 풀어지는 현상 - 순환 참조로 인한 힘 계산 오류
  3. 불안정한 진동 - 충돌하는 제약 조건들

해결 솔루션​

Isaac Sim은 순환 구조를 끊어주거나 우회하는 두 가지 핵심 기능을 제공합니다.

방법 A: Guide Joint 활용​

실제 하드웨어를 분석해보면, Closed Loop를 구성하는 모든 관절에 모터가 달려있지 않습니다. 보통 구동 축(Active Joint)는 하나이고, 나머지는 그 움직임에 따라 수동적으로 딸려 움직이는 종동 관절(Passive Joint)입니다.

Isaac Sim에서 모든 조인트의 Purpose를 기본값인 Default로 설정하면, 모든 관절이 각자의 위치를 유지하려는 힘을 가지게 됩니다. 그 결과 관절들이 서로 싸우는 현상이 발생합니다.

Guide Joint 설정 방법:

  1. Isaac Sim에서 해당 조인트 선택
  2. Properties 패널에서 Joint > Purpose 속성 찾기
  3. Default → Guide로 변경

Guide로 설정된 조인트는:

  • 물리적 저항력 없이 위치가 결정됨
  • 다른 조인트의 움직임에 수동적으로 따라감
  • Articulation 순회에서 힘 계산에서 제외됨

방법 B: Exclude From Articulation​

Guide Joint 설정만으로 부족할 때가 있습니다. Guide Joint도 순회 알고리즘의 경로에는 여전히 포함되어 있기 때문입니다.

순환 참조를 완전히 막으려면, 루프를 이루는 관절 중 하나를 강제로 끊어야 합니다.

Exclude From Articulation은 조인트의 물리적 연결은 유지하되, Articulation 계산상에서는 해당 조인트를 없는 것으로 취급합니다:

  • 물리적으로: 링크들이 연결되어 있음
  • 계산상으로: 연결이 끊겨 있음

그 결과 순회 알고리즘이 루프에 갇히지 않고 계산을 완료할 수 있습니다.

설정 방법:

  1. 루프를 이루는 조인트 중 하나 선택 (보통 몸체에 연결된 Guide Joint)
  2. Properties 패널에서 Exclude From Articulation 체크박스 활성화

언제 어떤 방법을 사용할까?​

상황권장 방법
종동 관절이 명확히 구분됨Guide Joint만 적용
Guide Joint 적용 후에도 불안정Guide + Exclude From Articulation
복잡한 병렬 링크 구조루프마다 하나씩 Exclude

실제 적용 예시: OnRobot RG6 그리퍼​

OnRobot사의 RG6 그리퍼를 Isaac Sim에서 동작시킨 실제 사례입니다.

RG6 그리퍼 구조 분석​

OnRobot RG6 그리퍼 구조

OnRobot RG6 그리퍼의 전체 구조 - 양쪽 핑거에 4절 링크 메커니즘 탑재

RG6 그리퍼는 한 핑거에 4개의 조인트가 맞물려 돌아가는 전형적인 Closed Loop 구조입니다.

조인트 타입 설정​

핑거의 조인트 타입 설정

한 핑거의 조인트 구성: 녹색 = Guide Joint, 주황색 = Active Joint

적용한 설정:

  1. Active Joint (주황색, 1개)

    • 실제 모터가 연결된 구동 조인트
    • Purpose: Default 유지
    • 위치/속도 제어 대상
  2. Guide Joint (녹색, 3개)

    • 수동적으로 따라 움직이는 종동 조인트
    • Purpose: Guide로 변경
    • 그 중 몸체에 연결된 조인트만 Exclude From Articulation 체크

결과​

이 설정으로 RG6 그리퍼가 Isaac Sim에서 안정적으로 동작합니다:

  • 시뮬레이션 시작 시 관절이 풀어지지 않음
  • Active Joint에 위치 명령을 주면 전체 링키지가 동기화되어 움직임
  • 물체 파지(Grasping) 시뮬레이션 정상 동작

Guide Joint와 Exclude From Articulation 적용 후 RG6 그리퍼의 실제 동작

핵심 정리​

  1. Isaac Sim의 Articulation은 PhysX의 트리 순회 알고리즘 기반으로, 폐쇄형 루프 구조를 직접 지원하지 않습니다.

  2. Closed Loop 문제 증상: 시뮬레이션 미시작, 관절 풀림, 불안정한 진동

  3. Guide Joint는 종동 관절의 물리적 저항력을 제거하여 관절 간 충돌을 방지합니다.

  4. Exclude From Articulation은 Articulation 계산에서 조인트를 제외하여 순환 참조를 끊습니다.

  5. 두 방법을 조합하여 복잡한 병렬 링크 구조도 시뮬레이션할 수 있습니다.

델타 로봇, 병렬 그리퍼, Stewart 플랫폼 등 Closed Loop 구조의 로봇을 Isaac Sim에서 다룰 때, 이 두 가지 설정을 기억하세요. 물리적 구조를 이해하고 적절한 조인트에 적용하면, 복잡한 메커니즘도 안정적으로 시뮬레이션할 수 있습니다.