3.7.0 3.6.0 3.5.0 3.4.0 3.3.0 3.2.2 3.2.1 3.2.0 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish
3.7.0 3.6.0 3.5.0 3.4.0 3.3.0 3.2.2 3.2.1 3.2.0 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish

set_force_factor()

정의

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)

프로그램 강제 종료 시

예제

Python
# 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