맨위로가기

로봇 소프트웨어

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

로봇 소프트웨어는 로봇의 동작을 제어하는 소프트웨어로, 산업용 로봇을 비롯한 다양한 로봇에 사용된다. 각 로봇 제조업체는 자체 로봇 소프트웨어를 개발하며, 이는 독점적인 특성을 띤다. 산업용 로봇 소프트웨어는 데이터(명령)와 프로그램 흐름(명령 목록)으로 구성되며, 포스트 프로세서 및 오프라인 프로그래밍 소프트웨어를 통해 여러 제조업체의 로봇을 제어할 수 있다. 로봇 프로그래밍 언어에는 VAL, Epson RC+, ROBOFORTH 등이 있으며, 비주얼 프로그래밍 언어, 스크립팅 언어, 병렬 언어 등 다양한 유형이 존재한다. 로봇 소프트웨어는 로봇 애플리케이션을 만드는 데 사용되며, 명령 및 제어 소프트웨어와 작업 소프트웨어로 나뉜다. 특히 산업용 로봇의 경우 프로그래밍 오류는 심각한 안전 문제를 야기할 수 있으므로 주의가 필요하며, 로봇 안전에 대한 표준이 존재한다.

2. 산업용 로봇 소프트웨어

산업용 로봇 소프트웨어는 현실 세계의 객체나 도구를 조작하는 데 사용된다는 점에서 일반 소프트웨어와 다르다. 각 제조업체는 자체적인 로봇 소프트웨어를 가지고 있으며, 이는 데이터 객체와 프로그램 흐름(명령 목록)으로 구성된다.[1] 예를 들어, "지그1로 이동"이라는 명령은 로봇에게 특정 위치로 이동하도록 지시한다. 데이터와 프로그램은 로봇 컨트롤러 메모리에 별도로 저장되어 서로 영향을 주지 않고 변경할 수 있다.

로봇 소프트웨어는 독점적인 특성을 가지고 있어, 대부분의 로봇 하드웨어 제조업체는 자체 소프트웨어를 제공한다. 이는 로봇 프로그래밍 방식의 표준화 부족을 야기하지만, 포스트 프로세서와 오프라인 프로그래밍(로봇 공학) 소프트웨어를 사용하여 파이썬(프로그래밍 언어)과 같은 범용 프로그래밍 언어를 통해 여러 제조업체의 로봇을 제어하는 방법도 있다.[2] 그러나 고정된 오프라인 코드를 로봇 컨트롤러에 컴파일하고 업로드하면 로봇 시스템이 상태를 인식할 수 없으므로, 환경 변화에 따라 동작을 조정하고 복구하는 데 한계가 있다.

2. 1. 산업용 로봇 프로그래밍 언어의 예

산업용 로봇 소프트웨어는 프로그램 흐름(명령 목록)과 데이터 객체로 구성된다.[1] "지그1로 이동"과 같은 명령은 로봇에게 특정 위치 데이터로 이동하도록 지시한다. 데이터와 프로그램은 보통 로봇 컨트롤러 메모리의 별도 섹션에 저장되어, 서로 영향을 주지 않고 변경할 수 있다.

대부분의 로봇 하드웨어 제조업체는 자체 소프트웨어를 제공하며, 이는 매우 독점적인 특성을 가진다.[1] 산업용 로봇 제조업체마다 다른 로봇 프로그래밍 언어를 사용하기 때문에 표준화가 부족하다.[1] 그러나 로봇 프로그래밍 언어 간 유사성이 있어, 각 언어를 배우지 않고도 전반적인 이해를 얻을 수 있다.[1]

포스트 프로세서와 오프라인 프로그래밍(로봇 공학) 소프트웨어를 사용하면, 파이썬(프로그래밍 언어)과 같은 범용 프로그래밍 언어로 여러 제조업체의 로봇을 제어할 수 있다.[2]

다음은 게시된 로봇 프로그래밍 언어의 몇 가지 예시이다.

일반 영어로 작성된 작업 예시:

  • P1으로 이동 (일반적인 안전 위치)
  • P2로 이동 (P3에 접근)
  • P3으로 이동 (객체를 잡는 위치)
  • 그리퍼 닫기
  • P4로 이동 (P5에 접근)
  • P5로 이동 (객체를 놓는 위치)
  • 그리퍼 열기
  • P1으로 이동하고 종료

2. 1. 1. VAL

유니메이트 로봇에 사용된 최초의 로봇 '언어' 중 하나는 VAL이었다.[3] VAL의 변형은 Adept Technology를 포함한 다른 제조업체에서 사용되었다. Stäubli는 현재 VAL3를 사용한다.

VAL 예제 프로그램:

```

PROGRAM PICKPLACE

1. MOVE P1

2. MOVE P2

3. MOVE P3

4. CLOSEI 0.00

5. MOVE P4

6. MOVE P5

7. OPENI 0.00

8. MOVE P1

.END

```

Stäubli VAL3 프로그램 예제:

```

begin

movej(p1,tGripper,mNomSpeed)

movej(appro(p3,trAppro),tGripper,mNomSpeed)

movel(p3,tGripper,mNomSpeed)

close(tGripper)

movej(appro(p5,trAppro),tGripper,mNomSpeed)

movel(p5,tGripper,mNomSpeed)

open(tGripper)

movej(p1,tGripper,mNomSpeed)

end

```

trAppro는 데카르트 변환 변수이다. appro 명령과 함께 사용하면 P2와 P4 포인트를 티칭할 필요 없이 궤적 생성을 위해 픽 앤 플레이스 위치에 대한 접근 방식을 동적으로 변환할 수 있다.

2. 1. 2. Epson RC+

Epson RC+는 로봇 소프트웨어 프로그래밍 언어의 한 예시이다. 진공 픽업을 사용하는 예제는 다음과 같다.

```text

Function PickPlace

Jump P1

Jump P2

Jump P3

On vacuum

Wait .1

Jump P4

Jump P5

Off vacuum

Wait .1

Jump P1

Fend

```

여기서 로봇은 그리퍼가 완전히 닫힐 때까지 다음 이동을 계속해서는 안 된다. `On vacuum` 명령은 만족스러운 흡입을 보장하기 위해 시간 지연이 필요하다.

2. 1. 3. ROBOFORTH

ROBOFORTH는 FORTH 기반 언어이다.[1] ROBOFORTH를 사용하면 장소에 대한 접근 위치를 지정할 수 있어, 다른 로봇 언어 예시에서 나타나는 P2와 P4가 필요하지 않다.[1]

```forth

: PICKPLACE

P1

P3 GRIP WITHDRAW

P5 UNGRIP WITHDRAW

P1

;

```

로봇은 그리퍼가 완전히 닫힐 때까지 다음 이동을 계속해서는 안 된다. 확인 또는 허용된 시간은 위의 예시에서 CLOSEI 및 GRIP에서 암시적으로 나타나는 반면, On vacuum 명령은 만족스러운 흡입을 보장하기 위해 시간 지연이 필요하다.[1]

3. 다양한 로봇 프로그래밍 언어

로봇 소프트웨어는 특정 유형의 소프트웨어이지만, 매우 다양하다. 각 제조업체는 자체적인 로봇 소프트웨어를 가지고 있다. 대부분의 소프트웨어가 데이터를 조작하고 결과를 화면으로 보는 데 중점을 두는 반면, 로봇 소프트웨어는 실제 세계에서 객체나 도구를 조작하기 위한 것이다.[4]

산업용 로봇 제조사별 대표적인 프로그래밍 언어는 다음과 같다.[4]

산업용 로봇 공학의 프로그래밍 언어
로봇 브랜드언어 이름
ABBRAPID
ComauPDL2
FanucKarel
KawasakiAS
KukaKRL
StäubliVAL3
YaskawaInform


3. 1. 비주얼 프로그래밍 언어

레고 마인드스톰 EV3 프로그래밍 언어는 사용자가 상호작용하기 위한 간단한 언어이다. 이는 LabVIEW로 작성된 그래픽 사용자 인터페이스(GUI)이다. 이 접근 방식은 데이터보다는 프로그램부터 시작하는 것이다. 프로그램을 만들려면 아이콘을 프로그램 영역으로 드래그하여 시퀀스에 추가하거나 삽입한다. 그런 다음 각 아이콘에 대한 매개변수(데이터)를 지정한다. 예를 들어, 모터 드라이브 아이콘의 경우 어떤 모터를 얼마나 움직일지 지정한다. 프로그램이 작성되면 테스트를 위해 레고 NXT '브릭'(마이크로컨트롤러)에 다운로드된다.

3. 2. 스크립팅 언어

스크립트 언어는 소프트웨어 응용 프로그램을 제어하는 데 사용되는 고급 프로그래밍 언어이며, 미리 컴파일하는 대신 실시간으로 해석되거나 "실시간으로 번역"된다. 스크립트 언어는 범용 프로그래밍 언어일 수도 있고 응용 프로그램 또는 시스템 프로그램 실행을 보강하는 데 사용되는 특정 기능으로 제한될 수도 있다. RoboLogix와 같은 일부 스크립트 언어는 레지스터에 데이터 객체를 가지고 있으며, 프로그램 흐름은 로봇을 프로그래밍하는 데 사용되는 명령어 목록 또는 명령 집합을 나타낸다.[4]

프로그래밍 언어는 일반적으로 처음부터 자료 구조알고리즘을 구축하도록 설계된 반면, 스크립트 언어는 구성 요소와 명령을 연결하거나 "접착"하는 데 더 적합하다. 결과적으로 스크립트 언어 명령어 집합은 일반적으로 프로그래밍 프로세스를 단순화하고 신속한 응용 프로그램 개발을 제공하는 데 사용되는 프로그램 명령의 간소화된 목록이다.

산업용 로봇 공학의 프로그래밍 언어[4]
로봇 브랜드언어 이름
ABBRAPID
ComauPDL2
FanucKarel
KawasakiAS
KukaKRL
StäubliVAL3
YaskawaInform


3. 3. 병렬 언어

URBI는 언어 의미의 핵심에 병렬 처리와 이벤트를 통합하여 더 높은 수준의 추상화를 제공한다. 모든 로봇 응용 프로그램은 병렬 처리와 이벤트 기반 프로그래밍을 필요로 하는데, 병렬 처리는 로봇이 두 가지 이상의 작업을 동시에 수행하는 것을 의미하며, 이를 위해서는 적절한 하드웨어와 소프트웨어가 필요하다.[1] 대부분의 프로그래밍 언어는 공유 자원에 대한 동시 접근과 같은 병렬 처리 및 이와 관련된 복잡성을 처리하기 위해 스레드 또는 복잡한 추상화 클래스에 의존한다.[1]

다음 코드는 로봇이 카메라로 촬영한 비디오에서 얼굴을 감지할 때마다 로봇 헤드가 사람의 얼굴을 따라가도록 `headPan` 및 `headTilt` 모터를 병렬로 움직이게 한다.[1]

```urbiscript

whenever(face.visible)

{

headPan.val += camera.xfov * face.x

&

headTilt.val += camera.yfov * face.y

}

3. 4. 산업용 로봇 공학의 프로그래밍 언어 (표)

산업용 로봇 공학의 프로그래밍 언어[4]
로봇 브랜드언어 이름
ABBRAPID
ComauPDL2
FanucKarel
KawasakiAS
KukaKRL
StäubliVAL3
YaskawaInform


4. 로봇 애플리케이션 소프트웨어

로봇 소프트웨어는 데이터를 다루고 결과를 화면으로 확인하는 일반적인 소프트웨어와 달리, 현실 세계의 물체나 도구를 조작하는 데 사용된다.[1] 각 로봇 제조업체는 자체적인 로봇 소프트웨어를 개발하여 사용한다.[1]

로봇 소프트웨어의 목표는 어떤 프로그래밍 언어를 사용하든 사람들을 돕거나 즐겁게 하는 로봇 애플리케이션을 만드는 것이다.[1] 로봇 애플리케이션은 크게 명령 및 제어 소프트웨어와 작업 소프트웨어로 나뉜다.[1]


  • 명령 및 제어 소프트웨어: 원격 조작 로봇을 위한 로봇 제어 GUI, 자율 로봇을 위한 포인트 앤 클릭 명령 소프트웨어, 공장 내 모바일 로봇을 위한 스케줄링 소프트웨어가 있다.
  • 작업 소프트웨어: 배송 경로, 보안 순찰, 방문객 투어 설정을 위한 드래그 앤 드롭 인터페이스, 특정 애플리케이션 배포를 위해 작성된 사용자 지정 프로그램이 있다.


범용 로봇 애플리케이션 소프트웨어는 널리 배포된 로봇 플랫폼에 적용된다.[1]

4. 1. 안전 고려 사항

프로그래밍 오류는 특히 대형 산업용 로봇에서 심각한 안전 문제를 일으킨다. 산업용 로봇의 힘과 크기는 잘못 프로그래밍되거나 안전하지 않은 방식으로 사용될 경우 심각한 부상을 입힐 수 있음을 의미한다. 산업용 로봇의 질량과 고속으로 인해 자동 작동 중에는 사람이 로봇 작업 구역에 머무는 것이 항상 안전하지 않다. 시스템은 예상치 못한 시간에 움직임을 시작할 수 있으며, 사람이 그렇게 할 준비가 되어 있더라도 많은 상황에서 충분히 빠르게 반응할 수 없다.

따라서 소프트웨어에 프로그래밍 오류가 없더라도, 산업용 로봇을 사람이 다루거나 부품 적재, 하역, 부품 걸림 제거, 유지 관리 수행과 같은 작업자와 상호 작용을 안전하게 만들기 위해 각별한 주의를 기울여야 한다. 로봇 산업 협회(Robotic Industries Association)의 ''ANSI/RIA R15.06-1999 산업용 로봇 및 로봇 시스템에 대한 미국 국가 표준 - 안전 요구 사항(ANSI/ R15.06-1992 개정판)'' 서적은 로봇 안전에 대한 공인된 표준이다. 여기에는 산업용 로봇 설계, 공장 현장에서의 산업용 로봇 구현 또는 통합 및 사용에 대한 지침이 포함되어 있다. 안전 컨트롤러, 티치 모드 중 최대 속도, 물리적 장벽 사용과 같은 수많은 안전 개념이 다루어진다.

참조

[1] 뉴스 The future of robot off-line programming http://coro.etsmtl.c[...] 2017-01-03
[2] 웹사이트 Offline programming - RoboDK https://robodk.com/o[...] 2017-01-03
[3] 서적 Theory of Automatic Robot Assembly and Programming https://books.google[...] Springer 2015-02-08
[4] 웹사이트 Robot programming languages http://fabryka-robot[...] 2015-02-08



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com