최신 버전 정보는 1.33.5에서 확인하세요.
ikin (수동 모드)
이 절에서는 수동(교시) 작업 중에 ikin을 사용하는 방법을 설명합니다. 이 함수는 주어진 목표 포즈에 대한 역기구학(IK) 해를 계산합니다. 원하는 직교 좌표 위치와 자세 [X, Y, Z, Rx, Ry, Rz]를 그에 해당하는 조인트 각도 [J1 … J6]로 변환하므로, 실제 모션을 실행하기 전에 도달 가능한 형상을 검증하거나 시뮬레이션할 수 있습니다.
일반적인 사용법
로봇을 움직이지 않고 원하는 TCP 포즈에 대한 조인트 각도를 계산합니다.
목표 위치에 기구학적으로 도달할 수 있는지 검증합니다.
충돌 없는 교시를 위해 여러 역기구학 해(관절 형상)를 비교합니다.
캘리브레이션 중에 접근 포즈나 후퇴 포즈를 수치로 생성합니다.
예제: 목표 포즈에 대한 조인트 각도 계산
// 사전 조건:
// - 연결 완료(open_connection)
// - 수동(교시) 모드 활성
// 1단계. 목표 포즈 정의(BASE 좌표계 기준)
float targetPose[NUM_TASK] = {400.0f, 0.0f, 300.0f, 180.0f, 0.0f, 180.0f};
// 2단계. 관절 형상 선택(0: 기본값 / 엘보 다운)
unsigned char solSpace = 0;
// 3단계. 역기구학 계산
LPROBOT_POSE pJoints = drfl.ikin(targetPose, solSpace, COORDINATE_SYSTEM_BASE);
// 4단계. 계산된 조인트 값 출력
printf("[IK Result] J1=%.3f J2=%.3f J3=%.3f J4=%.3f J5=%.3f J6=%.3f\n",
pJoints->_fPosition[0], pJoints->_fPosition[1], pJoints->_fPosition[2],
pJoints->_fPosition[3], pJoints->_fPosition[4], pJoints->_fPosition[5]);
이 예제는 BASE 좌표계에서 목표 직교 좌표 포즈를 정의하고, ikin으로 그 포즈에 도달하는 조인트 각도를 계산합니다. 이를 통해 작업자는 로봇 암을 실제로 움직이지 않고도 도달 가능성을 시험하거나 오프라인으로 모션 명령을 준비할 수 있습니다.
팁
오프라인 포즈 검증이나 다른 형상 테스트에 사용하세요.
반환되는 포인터는 NULL이 아니며, 도달할 수 없는 포즈를 알려 주지 않습니다. 이를 확인하려면 ikin (extension) 오버로드를 사용하고 INVERSE_KINEMATIC_RESPONSE의
_iStatus를 확인하세요.fkin과 비교해 순기구학 모델과 역기구학 모델의 포즈가 일치하는지 확인하세요.
여러 역기구학 해(서로 다른 iSolutionSpace)를 기록해 제약이 있는 환경에 가장 적합한 경로를 선택하세요.