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_external_force_reset()

정의

set_external_force_reset(mode, offset)

기능

로봇에 장착한 외력 센서를 초기화하는 기능입니다. 이를 통해 힘/순응 제어의 정확도를 향상할 수 있으며, 접촉으로 인한 외력이 있는 상태에서도 힘/순응 제어를 시작할 수 있습니다. 로봇에 장착한 외력 센서를 기준으로 초기화를 수행하므로 As 시리즈의 경우 TCP 힘/토크값을 기준으로 offset 값을 설정하며, 그 외의 모델에서는 관절 토크값을 기준으로 offset 값을 설정합니다. 

인수

인수명

자료형

기본값

설명

mode

int

1

초기화 모드

  • 0: offset을 0으로 변경 

  • 1: 외력 센서 초기화, 현재 측정 외력을 offset으로 설정 (default)

  • 2: 입력한 offset 값으로 설정

offset

float[6]

[0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

외력 센서 offset

  • As 시리즈: TCP 힘/토크 (순서: Fx, Fy, Fz, Tx, Ty, Tz), (단위: N, Nm)

  • 그 외 시리즈: 관절 토크(순서: J1~ 6), (단위: Nm)

알아두기

  • 힘/순응 제어 동작 여부와 상관없이 set_external_force_reset() 명령어를 사용하여 외력 오차를 초기화 할 수 있습니다.

  • set_external_force_reset() 명령어의 효과는 로봇의 안전 기능(충돌 감지, TCP SLF 등)에는 영향을 미치지 않습니다.

  • 툴 무게 설정이 부정확한 경우에도 set_external_force_reset() 명령어 사용시 외력을 초기화 할 수 있습니다.

  • 접촉으로 인한 외력 때문에 힘/순응 제어를 시작할 수 없는 경우에 set_external_force_reset() 명령어를 사용하여 외력을 초기화하면 힘/순응 제어를 시작할 수 있습니다.

  • set_external_force_reset() 명령어를 사용한 후 로봇이 움직이면 오차가 다시 쌓일 수 있으므로 정밀한 힘 제어를 위해서는 접촉하기 전 가능한 근접한 위치에서 set_external_force_reset 명령어를 사용해 주십시오.

  • check_force_condition() 명령어의 힘 상태에 영향을 미치며, get_external_torque()와 get_tool_force() 명령어를 통해 취득하는 출력값에도 영향을 미칩니다.

  • 본 기능은 JTS와 FTS 등의 추가적인 센서가 장착되어 있는 M/H/P/As 시리즈에서 유용하게 사용이 가능합니다. 모터 전류 센서(CS)를 사용하는 A/E 시리즈의 경우에는 사용에 주의가 필요합니다.

경고

  • 접촉으로 인한 외력이 있을 때 set_external_force_reset() 명령어를 사용하면 offset에 접촉력이 포함되므로 실제 외력 측정이 왜곡되는 문제가 있음을 명심해 주십시오.

  • 또한 접촉이 있을 때 set_external_force_reset() 명령어를 중복해서 사용하면 문제가 중첩될 수 있으므로 중복 사용이 되지 않게 주의해 주십시오.

  • 위의 경우를 피하기 위하여 set_external_force_reset() 명령어는 가능한 비접촉 상태에서 사용하시기 바랍니다. 

리턴

설명

offset

현재 설정된 센서 offset

  • As 시리즈: TCP 힘/토크 (순서: Fx, Fy, Fz, Tx, Ty, Tz), (단위: N, Nm)

  • 그 외 시리즈: 관절 토크(순서: J1~ 6), (단위: Nm)

예외

예외

설명

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. 초기 자세 이동: [J1, J2, J3, J4, J5, J6] = [0, 0, 90, 0, 90, 0]
# 2. 순응 제어 시작: 외력 초기화 후 순응 제어 시작(모션 종료 후 진동이 남아 있으면 외력 초기화 중에 오차의 원인이 될 수 있으므로 wait(2.0) 추가.  
# 3. 힘 제어 대상 위치 접근
# 4. 힘 제어 시작: 힘 제어 정확도를 향상 시키기 위해 힘 제어 시작 전 외력 초기화.
# 5. 힘/순응 제어 종료 후 Retract: 강성 제어 종료 후 외력 offset을 0으로 복원
 
# 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. 외력 초기화 후 강성 제어 시작
wait(2.0)
set_external_force_reset()  # 외력 초기화
k_d = [3000.0, 3000.0, 3000.0, 200.0, 200.0, 200.0]
task_compliance_ctrl(k_d)
wait(2.0)
 
# 3. 힘 제어 대상 위치 접근
set_velx(75.0)
set_accx(100.0)
delta_approach = [0.0, 0.0, -100.0, 0.0, 0.0, 0.0]
movel(delta_approach, mod=DR_MV_MOD_REL)
 
# 4. 힘 제어 시작
wait(2.0)
set_external_force_reset() # 외력 초기화
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)
wait(10.0)
  
# 5. 힘-강성 제어 종료 후 Retract
release_force(0.5)
delta_retract = [0.0, 0.0, 150.0, 0.0, 0.0, 0.0]
movel(delta_retract, mod=DR_MV_MOD_REL)
release_compliance_ctrl() # 외력 offset을 0으로 복원
set_external_force_reset(0)
movej(q0)

관련 명령어

Keyword

set_external / external_force / force_reset / set_external_force / external_force_reset