Task Editor Command 순응/힘 제어 개념 알아보기
힘 제어(Force Control)와 순응 제어(Compliance Control)는 로봇의 힘을 제어하는 기능입니다. 또한 모션 명령어를 추가하는 경우 모션 이동과 동시에 힘을 제어할 수 있습니다. 순응 제어와 힘 제어 방식은 아래와 같은 차이점이 있습니다.
순응 제어
순응 제어 시에는 로봇 끝단 TCP에서 외력에 순응하고 외력이 제거되면 원래 로봇이 있어야 할 위치로 복귀하려는 힘이 생성되어 해당 위치로 이동합니다.
울퉁불퉁한 표면에서 직선 운동 시 로봇 및 표면을 파손하지 않고 이동하고 싶은 경우에 활용할 수 있습니다. 작업물 근처에서 예상치 못한 충돌을 예방하기 위해 활용할 수 있습니다.
힘 제어
힘 제어 시에는 로봇 끝단 TCP에 힘을 발생 시킵니다. 힘이 발생한 방향으로 가속도가 생성되므로 로봇은 모션 방향 외에도 힘의 방향으로도 동시에 이동하게 됩니다.
물체와 접촉 시에는 설정된 힘과 물체의 반력이 평형을 이룰 때까지 물체에 힘을 가하게 됩니다.
울퉁불퉁한 표면에서 직선 운동 시 표면에 일정한 힘을 가하고 싶은 경우에 활용할 수 있습니다. 폴리싱 작업과 같이 일정한 힘으로 밀면서 이동해야 하는 작업에 활용할 수 있습니다.

알아두기
Compliance와 Force 명령어는 현재 설정된 좌표계를 기준으로 작동합니다. 태스크의 기본 좌표계는 Base 좌표계이며, Set 명령어를 통해 좌표계를 변경할 수 있습니다.
Base 좌표계 기준 +Z 방향으로 힘/순응 제어 시 동작하는 방향은 그림 1번과 같습니다.
Tool 좌표계 기준 +Z 방향으로 힘/순응 제어 시 동작하는 방향은 그림 2번과 같습니다.

순응(Compliance) 제어
순응 제어(Compliance Control)란 로봇 끝단의 TCP에 힘이 가해질 때 설정된 강성에 따라 외력에 순응 하는 기능입니다. 목표점에서 힘 평형을 이루며 평형점을 기준으로 변위가 발생했을 때 반력 발생하는 제어 방식이며 순응 제어를 상태에서는 로봇 끝단이 마치 용수철처럼 물렁거립니다.
모션 제어를 단독을 사용하는 경우 충돌한 물체가 파손될 수 있습니다.
두산 로봇은 충돌 시 안전하게 정지하지만 안전 제한치(Safety Limits) > 충돌 민감도 등 사용자 설정에 따라 다음과 같은 상황이 발생할 수 있습니다.
모션 제어 사용 시 순응 제어를 On 상태로 만들면 충돌한 물체에 순응하면서 로봇이 이동합니다.

F(외력) , K(강성), X(이동 거리) 일 때, 다음과 같은 공식이 성립합니다.
F = K * X
K = F / X
X = F / K
위 공식을 사용하면 순응 제어의 강성(Stiffness)을 1000N/m로 설정하고 로봇을 1mm 움직일 때 발생하는 외력은 1N 이 됩니다.
F=1000N/m*0.001m=1N (0.001m=1mm)
알아두기
Compliance 명령어의 속성(Property)에서는 다음의 값들을 설정할 수 있습니다.
모드(Mode)
On : 순응 제어 활성화
Change : Compliance 모드가 On 상태인 경우 Stiffness 변경
Off : 순응 제어 비활성화
강성(Stiffness) 설정 범위
M/H 시리즈 : Translation(0~20000N/m), Rotation(0~1000Nm/rad)
A 시리즈 : Translation(0~10000N/m), Rotation(0~300Nm/rad)
강성 설정 값이 낮을 수록 외력에 부드럽게 반응하며 목표 지점으로 복귀하는데 오랜 시간이 소요
설정 시간(Setting Time)
강성(Stiffness) 값이 현재 강성 값에서 설정 된 강성 값으로 도달하는데 소요 되는 시간 (0~1s)

주의
툴 무게(Tool Weight) 및 TCP(Tool Center Point)를 정확하게 설정 해야 합니다. 잘못된 툴 무게 설정으로 로봇이 툴 무게를 외력으로 감지하게 되면 Compliance 명령어 On 상태에서 위치 오차를 유발합니다.
드레스 팩의 장력으로 인해 로봇에 외부 토크가 발생할 수 있습니다. 따라서 드레스 팩을 주의해서 설치하십시오.
비동기 모션 또는 블렌딩 모션이 실행되는 동안 Compliance On 또는 Off 할 수 없습니다.
Compliance 명령어 On 상태에는 선형 모션만 허용됩니다. MoveJ, MoveSJ와 같은 조인트 모션은 허용되지 않습니다.
Compliance 명령어 On 상태에는 Tool무게 또는 TCP를 변경할 수 없습니다.
Compliance 명령어 On 상태에는 모션 수행 시 발생하는 토크로 인한 순응으로 목표 위치에 정확하게 도달하지 못할 수 도 있습니다. 그러므로 목표점 근처에서 순응 제어를 켜는 것이 좋습니다. 혹은 강성 값을 큰 값으로 설정하여 위치 오차를 최소화 할 수 있습니다.
힘(Force) 제어
힘 제어(Force Control)란 설정한 힘과 반력이 평형 상태가 될 때까지 힘 제어 방향 힘을 가하는 기능입니다.
설정한 힘 방향으로 이동하고 물체에 접촉 시 입력한 힘(N)을 유지
일정한 힘을 가하면서 힘 방향과 다른 방향으로 모션 제어 가능
최소 설정 값은 +/- 10N이며, 0.2N의 분해능으로 정밀하게 제어 가능
특이점 영역에서는 힘 제어 불가
일반 적으로 힘 제어 사용 시에는 순응 제어도 함께 사용하여 외력에 순응하며 힘 제어

알아두기
Force 명령어의 속성(Property)에서는 다음의 값들을 설정할 수 있습니다.
모드(Mode)
On : 힘 제어 활성화
Off : 힘 제어 비활성화
힘(Desired Force) 설정 범위
X, Y, Z : 10 ~ (각 로봇별 최대치) N
A, B, C : 5 ~(각 로봇별 최대치) Nm
최대 힘 값은 안전 파라메터 상하한 범위와 기본값 을 참조하십시오.
방향(Target Direction)
선택된 각 방향의 목표 값으로 이동합니다.
복수 선택이 가능합니다.
힘 설정 후 반드시 방향을 설정해야만 힘 제어가 동작합니다.
복수 선택한 방향 중 하나의 방향이 먼저 목표 힘에 도달 시 힘 평형을 이루는 경우 나머지 방향에 대해서 목표 값에 도달할 때 까지 계속 이동합니다.
상대 모드(Relative Mode)
이 모드가 활성화되면 현재 로봇에 작용하고 있는 외력 값을 0으로 보정하여 힘 제어 정확성을 향상 시킵니다.
상대 모드 비활성화 시 타겟에 실제 작용 힘은 설정한 힘과 외력의 합과 같습니다.
상대 모드 활성화 시 타겟에 실제 작용 힘은 설정한 힘과 같습니다.
힘 제어 상태에서 자세나 외력에 따라 오차가 발생할 수 있습니다.
힘 제어 상태에서는 목표 위치에 정확하게 도달하지 못할 수 도 있습니다. 그러므로 목표점 근처에서 힘 제어를 활성화하시기 바랍니다.
설정 시간(Setting Time)
힘(Force) 값이 현재 힘 값에서 설정 된 힘 값으로 도달하는데 소요 되는 시간 (0~1s)


Thread 커맨드
Task editor에서 thread를 생성하여 수행할 수 있습니다.
알아두기
Thread 의 제약 조건은 다음과 같습니다.
Thread의 이름의 경우 숫자로 시작할 수 없으며, 소문자, 숫자, 밑줄만 포함할 수 있습니다. 이름은 30자를 초과하거나, 다른 Thread 이름과 중복될 수 없습니다.
Task editor 화면에서, Thread command 클릭 시 Thread command와 end Thread command가 작업 목록 패널에 추가됩니다. 각 태스크 당 최대 4개의 Thread를 사용할 수 있습니다.
하기 명령들은 단일 구성이 불가능하며 조건문 안에서만 구현이 가능합니다.
Move, Move L, Move J, Move SX,Move SJ, Move C, Move B, Move Spiral, Move Periodic, Move JX
Define, Set, Sub, Thread, Break, Weight Measure
힘 제어 명령어 (Compliance, Force)
신호 명령어 (Add Signal, Set Signal, Get Signal, Delete Signal)
고급 명령어 (Hand guide, Nudge)
사용자 명령어