Skip to main content
Isaac Sim에서 Closed Loop 로봇 다루기
Robotics

Isaac Sim에서 Closed Loop 로봇 다루기

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

WRWIM Robotics Team
·
isaac-simarticulationclosed-loop

Isaac Sim에서 Closed Loop 로봇 다루기

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

이 글에서는 PhysX 물리 엔진의 Articulation 원리를 설명하고, Guide JointExclude 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. DefaultGuide로 변경

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에서 다룰 때, 이 두 가지 설정을 기억하세요. 물리적 구조를 이해하고 적절한 조인트에 적용하면, 복잡한 메커니즘도 안정적으로 시뮬레이션할 수 있습니다.