Main Content

Simulink에서 매니퓰레이터 중력 동역학 계산하기

이 예제에서는 매니퓰레이터 알고리즘 블록을 사용하여 매니퓰레이터 로봇에 작용하는 중력으로 인한 동역학을 계산하고 비교하는 방법을 보여줍니다.

중력 가속도가 다른 두 개의 유사한 로봇 모델을 지정합니다. KUKA LBR 로봇 모델을 MATLAB® 작업 공간으로 불러오고 복사본을 만듭니다. 첫 번째 로봇 모델인 lbr에는 일반 중력 벡터 [0 0 -9.81]을 지정합니다. 복사한 lbr2에는 디폴트 중력 벡터 [0 0 0]을 사용합니다. 두 로봇 모델은 모델에 있는 블록의 강체 트리 파라미터에도 지정됩니다.

load('exampleLBR.mat','lbr')
lbr.DataFormat = 'column';
lbr2 = copy(lbr);
lbr.Gravity = [0 0 -9.81];

중력 동역학 모델을 엽니다. 필요한 경우 Load Robot Models 콜백 버튼을 사용하여 MATLAB 코드로 지정된 로봇 모델을 다시 불러오십시오.

open_system('gravity_dynamics_model.slx')

Forward Dynamics 블록은 초기 속도, 토크 또는 외력이 없는 상태에서 주어진 lbr 로봇 컨피규레이션의 중력으로 인한 조인트 가속도를 계산합니다. 이어서 Inverse Dynamics 블록은 lbr2 로봇을 사용하여 중력이 없는 상태에서 동일한 가속도를 생성하기 위해 조인트에 필요한 토크를 계산합니다. 마지막으로 Gravity Torque 블록은 lbr 로봇에 작용하는 중력을 상쇄하는 데 필요한 토크를 계산합니다.

모델을 실행합니다. 약간의 수치적 차이를 제외하면, 중력 토크와 중력으로 인한 가속도에 필요한 토크는 방향이 반대인 동일한 값입니다.

참고 항목

블록

클래스

함수

관련 항목