이전 버전(1.33.4)의 문서를 보고 있습니다. 이 버전은 계속 지원됩니다.
최신 버전 정보는 1.33.5에서 확인하세요.

fkin (수동 모드)

이 절에서는 수동(교시) 작업 중에 fkin을 사용하는 방법을 설명합니다. 이 함수는 순기구학(FK)을 계산해, 주어진 조인트 각도 [J1 … J6]를 그에 해당하는 직교 좌표 포즈 [X, Y, Z, Rx, Ry, Rz]로 변환합니다. 주로 교시한 조인트 형상을 검증하거나, TCP 위치를 시각화하거나, 역기구학(Inverse Kinematics) 계산이 올바른지 확인할 때 사용합니다.

일반적인 사용법

  • 알려진 조인트 값에 해당하는 TCP 또는 플랜지 포즈를 계산합니다.

  • 직접 입력하거나 기록한 조인트 포즈가 예상한 직교 좌표 위치로 이어지는지 검증합니다.

  • 캘리브레이션이나 디버깅 중에 순기구학과 역기구학의 일관성을 확인합니다.

  • 조인트 공간(Joint Space) 모션 교시 중에 엔드 이펙터 포즈를 기록합니다.

참고

  • 이 함수는 수학적 계산만 하며, 로봇을 움직이지 않습니다.

  • 반대 과정에는 ikin을 사용하세요.

예제: 조인트 각도로 직교 좌표 포즈 계산

// 사전 조건:
// - 연결 완료(open_connection)
// - 수동(교시) 모드 활성

// 1단계. 조인트 각도 정의(도)
float jointAngles[NUM_JOINT] = {0.0f, -30.0f, 60.0f, 0.0f, 45.0f, 0.0f};

// 2단계. BASE 좌표계에서 순기구학 계산
LPROBOT_POSE pPose = drfl.fkin(jointAngles, COORDINATE_SYSTEM_BASE);

// 3단계. 결과 표시
printf("[FK Result] X=%.3f  Y=%.3f  Z=%.3f  |  Rx=%.3f  Ry=%.3f  Rz=%.3f\n",
       pPose->_fPosition[0], pPose->_fPosition[1], pPose->_fPosition[2],
       pPose->_fPosition[3], pPose->_fPosition[4], pPose->_fPosition[5]);

이 예제는 미리 정의한 조인트 형상을 fkin에 전달하고, BASE 좌표계 기준 TCP 포즈를 받습니다. 실제 모션을 지령하거나 좌표계를 기록하기 전에 로봇 자세를 시각화하고 포즈 정확도를 수치로 검증하는 간단한 방법입니다.

팁

  • 수동 모드에서 포즈 검증, 시뮬레이션, 좌표계 캘리브레이션에 적합합니다.

  • ikin과 함께 사용해 순기구학과 역기구학 결과가 일치하는지 교차 확인하세요.

  • TCP를 검증하려면 순기구학 출력을 get_current_posx와 비교하세요.

  • 단위가 맞는지 확인하세요(조인트 각도는 도, 직교 좌표는 밀리미터).