역기구학이란?
운동학은 힘과 토크와 같은 운동이 일어나는 원인은 고려하지 않고 운동을 연구하는 학문입니다. Inverse Kinematics는 운동학 방정식을 사용하여 원하는 위치에 도달하기 위한 로봇의 움직임을 파악하는 방법입니다. 예를 들어, 자동화된 빈 피킹 작업을 수행하려면 제조 라인에서 사용되는 로봇 팔이 빈과 제조 기계 사이의 초기 위치에서 원하는 위치까지 정밀하게 움직여야 합니다. 로봇 팔의 파지하는 부분은 엔드 이펙터로 지정됩니다. 로봇 구성은 로봇 모델의 위치 제한 범위 안에 있고 로봇 구성이 가진 어떠한 제약 조건도 위반하지 않는 조인트 위치의 목록입니다.
원하는 로봇의 엔드 이펙터 위치가 설정되면 Inverse Kinematics(IK)는 엔드 이펙터가 목표 자세로 이동하기에 적합한 관절 구성을 결정할 수 있습니다.
로봇의 조인트 각도를 Inverse Kinematics를 사용하여 계산한 후, 야코비 행렬을 사용하여 모션 프로파일을 생성해 엔드 이펙터를 시작 자세에서 목표 자세로 이동할 수 있습니다. 야코비 행렬은 로봇 조인트 파라미터와 엔드 이펙터의 속도 간의 관계를 정의하도록 해줍니다.
정방향 운동학(FK)과는 달리 여러 회전 조인트가 있는 로봇은 일반적으로 Inverse Kinematics에 대한 복수의 해를 가지며, 이러한 목적에 맞는 다양한 방법이 제안되었습니다. 일반적으로 해석적으로 얻는 방법(즉, 해석적 해)과 수치 계산을 사용하는 방법 등 두 가지 방법으로 분류됩니다.
수치적 Inverse Kinematics 해
로봇의 지정된 목표와 제약 조건을 구현하는 로봇 구성을 근사화하는 데 수치적 해를 사용할 수 있습니다. 각 조인트 각도는 기울기 기반 방법과 같은 최적화 알고리즘을 사용하여 반복적으로 계산됩니다.
수치적 IK 솔버가 더 일반적으로 사용되지만, 시스템의 비선형성에 대한 해로 수렴하려면 여러 단계가 필요한 반면, 해석적 IK 솔버는 단순한 IK 문제에 가장 적합합니다. 로봇 기구학 제약 조건을 지정할 수 있고, 카메라 암이 목표 위치를 향해야 하는 조준 제약처럼 외부 제약 조건을 IK 솔버로 설정할 수 있다는 점에서 수치적 IK는 더 유연합니다. 어떤 IK 솔버를 적용할지는 주로 실시간 대화형 방식 응용 사례와 같은 로봇 응용 사례 및 최종 자세의 부드러움과 여유자유도 로봇 시스템으로의 확장성과 같은 몇몇 성능 관련 평가 기준에 따라 결정됩니다.
Robotics System Toolbox™ 및 Simscape Multibody™를 사용하여 IK에 대해 수치 계산 기법을 적용할 수 있습니다. 관련된 전체 워크플로는 다음을 포함합니다.
- 강체 트리 로봇 모델 생성
- URDF와 DH 파라미터에서 로봇 정의 가져오기
- CAD에 정의된 정보를 기반으로 하여 다물체 모델 구축
- 기하학적 야코비 행렬 계산
- 역기구학 솔버, 컨피규레이션 및 웨이포인트 설계
- 일반화된 역기구학 솔버를 사용하여 다중 제약 조건 기구학 컨피규레이션에 대한 해 구하기
- 병렬 링크 메커니즘 분석
- 동등한 C/C++ 코드 생성 및 다른 응용 프로그램에 내장
자세한 정보는 Robotics System Toolbox 및 Simscape Multibody를 참조하십시오.
해석적 Inverse Kinematics 해
수학 공식을 토대로 하여, 각 조인트 각도를 엔드 이펙터의 자세에서 계산합니다. IK는 조인트 파라미터와 엔드 이펙터 자세를 심볼을 사용해 정의함으로써 IK는 조인트 각도에 대해 가능한 모든 해를 해석적 형태의 연결 길이, 시작 자세 및 회전 제약 조건의 함수로 나타내 구할 수 있습니다.
해석적 IK는 주로 운동학 방정식의 비선형성과 여유자유도 로봇 구성에 대한 부족한 확장성 때문에 자유도(DoF)가 낮은 로봇에 사용됩니다.
Robotics System Toolbox™ 및 Symbolic Math Toolbox™를 해석적 IK에 사용할 수 있습니다. 다음과 같은 작업을 수행할 수 있습니다.
- MATLAB에서 정의한 6-DoF 로봇의 일부에 대한 해석적 IK 솔버 생성
- 로봇의 엔드 이펙터 위치와 조인트 파라미터를 기호를 사용해 사인 및 코사인 함수로 정의하여 사용자 지정 솔버 작성
- 조인트와 로봇 속도 간의 관계를 얻을 수 있도록 시스템 야코비 행렬을 심볼을 사용한 표현식으로 계산
- 도출한 표현식을 MATLAB® 함수 블록으로 변환하고 Simulink® 또는 Simscape™ 모델을 생성하여 로봇 시뮬레이션하기
- 다른 응용 프로그램과 통합할 수 있도록 동등한 C 코드 생성
자세한 내용은 MATLAB 및 Symbolic Math Toolbox를 참조하십시오.
비디오
비디오 예제 및 방법
소프트웨어 참조
참조: Robotics System Toolbox, Simscape Multibody, Symbolic Math Toolbox, 로봇 프로그래밍, 회전 행렬, 적분, MATLAB 및 Simulink를 사용한 Arduino 프로그래밍, Arduino 엔지니어링 키트