get_current_posx

이 함수는 현재 작업 좌표계의 자세와 관절 형상(Solution Space)을 계산합니다. 자세는 eTargetRef를 기준으로 합니다.

정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션

LPROBOT_TASK_POSE get_current_posx(COORDINATE_SYSTEM eCoodType = COORDINATE_SYSTEM_BASE) {
    return _get_current_posx(_rbtCtrl, eCoodType);
};

매개변수

매개변수 이름

자료형

기본값

설명

eCoodType

COORDINATE_SYSTEM

COORDINATE_SYSTEM_BASE

대상 기준 좌표계입니다.

반환값

값

설명

ROBOT_TASK_POSE

구조체 정의를 참고하세요

참고

이 함수는 컨트롤러가 응답할 때까지 기다립니다.

반환된 포인터는 CDRFLEx 객체 안의 저장 공간을 가리키며, 이 공간은 다른 DRFL 호출과 재연결 때마다 다시 사용됩니다. 다른 DRFL 함수를 호출하기 전에 구조체를 복사해 두세요. 인수가 3개인 ikin은 프로세스 안의 모든 CDRFLEx 객체가 공유하는 저장 공간에 결과를 반환합니다. ikin을 참고하세요. get_user_home을 제외하면 포인터는 NULL이 아닙니다. 실패 여부를 NULL 검사로 판단하지 마세요.

예제

LPROBOT_TASK_POSE result = drfl.get_current_posx();
float* pos = new float[NUM_TASK];
int sol = result->_iTargetSol;
memcpy(pos, result->_fTargetPos, sizeof(float) * NUM_TASK);

이 예제는 베이스 좌표계(COORDINATE_SYSTEM_BASE)를 기준으로 로봇의 현재 작업 공간(Task Space) 위치와 자세를 가져옵니다. 반환된 ROBOT_TASK_POSE 구조체에는 위치 벡터와 현재 관절 형상 번호가 모두 담겨 있으므로, 실행 중 로봇의 공간 상태를 분석하거나 저장할 수 있습니다.