본문 바로 가기

Doosan Robotics

Log In
Log In Form

튜토리얼

문서
순응 제어를 이용한 프로그래밍 방법
기초
30 분
이 과정에서는 순응 제어를 이용한 프로그래밍 방법을 소개합니다.

1. 시작하기

두산 로봇에서 제공하는 고급 제어기능 중 하나인 순응 제어(Compliance Control) 기능은 외력이 가해질 때 일정 수준의 복원력을 가지면서 정해진 위치에서 벗어나는 것을 허용하는 것을 말합니다. 이러한 순응 제어를 접촉 감지 기능과 함께 사용하면 로봇이 동작 중 주변 환경에 대해 허용 범위 내에서 오차를 수용하는 작업의 구성이 가능합니다. 



이 과정에서는 순응 제어를 이용한 프로그래밍 방법을 살펴보도록 하겠습니다.

2. 순응 제어 기능 알아보기

순응 제어 기능의 예를 들면 Pick & Place와 같이 진입(Approach) → 작업(Action) → 후퇴(Retract)로 이루어 지는 공정에서 집기/놓기 작업 시, 외부에서 힘이 가해질 때 스프링처럼 복원력을 가지면서 정해진 위치에서 벗어나는 것을 허용하는 기능을 들 수 있습니다. 외력이 없을 경우 위치 제어로 로봇이 움직이지만, 외력이 있을 경우 외력이 가해지는 방향으로 스프링의 변형이 생기듯 위치의 변화가 가능한 제어 기능입니다. 힘 제어와는 다르게 순응 제어는 정확히 힘을 기준으로 반응을 하지 않고 외력에 대비해서 비례적으로 변위가 발생합니다.



따라서, 목표점에서 힘 평형을 이루며, 평형점을 기준으로 변위가 발생했을 때 반력이 발생, 작업물 또는 기구와 충돌이 발생하더라도 충격을 흡수하면서 작업 수행 가능합니다. 외력이 발생했을 때, 해당 외력을 줄여주는 방향으로 순응하면서 모션 제어가 가능합니다.

※ 훅 법칙 F=-kx (k: 탄성계수, x: 평형점으로부터 변형된 변위, (-): 방향성)
계수가 작을수록 동일 거리 상 후퇴가 용이하며, 오차 허용범위를 지정하여 설정할 수 있습니다.
순응 제어 기능은 압입 작업 시, 작업자 손가락이 끼어 부상을 입는 경우를 미연에 방지할 때나 나선형(Spiral) / 주기(Periodic) 모션과 함께 구멍 찾기, 끼워 넣기 작업에 유용합니다. 

하기의 현장 적용 사례 영상을 참고하시면, 보다 쉽게 순응 제어를 이해하실 수 있습니다.

3. 순응 제어를 이용한 프로그래밍

순응 제어 설정 방법과 프로그래밍 예시를 통해, 실제로 순응 제어를 사용하는 방법을 알아보겠습니다.

3.1 순응 제어 설정하기
태스크 빌더 혹은 태스크 라이터, 힘 제어 명령에서 Compliance를 선택하여 속성으로 들어갑니다. 



① 모드: 켜기/끄기를 통해 작동을 제어 할 수 있고, 모션 별 강성값을 변경하고자 할 때, 순응 제어 명령을 추가한 뒤, 변경 모드로 수정된 강성으로 작업을 진행 할 수 있습니다.
② 강도: 값이 작을수록 좀 더 큰 오차 범위를 허용합니다.
③ 시간 설정: 설정값을 0.0 sec로 하면 순응 제어 기능을 바로 켤 수 있고, 모션을 시작하면서 1초의 대기 시간을 가지면서 작동 시킬 수 있습니다.

※ 각 축 별 강도의 범위는 다음과 같습니다. (X, Y, Z = 0~20,000 N/m, Rx, Ry, Rz = 0~400 Nm/rad)

추가로 오프라인 프로그래밍 툴을 이용하여 DRL로 작업 시, 다음의 명령어를 사용하여, 순응 제어를 사용할 수 있습니다.

예제)
P0 = posj(0,0,90,0,90,0)
movej(P0)
task_compliance_ctrl() # 강도 기본 설정값으로 시작
set_stiffnessx([500, 500, 500, 100, 100, 100], time=0.5) # 사용자 정의 강성으로 0.5초 동안 전환
release_compliance_ctrl() # 순응 제어를 종료하고, 현재 위치에서 위치 제어를 시작

좀 더 자세한 내용은 프로그래밍 매뉴얼, 5장 힘/강성 제어 및 기타 사용자 편의 기능에서 확인할 수 있습니다.

3.2 순응 제어 프로그래밍 예시

 

1) 임의의 작업 시작점을 Move J로 설정하고 Move L로 직선 이동을 합니다..
2) 순응 제어 모드를 켜고, ‘Z’와 ‘Rz’ 강성값을 기본값보다 높여 설정합니다. 강도가 높음으로 Z축 방향으로 좀 더 큰 외력이 가해질 때, 위치 오차를 허용합니다.
3) Move L을 이용, 베이스 좌표계 기준 수직 방향으로 이동시키고 작동 모드는 비동기로 설정합니다.
4) Move L 모션 수행을 하면서 Repeat, If 명령을 이용, Z축 방향으로 힘이 느껴지는 순간 모션을 멈추고, If, Repeat 명령을 중지합니다.
5) 순응 제어를 끄고 Move L로 최종 위치까지 이동합니다.

※ 비동기 작동 모드는 해당 모션 수행 직후 바로 다음 모션이 실행되는 모드로, 순응 제어를 켜고 Repeat, If 명령어를 수행 시, ‘비동기’ 모드로 지정해야 합니다. ‘동기’ 모드일 경우, 3)에서와 같이 수직 방향으로 이동이 끝난 뒤 힘을 확인하기 때문에, 충돌로 인한 모션 중지나 순응 제어를 통한 물체 감지가 어려울 수 있습니다.

4. 정리

이번 과정에서는 두산 로봇에서 제공하는 순응 제어 기능을 이용한 프로그래밍 방법을 알아봤습니다. 외부의 충격을 흡수하면서 모션을 수행하는 순응 제어를 이용하여, 다양한 작업을 진행 할 수 있습니다. 보다 상세한 내용은 참조 & 프로그래밍 매뉴얼을 참고하시기 바랍니다.

참고 자료
두산로보틱스 참조 & 프로그래밍 매뉴얼, https://robotlab.doosanrobotics.com

※ 본 자료의 모든 내용과 도안에 대한 저작권 및 지적재산권은 두산로보틱스에 있습니다. 따라서 두산로보틱스의 서면 허가 없이 사용, 복사, 유포하는 어떠한 행위도 금지됩니다. 또한 특허권을 오용하거나 변용하는데 따르는 책임은 전적으로 사용자에게 있습니다.
추천 교육
여러분에게 도움이 될 수 있는 추천 교육 과정들을 확인하세요.
문서
힘 제어를 이용한 프로그래밍 방법
문서
무선 공유기 사용방법
문서
DART-Studio 사용 방법 – 태스크 관리