이전 버전(1.33.4)의 문서를 보고 있습니다. 이 버전은 계속 지원됩니다.
최신 버전 정보는 1.33.5에서 확인하세요.
최신 버전 정보는 1.33.5에서 확인하세요.
set_singular_handling_force (자동 모드)
이 함수는 자동 모드 운전 중 힘 제어와 순응 제어(Compliance Control)에 대한 로봇의 특이점(Singularity) 처리 정책을 설정합니다.
특이점이 감지되면 자코비안 행렬의 조건이 나빠져 힘 제어나 순응 제어가 불안정해질 수 있습니다. 이 함수는 이런 상황에서 힘 기반 명령을 오류로 거부할지 계속 진행하도록 허용할지 정합니다.
기본적으로 특이점 영역에서는 안전하고 보수적인 운용을 위해 힘 제어와 순응 제어를 거부합니다.
사용 가능한 모드
SINGULARITY_ERROR: 특이점 영역에서 힘 제어나 순응 제어를 실행하면 오류를 발생시킵니다(기본값).
SINGULARITY_IGNORE: 특이점 관련 제한을 무시하고 힘 제어나 순응 제어를 계속 진행합니다.
정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션
bool set_singular_handling_force(SINGULARITY_FORCE_HANDLING eMode) {
return _set_singular_handling_force(_rbtCtrl, eMode);
};
매개변수
매개변수 이름 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
eMode |
SINGULARITY_ERROR |
힘 제어와 순응 제어에 대한 특이점 처리 정책을 설정합니다. |
반환값
값 |
설명 |
|---|---|
0 |
힘 제어(Force Control)에 대한 특이점 처리 정책을 변경하지 못했습니다. |
1 |
힘 제어에 대한 새 특이점 처리 정책을 적용했습니다. |
예제
// 특이점에 가까운 조인트 포즈로 이동(예제)
float q_sing[6] = { 0.0f, -40.0f, 80.0f, 0.0f, 40.0f, 0.0f };
drfl.movej(q_sing, 10.0f, 10.0f);
// 작업 공간 순응 제어 활성화
float stiffness[6] = { 100.f, 100.f, 100.f, 20.f, 20.f, 20.f };
drfl.task_compliance_ctrl(stiffness);
// 목표 힘(예: Z- 방향)
float fd[6] = { 0.f, 0.f, -10.0f, 0.f, 0.f, 0.f };
unsigned char fdir[6] = { 0, 0, 1, 0, 0, 0 };
// 사례 1
drfl.set_singular_handling_force(SINGULARITY_ERROR);
drfl.set_desired_force(fd, fdir);
// 특이점 영역에서는 힘 제어가 거부됩니다
// 사례 2
drfl.set_singular_handling_force(SINGULARITY_IGNORE);
drfl.set_desired_force(fd, fdir);
// 특이점 영역 근처에서 힘 제어를 허용합니다(주의해서 사용하세요)
drfl.release_compliance_ctrl();
이 예제는 자동 모드에서 힘 제어와 순응 제어의 특이점 처리 방식을 설정하는 방법을 보여 줍니다. 특이점 영역 근처에서 힘 제어를 허용하면 작업 유연성이 높아질 수 있지만, 불안정해지거나 힘 추정이 부정확해질 수 있으므로 주의해서 사용해야 합니다.