Open Source Robotics

고품질 오픈소스 로봇 프로젝트, 도구 및 소프트웨어의 엄선된 컬렉션.

Task-Priority Inverse Kinematics

  • 다른 이름: hierarchical inverse kinematics, prioritized inverse kinematics
  • 카테고리: Foundations & spatial maths › Kinematics
  • 태그: inverse-kinematics, redundancy-resolution, whole-body-control, optimization, humanoids

작업에 순위를 매기고, 낮은 우선순위의 각 작업을 높은 우선순위 작업에 영향을 주지 않는 운동 안에서만 푸는, 여유자유도 로봇을 위한 역기구학.

정의

작업 우선순위 역기구학(task-priority inverse kinematics)은 여유자유도 로봇이 균형 유지, 손 배치, 시선 방향 유지, 편안한 자세 근처에 머물기처럼 여러 목표를 동시에 충족해야 할 때 그 운동을 결정한다. 작업은 중요도에 따라 순서가 매겨진다. 가장 높은 우선순위의 작업이 먼저 풀리며, 보통 그 작업의 야코비안(Jacobian)의 의사역행렬을 사용한다. 그다음 작업은 첫 번째 작업의 영공간, 즉 첫 번째 작업을 교란하지 않는 관절 운동의 집합 안에서만 풀리며, 목록의 아래쪽으로 이런 식으로 계속된다. 낮은 우선순위 작업은 높은 우선순위 작업을 결코 저하시키지 않는 범위에서 가능한 한 잘 달성된다. Nakamura, Hanafusa, Yoshikawa가 1987년에 이 아이디어를 정식화했고, Siciliano와 Slotine이 1991년에 임의 개수의 작업에 대해 널리 쓰이는 재귀적 정식화를 제시했다.

고전적 형태에서 이 방법은 속도 수준에서 작동한다. q̇ = J₁⁺ ẋ₁ + N₁ (J₂N₁)⁺ (ẋ₂ − J₂J₁⁺ẋ₁) 등으로 이어지며, 여기서 N₁은 작업 1의 영공간으로 투영한다. 실제로는 두 가지 문제가 생긴다. 두 작업이 충돌하면, 어느 작업도 단독으로는 특이하지 않더라도 낮은 작업의 투영된 야코비안이 특이해질 수 있으며, 관절 속도를 유계로 유지하려면 감쇠가 필요하다. 또한 관절 한계, 충돌 회피, 접촉력은 부등식인데, 순수한 영공간 투영은 이를 잘 다루지 못한다.

그래서 현대의 솔버는 각 우선순위 수준을 이차 계획 문제(QP)로 세우고, 이를 차례로 풀거나 전용 계층적 QP 솔버로 풀어, 등식 작업과 부등식 작업이 어느 수준에든 나타날 수 있게 한다. 이것이 스택 오브 태스크(stack-of-tasks) 접근법과 OpenSoT, CartesI/O 같은 라이브러리의 기반이다. 흔한 대안은 가중 역기구학, 즉 소프트 우선순위 역기구학으로, 모든 작업을 서로 다른 가중치로 하나의 비용에 합산한다. 더 단순하고 매끄럽지만, 엄격한 우선순위를 강제하는 대신 작업들이 서로 절충하게 둔다.

중요한 이유

휴머노이드, 팔을 단 사족 로봇, 모바일 매니퓰레이터는 어떤 단일 작업에 필요한 것보다 훨씬 많은 관절을 가진다. 작업 우선순위 역기구학은 어떤 목표를 절대 위반해서는 안 되고 어떤 목표는 양보할 수 있는지를 명시하며, 이는 이런 로봇의 전신 운동에서 핵심이다.

주요 응용

  • 휴머노이드와 다리 로봇의 전신 운동
  • 베이스와 팔이 함께 움직이는 모바일 매니퓰레이션
  • 공구 경로를 추종하면서 관절 한계와 장애물을 피해야 하는 여유자유도 로봇 팔
  • 원격 조작과, 기구학이 다른 로봇으로의 모션 리타기팅
  • 바퀴-다리 로봇의 궤적 추종

실제 사례

바퀴-다리 사족 로봇에서 운동 플래너가 몸체, 바퀴, 발의 궤적을 생성한다. 이를 로봇에서 추종하기 위해 팀은 작업 스택을 구성한다. 맨 위에는 부등식 구속으로서의 관절 위치 및 속도 한계, 다음으로 지면에 붙어 있어야 하는 바퀴의 접촉점, 그다음 몸체 자세, 마지막으로 관절을 공칭 형상 쪽으로 당기는 자세 작업이 온다. 계층적 QP 솔버가 매 제어 주기마다 이 스택을 실행하고, 저수준 제어기를 위한 관절 기준값을 출력한다. 바퀴를 들지 않고는 몸체가 지령된 높이에 도달할 수 없을 때, 솔버는 바퀴를 지면에 둔 채 몸체 작업이 미달하도록 두며, 팀은 이를 미끄러지는 바퀴가 아니라 추종 오차로 보게 된다.

흔한 오해

  • 낮은 우선순위 작업은 무시된다 — 높은 작업이 남겨 둔 자유로운 운동 안에서 가능한 한 가깝게 충족된다
  • 가중 역기구학도 같은 결과를 준다 — 가중치는 작업들이 서로 절충하게 하는 반면, 엄격한 우선순위는 낮은 작업이 높은 작업을 교란하는 것을 결코 허용하지 않는다
  • 이 방법은 모든 특이점을 피한다 — 작업 간 충돌은 알고리즘적 특이점을 만들며, 감쇠나 순서 재배치가 필요하다
  • 영공간 투영만으로 관절 한계를 처리한다 — 부등식에는 추가 처리가 필요하며, 그래서 계층적 이차 계획이 널리 쓰인다

알아야 할 사람

  • 휴머노이드와 다리 로봇을 위한 전신 제어 엔지니어
  • 모바일 매니퓰레이션 개발자
  • 운동 계획 및 원격 조작 엔지니어
  • 여유자유도 해소(redundancy resolution)를 공부하는 로봇공학 학생

관련 기술

  • OpenSoT
  • CartesI/O
  • Stack of Tasks
  • 계층적 이차 계획(Hierarchical Quadratic Programming)
  • 감쇠 최소 제곱(Damped Least Squares)

관련 용어

  • Inverse Kinematics
  • Jacobian
  • Whole-Body Control
  • Operational Space Control
  • Loco-Manipulation
  • Humanoid Robot

관련 프로젝트

  • Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
  • GEAR-SONIC: NVIDIA's whole-body controller for the Unitree G1, trained to track any human motion
  • GTSAM: Factor-graph optimization library powering many modern SLAM backends
  • ASAP: Sim-to-real framework for agile humanoid whole-body skills using delta action models
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization

이 웹사이트는 JavaScript가 필요합니다. 오픈소스 로봇 프로젝트를 탐색하려면 JavaScript를 활성화하세요.