정의
set_force_factor(force_factor, time)
기능
힘 제어 시, 전역 좌표계(set_ref_coord() 참조) 기준으로 힘이득값(force factor)을 설정합니다.
주의
Non-FTS 모델(A0509, A0912, A0509F, A0912F, E0509)에서는 Translation 강성 제어만 가능하며, 제어 오차가 클 수 있습니다.
인수
|
인수명 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
|
force_factor |
float[6] |
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0] |
순서: (Translation x, y, z), (Rotation x, y, z) 범위: 0.1 ~ 2.0 |
|
time |
float |
0 |
힘이득값 변경 시간 [sec] 범위: 0~1.0 * 주어진 시간 동안 linear transition |
주의
Non-FTS 모델은 force_factor 파라미터의 자료형을 float[3]으로도 사용 가능합니다. Rotational Parameter 입력 시(float[6]) Rotational Parameter 입력 값은 기본 값으로 변경되어 사용합니다.
알아두기
-
힘이득값은 기본값(1.0)으로 설정시 모델에 따라 설정된 제어 이득으로 동작합니다.
-
힘이득값을 1.0 미만으로 설정하면 외력에 대한 반응이 작아져 목표 힘을 따라가는 시간이 늘어나고 진동이 줄어듭니다.
-
힘이득값을 1.0 초과로 설정하면 외력에 대한 반응이 커져 목표 힘을 빠르게 따라가지만 진동이 발생할 수 있습니다.
-
힘이득값은 힘제어 상태에서만 설정할 수 있으며, 설정하면 힘제어 방향과 순응 방향 모든 축에 적용됩니다. 순응 제어만 사용하는 상태에서 호출하면 거부됩니다.
경고
힘이득값을 1.0 초과로 설정 시 접촉면에 따라 로봇에 진동이 발생할 수 있습니다. 신중히 사용하시기 바랍니다.
리턴
|
값 |
설명 |
|---|---|
|
0 |
성공 |
|
음수값 |
오류 |
예외
|
예외 |
설명 |
|---|---|
|
DR_Error (DR_ERROR_TYPE) |
인수들의 데이터형 오류 시 |
|
DR_Error (DR_ERROR_VALUE) |
인수의 값이 유효하지 않을 시 |
|
DR_Error (DR_ERROR_RUNTIME) |
C Extension 모듈 에러 발생 시 |
|
DR_Error (DR_ERROR_STOP) |
프로그램 강제 종료 시 |
예제
# Example #1
# 힘이득값 단독 사용 (힘제어 상태에서 설정, 힘제어 방향과 순응 방향 모든 축에 적용)
# 1. 초기 자세 이동
q0 = posj(0.0, 0.0, 90.0, 0.0, 90.0, 0.0)
set_velj(30.0)
set_accj(60.0)
movej(q0)
# 2. 힘 제어 수행 (Base 좌표계 기준 -z 방향 힘 인가, 아래에 접촉 대상이 있는 상태에서 실행)
k_d = [3000.0, 3000.0, 3000.0, 200.0, 200.0, 200.0]
task_compliance_ctrl(k_d)
force_desired = 20.0
f_d = [0.0, 0.0, -force_desired, 0.0, 0.0, 0.0]
f_dir = [0, 0, 1, 0, 0, 0]
set_desired_force(f_d, f_dir)
# 3. 힘이득값 설정
f_f = [0.8, 0.8, 0.8, 0.8, 0.8, 0.8]
set_force_factor(f_f)
wait(2.0)
release_force()
wait(0.5)
release_compliance_ctrl()
# Example #2
# 감쇠값(set_damping_factor)과 함께 사용
# 감쇠값은 순응 제어 시작 후, 힘이득값은 힘제어 시작 후 설정
# 1. 초기 자세 이동
q0 = posj(0.0, 0.0, 90.0, 0.0, 90.0, 0.0)
set_velj(30.0)
set_accj(60.0)
movej(q0)
# 2. 순응 제어 시작 후 감쇠값 설정
k_d = [3000.0, 3000.0, 3000.0, 200.0, 200.0, 200.0]
task_compliance_ctrl(k_d)
d_f = [1.5, 1.5, 1.5, 1.5, 1.5, 1.5]
set_damping_factor(d_f)
# 3. 힘 제어 수행 후 힘이득값 설정 (Base 좌표계 기준 -z 방향 힘 인가, 아래에 접촉 대상이 있는 상태에서 실행)
force_desired = 20.0
f_d = [0.0, 0.0, -force_desired, 0.0, 0.0, 0.0]
f_dir = [0, 0, 1, 0, 0, 0]
set_desired_force(f_d, f_dir)
f_f = [0.8, 0.8, 0.8, 0.8, 0.8, 0.8]
set_force_factor(f_f)
wait(2.0)
release_force()
wait(0.5)
release_compliance_ctrl()
관련 명령어
Keyword
set / force / factor / set_ / set_force / force_factor