- 전체
- 안드로이드 플랫폼
- 아두이노
- 라즈베리 파이
- 안드로이드 ADK
- Embedded HardWare
- Embedded FirmWare
- Embedded Platform
- Embedded SoftWare
- 임베디드 리눅스
- Hobby Electronics
- 임베디드기사 - 국가기술자격
- VHDL 디지털설계
- M2M_IoT_사물지능통신
- 아마추어 로봇
- EDA - Electronic CAD
- 로봇공학
- 국가기술자격 로봇 제작 개발 자격증
- IoT (임베디드 인터넷)
로봇공학 로봇공학 : 기 초
2019.03.17 19:06
로봇공학 : 기 초
로봇공학 : Saeed B. Niku 저, 김정하, 염영일 역, 사이텍미디어, 2002 (원서 : Introduction to Robotics : Analysis. Systems. Applications, Prentice Hall, 2001), Page 1 ~ 29
1. 서론
로봇공학은 처음 용어가 생겨난 이후에 다양한 형태로 사람들에게 인식되어져 왔다. 여러분들은 기술공들이 인간의 동작이나 행동을 흉내낼 수 있도록 만든 기계들을 보아왔을 것이다. 대표적인 두 가지 예는 베니스의 매 정시마다 반복해서 종을 치는 장난감 인형이 그 하나이며, 또 다른 하나는 헐리웃 영화에 자주 등장하는 인간의 모습을 흉내내거나 심지어는 인간의 능력을 능가하는 로봇이나 휴머노이드의 등장이 로봇에 대한 인간의 야망을 한 단계 더 진보시켰다.
원칙적으로 휴머노이드가 로봇이며 로봇과 같은 개념으로 다루어질지라도 이 책에서는 주로 산업용 매니퓰레이터 형태의 로봇에 대해 언급할 것이다. 이 책에서는 각 주제에 익숙해지도록 기본적인 내용을 다루며 로봇에 대한 정역학, 동역학을 포함하여 로봇의 기구적인 해석에 대한 내용을 다룬다. 또한 로봇이나 로봇공학에서 사용되는 구동기, 센서, 시각 시스템과 요소기술에 대한 내용도 다룰 것이다.
로봇은 오늘날 산업의 대단히 중요한 요소이며 다양한 일을 수행할 수 있는 능력이 있고 정교한 동작을 하지만 인간과 같이 안전이나 편의장치가 필요하지 않다. 그러나 로봇을 올바르게 작동시키기 위해서는 많은 노력과 자원이 필요하다. 1980년대 중반의 많은 로봇 제작회사들이 사라졌으나 Adept Robotics, Staubli Robotics, Fanuc Robotics 와 North America, Inc. 등등의 산업용 로봇을 만들던 회사들은 지금까지도 로봇을 생산해 오고 있다. 초창기에 로봇에 대한 지나친 기대감 때문에 로봇의 수요에 대한 예측은 빗나갔으나 결과적으로 보면 모든 노동자들을 대신할 수 있는 전능한 로봇은 아니지만 많은 수의 로봇이 산업현장에서 필요한 곳에 사용되고 있다. 로봇은 인간과 함께 작업 수행이 가능하나 어떤 작업은 수행이 불가능한 것도 있다. 로봇이 목적하는 곳에 맞게 적절히 설계된다면 유용하게 지속적으로 사용될 것이다.
로봇공학의 주제는 매우 광범위한 분야를 포함한다. 로봇은 혼자서 사용될 수 없고 다른 장비, 주변장치나 다른 제조 기계와 함께 사용된다. 일반적으로, 시스템으로써 조합되어 작업을 수행하거나 동작되도록 구성된다. 이 책에서는 로봇과 함께 사용되는 다른 장비들도 함께 다룰 것이다.
2. 로봇이란?
통상적으로 견인트럭 또는 특수차량에 붙어있는 기중기 (crane) 와 전형적인 로봇 매니퓰레이터를 비교해 보면, 매우 유사함을 알 수 있다. 두 시스템 모두 어떤 형태의 구동기에 의해 움직이는 직렬형 다관절로 이루어져 있으며, "손" 과 같은 매니퓰레이터는 작업공간내에서 짐을 옮길 수도 있고 원하는 곳에 위치하기도 하며 구동기를 제어하는 중앙 제어기에 의해 제어되나, 하나는 로봇으로 불리고 다른 하나는 이 경우에는 기중기 또는 매니퓰레이터라고 불린다. 두 시스템간의 기본적인 차이점은 기중기는 사람에 의해서 구동기가 동작되고 제어되는 반면에, 로봇 매니퓰레이터는 컴퓨터에 의한 프로그램에 의해서 제어된다. 이러한 차이점으로 인해 로봇인지 혹은 단순 매니퓰레이터인지를 결정하게 된다. 일반적으로 로봇은 단순한 장치나 컴퓨터에 의해서 제어되도록 설계된다. 로봇의 움직임은 컴퓨터에 의해서 관리되는 제어기의 어떤 프로그램에 의해서 제어된다. 따라서 프로그램만 수정한다면 다양한 작업이 가능하다. 다양한 작업이 가능한 것이 목적이라면 장치의 재설계 없이 원하는 작업이 가능하다. 따라서 로봇은 작업이 가능한 범위 안에서 프로그램의 수정만으로 작업을 수행하고 변경이 가능하게끔 설계된다. 단순 매니퓰레이터(혹은 기중기)는 작업자의 조작없이는 항상 이러한 작업이 불가능하다.
국가에 따라서는 로봇에 대한 기준이 다르기도 하다. 미국의 규격으로는 재프로그래밍이 가능해야만 로봇으로 인정한다. 수작업으로 하는 장치, 즉 다 자유도이며 작업자에 의해서 조작되는 경우나 고정식 진행형 로봇, 즉 작업순서 변경이 어렵거나 고정된 작업순서로 도중에 중지가 어려운 로봇 등은 로봇으로 간주되지 않는다.
3. 로봇의 분류
다음은 일본 산업 로봇 협회(Japanese Industrial Robot Association : 이하 JIRA) 에 따른 로봇의 분류이다.

[그림 1] 로봇과 기중기는 설계방식이나 작동방식에서 매우 흡사해 보인다. 그러나 기중기는 조작자가 제어하는 반면, 로봇은 컴퓨터에 의해 제어된다. 따라서 단순히 컴퓨터 프로그램의 수정만으로도 로봇은 다른 기능을 할 수 있다. (a) Kuhnezug 트럭에 탑재된 기중기 (Kuhnezug Fordertechnik GmbH의 게재 승인을 받음), (b) 트럭에 심 (seam) 용접작업을 수행하는 Fanuc S-500 로봇 (Fanuc Robotics, North America, Inc.의 거재 승인을 받음).
ㆍ분류 1 : 수동식 처리장치: 운전자에 의해 조작되는 다 자유도를 가진 장치를 말한다.
ㆍ분류 2 : 고정식 진행형 로봇: 미리 지정된 변하지 않는 순서에 따라 작업을 행하고 작업을 변경하기 어려운 장치.
ㆍ분류 3 : 가변식 진행형 로봇: 분류 2와 같지만 작업순서의 변경이 가능한 것
ㆍ분류 4 : 작업 재생 로봇: 작업자가 작업 재생을 위해 수작업으로 작업을 수행하여 작업을 저장하고 후에 재생하는 형태의 로봇을 말한다. 로봇은 저장된 작업정보 순서대로 같은 동작을 반복하게 된다.
ㆍ분류 5 : 수치제어 로봇: 작업자가 수작업으로 작업을 지시하는 것이 아니라 구동 프로그램을 제공하는 형태의 로봇을 말한다.
ㆍ분류 6 : 지능형 로봇: 작업을 수행하는 과정에서 변화하는 주위 환경에 능동적으로 대처하는 능력을 가지며 그 주위의 여건을 이해하여 작업이 가능한 로봇을 말한다.
미국의 로봇 협회 (Robotics Institute of America: 이하 RIA) 는 분류 3-6만을 로봇이라 간주한다. 프랑스 로봇 협회 (Francaise de Robotique: 이하 AFR) 에서는 다음과 같이 분류한다.
ㆍA 형태 : 원격제어로봇을 수동을 동작시키는 처리장치.
ㆍB 형태 : 미리 예정된 주기를 가진 자동 처리장치.
ㆍC 형태 : 프로그램이 가능하며, 연속적 혹은 점대점 경로계획이 가능한 서보 제어 로봇.
ㆍD 형태 : C형태와 같으나 주위 환경 정보를 획득할 수 있는 능력을 가진 것.
4. 로봇공학이란?
로봇공학은 로봇을 사용함에 있어서 예술적, 지식기반적, 설계, 응용의 축적된 기술로서 인간의 노력이 결합된 집약체이다. 로봇 시스템은 단순히 로봇만으로 이루어진 것이 아니라 로봇을 이용하여 필요한 작업을 수행하는 장치와 시스템을 총괄한다. 로봇은 제조분야나 수중,우주탐사뿐만 아니라 장애인 보조용 장비로써, 심지어는 오락용으로도 사용이 가능하다. 어떠한 용도로도 로봇은 유용해야 하나 프로그램과 제어 또한 가능해야 한다. 로봇공학은 기계공학, 전기공학, 전자공학, 컴퓨터, 생물학과, 그 외 분야가 접목된 복합적인 분야이다.
5. 로봇공학의 역사
초창기의 단순히 인간과 인간의 움직임을 모방하는 기계들은 제외시키고 최근의 로봇의 역사만 살펴보면 왕성한 인간의 상상력과 그 당시의 공업상황, 수치적 컴퓨터에 의한 기계의 제어분야의 발전, 우주 탐사분야와의 밀접한 관계를 알 수 있다.Karel Capek 의 저서인 Rossum's Universal Robots[1] 에서부터 시작하여 Flash Gordon, Metropolis, Lost in Space, The Day Earth Stood Still과 The Forbidden Planet[2] 등등의 영화까지 살펴보면 현 단계에서는 R2D2, C3PO 나 로보캅 등에 등장하는 로봇과 같이 기계가 인간의 작업을 수행하는 단계까지 와있다. Capek은 생물학적 처리를 통하여 영혼과 감정은 없으나 강인하며 주인에게 복종하고 저렴한 가격으로 생산이 용이한 인간과 닮은 기계를 만들어내는 것을 상상하며 이를 소설화했다. 이윽고 주요 국가들은 수백, 수천의 헌신적이며 파손이 되어도 염려가 없는 로봇병사로 군대를 강화하고자 하자 로봇 시장은 급속히 커졌다. 결국 로봇은 인간보다 더 월등하고 나아가 전 세계를 정복하기로 결정하였다. 이 소설에서 "rabota", 즉 노동자라는 단어가 생겨났으며 이것이 오늘날까지 사용된다. 2차 세계대전 이후, 자동화 기계가 생산성을 증대시켰고 수치제어 (numerically controlled) 기계를 만드는 제조업자들은 더 나은 물품을 생산할 수 있었다. 또한, 핵 관련 작업에 있어서 다 자유도 매니퓰레이터가 사용되기 시작하였다. 결국 매니퓰레이터와 기계의 수치제어 기능이 로봇을 탄생시키는 계기가 되었다. 첫 로봇은 천공카드를 사용하여 제어하였고 이는 로봇의 움직임을 전기적 눈 (electric eyes) 을 이용하여 제어하였다. 산업이 발달함에 따라 천공카드는 자기 테이프, 메모리 장치 그리고 개인용 컴퓨터로 전환되었다. 다음은 이 분야의 산업 발전 순서에 따라서 중요한 발전내용을 요약한 사항이다:
|
1922 |
체코의 작가인 Karel Capek는 Rossum's Universal Robots 라는 소설을 집필하였으며, 노동자라는 의미인 "Robot" 라는 단어를 처음으로 소개하고 사용하였다. |
|
1956 |
George Devol 은 자석의 제어기, 작업 재생장치를 개발하였다.Eckert와 Mauchley은 펜실바니아주 대학에서 애니악 (ENIAC) 컴퓨터를 만들었다. |
|
1952 |
MIT에서 처음으로 NC 머신, 즉 수치제어기계를 만들었다. |
|
1954 |
George Devol은 처음으로 프로그램이 가능한 로봇을 개발하였다. |
|
1955 |
Denavit와 Hartenberg은 동차변환행렬식 (homogeneous transformation matrices)을 만들었다. |
|
1961 |
George Devol 의 UnimateTM robots 의 기본이 되는 "프로그램화된 명령 전달방식"이 미국특허 제 2,988,237호에 등록되었다. |
|
1962 |
Unimation 로봇회사가 설립되었으며 첫 산업용 로봇이 개발되었고 GM(General Motors)에서 Unimation으로부터 이를 도입하여 공장에 설치하였다 |
|
1967 |
UnimateTM에서 MarkⅡTM 로봇이 소개되었고, 첫 번째 로봇이 페인트 도포용 로봇으로 일본으로 수출되었다. |
|
1968 |
지능형 로봇 Shakey 가 Stanford Research Institute, 즉 SRI에서 개발되었다. |
|
1972 |
IBM은 자 회사용 직교로봇개발에 몰두하여 판매용인 IBM7565를 개발하였다. |
|
1973 |
Cincinnati MilacronTM 은 T3 모델 로봇을 만들었으며 곧 산업용에 널리 쓰였다. |
|
1978 |
Unimation에서 GM으로 첫 PUMA 로봇이 선적되었다. |
|
1982 |
GM과 일본의 Fanuc은 GMFanuc 공동로봇회사의 설립 합의서에 서명하였다. Westinghouse는 Unimation 로봇회사를 인수하였으며, 이는 다시 스위스의 Staubli 에 매각되었다. |
|
1983 |
로봇공학은 학계뿐만 아니라 산업분야에서도 선풍적인 인기 학문이 되었고 국가적인 차원에서 로봇공학의 과목 개설이 시작되었다. |
|
1990 |
스위스의 ABB는 Cincinnati Milacron을 인수하였고 대부분의 소형 로봇 제작회사들은 몰락하기 시작했으며, 산업용 로봇을 제작하는 소수의 대기업만이 남게 되었다. |
6. 로봇의 장점과 단점
ㆍ로봇공학과 자동화는 많은 분야에서 높은 생산성, 안전성, 효율성, 품질의 일관성이 가능하게 하였다.
ㆍ로봇은 생명을 담보로 하지 않으며 위험한 곳에서도 작업이 가능하며 로봇을 위한 편의장치 또한 필요치 않고 안전에 대한 염려도 없다.
ㆍ로봇은 조명, 산소공급, 환기, 소음 대책 등과 같은 배려가 필요하지 않다.
ㆍ로봇은 피로나 지루함 없이 지속적으로 작업이 가능하며 숙취로 인한 정신적 질환의 염려도 없으며 의료보험이나 휴가도 필요하지 않다.
ㆍ로봇은 수명이 다하거나 특별한 문제가 발생하지 않는다면 항상 지속적으로 정확하게 작업이 가능하다.
ㆍ로봇은 수천분의 일인치 정도의 정밀도로써 인간보다 훨씬 더 정밀하다. 최근의 웨이퍼를 생산하는 로봇은 마이크로 인치까지의 정확성을 가지고 있다.
ㆍ로봇과 그 부속물들과 센서들은 인간의 능력보다 월등하다.
ㆍ로봇은 다중 작업 입력에 대한 다중업무를 동시에 처리할 수 있으나 인간은 한 가지 작업만이 가능하다.
ㆍ로봇이 인간을 대신함으로 인해 노동자들이 월급을 잃는 것과 같은 임금문제를 포함하여 노동자들 사이의 적개심, 불협화음과 같은 사회적인 문제를 야기한다.
ㆍ로봇은 시스템에 포함되어 있는 응급상황에 대비한 시스템 내부의 상황처리에 대한 내용이 없을 경우 대처능력이 거의 없다. 이 경우 작업자와 관련 기계들을 보호할 수 있는 다음과 같은 안전척도[3]가 필요하다:
ㆍ부적절하거나 잘못된 반응
ㆍ의사 결정 능력의 부족
ㆍ힘의 손실
ㆍ로봇과 다른 장치의 파손
ㆍ인간 상해
ㆍ로봇들이 비록 특정한 기능이 뛰어날지라도 다음과 같은 능력은 제한되어 있다.
ㆍ자유도
ㆍ기민함
ㆍ센서류
ㆍ시각 시스템
ㆍ실시간 응답
ㆍ로봇은 다음과 같은 이유에서 비싸다.
ㆍ장비의 초기투자
ㆍ설치비
ㆍ주변장치의 필요성
ㆍ장비교육의 필요성
ㆍ프로그래밍의 필요성
7. 로봇의 구성 요소
시스템으로서 로봇은 전체적인 통합을 위해서 다음과 같은 요소로 구성된다:
매니퓰레이터 또는 탐색기 (Manipulator, or Rover) 이것은 링크, 관절과 로봇의 다른 구조상의 요소들로 구성된 로봇의 주 몸체이다. 다른 요소가 없는 단순 매니퓰레이터는 로봇이라 할 수 없다(그림 2).
말단장치 (End Effector) 이 부분은 구조적으로 로봇의 마지막 관절(로봇 손에 해당하는 부분)에 연결되어 물건을 조작하고 다른 기계와 연동하거나 작업을 수행한다(그림 2). 일반적으로 로봇 제조업자는 말단장치만 설계하거나 판매하지는 않으나 대부분 단순 집게 (gripper) 는 판매한다. 일반적으로 로봇의 손은 특수한 목적에 맞게끔 설계된 특수한 말단 장치 (end effector) 로써 다른 시스템과의 접목이 가능케 한다. 이것이 바로 회사의 엔지니어나 설계 자문단의 일이며 주어진 상황에 알맞게 작업하게끔 말단장치를 설계한다. 용접용, 페인트 도포용, 접착 도료용 그리고 부품 조작용 말단장치들은 더 이상 개발의 여지는 없으나, 대부분의 경우 말단장치의 동작은 PLC와 같이 로봇의 제어기나 말단장치의 제어 장치와 통신함으로써 제어한다.

[그림 2] Fanuc M-410iWW의 짐부리기용 매니퓰레이터와 말단장치 (end effector) (Fanuc Robotics, North America, Inc.의 게재 승인을 받음)
구동기 (Actuator) 구동기는 매니퓰레이터의 "근육" 에 해당한다. 구동기의 일반적인 형태는 서보모터나 스텝모터, 공압 실린더나 유압 실린더이다. 다른 새로운 형태의 구동기로는 특수목적에 사용되는 것이 있으나 이는 6장에서 살펴볼 것이다. 구동기는 제어기에 의해서 제어된다.
센서류 (Sensors) 센서는 로봇의 내부 상태에 대한 정보를 수집하는 것과 외부 환경과 교신하는 데 이용된다. 인간과 같이 로봇 제어기는 로봇의 상태를 알기 위해 로봇의 각 링크위치가 어떠한지 알아야 한다. 칠흙같은 어둠 속에서도 인간은 근육에 있는 중추 신경 계통의 센서에서 뇌로 정보를 보내기 때문에 팔과 다리 등의 상태를 알 수 있다. 로봇도 이와 마찬가지로 로봇과 통합된 센서는 로봇의 상태를 결정하는 제어기로 각 링크와 관절에 대한 정보를 보낸다. 로봇은 시각 시스템, 촉각 센서, 음성합성 장비와 같은 로봇과 외부 세계와 교신을 가능케 해주는 외부 센서류도 종종 가지고 있다.
제어기 (Controller) 제어기는 인간의 뇌와 같이 뛰어난 능력은 없으나 운동능력을 담당하는 소뇌와 같은 기능을 한다. 제어기는 컴퓨터에서 데이터를 받고 구동기 (actuator) 의 운동을 제어하고 센서에서 오는 정보로 운동의 좌표축을 설정한다. 큰 틀에서 부품을 꺼내는 로봇인 경우, 첫 번째 관절은 항상 35°의 각도를 유지해야 한다. 만약 이러한 각도로 준비되지 않은 상태라면 제어기에서 구동기로 작동신호(전기모터에는 전류, 공압 실린더에는 공기, 유압 서보 밸브는 신호)를 보내 움직이게 한다. 그리고 관절에 붙어있는 되먹임 센서비(포텐쇼미터나 엔코더 등)로써 관절각의 변화를 감지한다. 관절이 원하는 값에 도달하면 작동신호도 멈춘다. 더욱 복잡한 로봇인 경우에는 속도나 로봇에서 발생하는 힘까지도 제어기에 의해서 제어된다.
처리기 (Processor) 처리기는 로봇의 두뇌부에 해당한다. 처리기는 로봇관절의 운동을 연산하고 원하는 위치와 속도를 생성하기 위해 각각의 관절이 얼마나 빨리, 얼마만큼 움직여야 하는지를 결정하며 모든 센서와 제어기의 동작을 감시한다. 처리는 보통 컴퓨터와 같은 기능을 수행하나 단일 목적으로만 사용되는 컴퓨터를 의미한다. 컴퓨터는 보통 프로그램, 모니터와 같은 주변장치와 운영체제 (operating system) 등이 필요하며 컴퓨터의 처리기 성능에 따라서 기능이 제한된다.
소프트웨어 (Software) 로봇에서 사용되는 소프트웨어는 보통 세 가지로 분류된다. 첫 번째는 컴퓨터를 작동하는 운영체제이고, 두 번째는 로봇의 운동학적인 방정식에 기초를 둔 각 관절의 필요한 운동량을 계산하는 로봇 소프트웨어이며 이 정보가 제어기로 보내진다. 이 소프트웨어는 기계어에서부터 현대 로봇에 사용되는 고급언어까지 다양한 레벨을 가지고 있다. 세 번째는 여러 루틴을 합해서 구성된 응용 프로그램, 즉 특별한 작업이나 시각 기능을 수행하게 하거나 로봇의 주변장치를 사용하게 하는 것들을 말한다.
대부분의 시스템에서 제어기와 처리기는 같은 부분단위로 취급됨을 유념하여야 한다. 비록 이들이 같은 범위에 있다 하더라도, 심지어 같은 회로 안으로 집적된다 하더라도 그 기능은 서로 다르다.
8. 로봇의 자유도
기구학 과목에서 배운 것을 상기해 보면, 공간에서의 한 점을 고려할 때 직교좌표 (Cartesian axes) x, y, z의 세 축을 기준으로 하는 것과 같이 세 개의 좌표축을 설정해야만 한다. 여기서 공간상의 점을 정의하는 데 세 좌표축은 필요충분조건이 된다. 좌표축이 비록 다른 좌표계 방식을 정의되었다 하더라도 공간상에서 두 개의 좌표축으로 정의하는 것은 불가능하며 항상 세 개의 좌표축이 필요하다. 즉, 두 개나 네 개의 좌표축은 불가능하다는 의미이며 두 개의 좌표축은 공간상의 점을 표현함에는 부족하고 네 개의 좌표축은 3차원 공간에서는 불가능하다. 또한 3개의 자유도를 갖는 3차원 장치를 고려해 볼 때 작업공간 내의 임의의 점에서 원하는 점으로 위치하는 것이 가능하게 된다. 예를 들면 이송용 프레임 (x, y, z) 형태의 기중기는 조작자 (operator) 에 의해서 작업공간 안에 공과 같은 물체를 원하는 위치에 놓을 수 있다.
또한 점이 아닌 강체와 같은 3차원 물체의 이송도 마찬가지이며 원하는 위치에 대한 3개의 정보를 가지면 그 위치에 그 물체를 놓는 것도 가능하다. 그러나 강체의 위치가 선정되었다 할지라도 원하는 위치로 자세잡는 방법은 무한하다. 공간상의 특정 물체는 특정점의 위치뿐만 아니라 물체의 방위 또한 정의되어야 한다. 이는 강체의 위치와 방위를 정의하는 데있어서 총 6개의 정보를 필요로 하게 된다는 것을 의미한다. 따라서 공간상의 강체를 완벽하게 위치하고 자세잡기 위해서는 6 자유도가 필요하다.
이를 증명하기 위해서 x, y, z축을 따라 움직이는 3 자유도의 로봇을 고려해 보자. 이 경우에는 방위는 존재하지 않는다. 즉, 이러한 형태의 모든 로봇은 공간상에서 부품 집어올리기나 좌표축에 평행한 이송만이 가능하며 방위는 언제나 같다. 이제 5 자유도의 세 축을 기준으로 회전이 가능하나 단지 x, y 축으로만 이송이 가능한 로봇을 고려해 보자. 이 경우, 원하는 방위가 가능하다 하더라도 부품의 위치는 z축 방향으로는 불가능하며 x, y 축으로만 가능하게 된다.

[그림 3] A Fanuc P-15 robot. Fanuc Robotics, North America ,In.의 게재 승인을 받음
단일해가 존재하지 앟는 7 자유도의 시스템을 고려해 보자.이 시스템은 로봇이 7 자유도를 가지면 원하는 장소에 물체를 위치하고 방위할 수 있는 무수한 경로가 존재하게 된다. 이러한 경우, 제어기는 무수한 경로 중에서 결정 가능한 경로를 선택하여 이 중에서 한 경로를 선택해야 한다. 예를 들어 목적지로의 최단 경로를 선택하거나 가장 빠른 경로를 선택하는 경우가 그러하다. 그 다음 컴퓨터는 모든 가능한 해 중에서 기능을 수행하며 가장 빠르고 근접한 결과를 내는 해를 찾는 다. 이는 많은 연산을 포함하며 연산시간이 많이 소요되므로 7 자유도 로봇은 산업현장에서는 잘 사용되지 않는다. 그림 3 과 같은 컨베이어 벨트나 이동용 플랫폼과 같은 이동하는 베이스에 장착된 매니퓰레이터의 경우도 마찬가지이다. 이 경우 앞에서 설명한 것과 같이 부가적인 자유도가 첨가되면 제어가 불가능하다. 이 로봇 또한 컨베이어 벨트나 이송용 플랫폼 위에서 다양한 위치해를 가지며 원하는 위치에 방위할 수 있다. 그러나 이 경우는 일반적으로 너무 많은 자유도가 있어서 부가적인 자유도는 해석이 불가능하다. 다시 말하면, 로봇이 컴베이어 벨트나 이송용 플랫폼에 설치되면 로봇을 기준으로 한 위치는 벨트나 다른 이미 알고 있는 좌표축에 상대적인 결과를 낳게 된다. 이 위치는 제어기에 결정될 필요는 없으므로 남은 시스템은 6 자유도 시스템이 되며, 따라서 단일해가 존재하게 된다. 이송용 플랫폼의 위치나 벨트 위에 장착된 로봇의 위치를 알고 있는 경우, 또는 알 수 있는 경우에는 로봇의 운동방정식을 연산할 필요가 없으므로 이 시스템은 연산이 가능하다.
인간의 손(손 바닥이나 손가락을 포함하여)은 제외하고 손목을 포함할 경우 인간의 팔이 가지고 있는 자유도는 얼마인가 결정하기 이전에 여러 가지 방법으로 해석을 시도해 보도록 하자.
일단 인간의 팔은 3개의 관절이 있으며 팔의 상단부분 (humerus) 은 몸의 중심평면상으로 평행한 면상에서 회전이 가능하며 양어깨의 연직선상에서도 회전이 가능하며 팔의 상단부분을 중심으로도 회전이 가능하다. 이는 직접 팔을 돌려보면 쉽게 알 수 있는 사실이다. 팔꿈치는 단지 1 자유도만 가지고 있다. 즉, 관절을 중심으로 굽히기와 펴기만 가능하기 때문이다. 손목은 3 자유도를 가지고 있다. 왜냐하면 손목의 안쪽, 바깥쪽으로 굽히거나 펼 수 있고 위, 아래 방향으로 회전할 수 있으며 팔의 직선상으로도 (pronate and supinate) 자체 회전할 수 있다. 따라서 어떤 움직임은 아주 미세할지라도 인간의 팔은 7 자유도 시스템이라고 할 수 있다. 7 자유도 시스템은 단일해가 없는 데도 불구하고 어떻게 인간은 팔을 움직일 수 있는 것일까?
로봇 시스템에 있어서 말단장치는 한 개의 자유도를 가지지 않는다는 것을 알아야 한다.모든 로봇에 있어서 이러한 부가적인 말단장치의 능력이 마치 1자유도를 가진 것처럼 보이나 말단 장치의 어떤 움직임도 결코 로봇의 자유도를 결정하는 데 추가되지 않는다.
어떤 경우 관절이 이동하는 기능도 있는 경우도 있으나 이 기능은 완벽하게 제어가 되지 않는다. 예를 들어 팔이 완전히 끝까지 늘어나고 줄어드는 공압으로 가동되는 평행이동 관절의 경우를 보면 양쪽 끝 사이의 어떤 위치들은 제어가 불가능해진다. 이 경우에는 보통 관절에 대해서 절반의 자유도로 고려된다. 즉, 관절은 운동의 한계영역에서 특정한 위치에서만 정의가 가능하다는 의미이다. 절반의 자유도의 또 다른 경우는 관절에 특이한 값이 정의되었을 경우이다. 예를 들어 관절이 0, 30, 60, 90°의 각위치로만 움직임이 가능한 경우에 그러하다. 이미 살펴보았듯이 관절은 기능면에서 한계가 있으며 따라서 자유도에 있어서 제약이 존재한다.
6 자유도보다 적은 자유도의 산업용 로봇이 일반적이며 보통 3.5, 4, 5 자유도의 시스템이 일반적이다. 추가적인 자유도가 필요 없는 경우에는 제어가 매우 수월하다. 예를 들어 회로판에 부품을 삽입하는 공정을 보면 회로판은 항상 알고 있는 작업공간상에서 평행하게 위치해야 하며, 따라서 그 높이 (z값) 는 이미 알고 있는 로봇의 위치에서 상대적인 위치에 자리잡게 된다. 따라서 부품이 삽입되어야 할 위치인 회로판의 x 축과 y 축에 따른 2 자유도만이 필요로 하게 된다. 또한, 회로판에 원하는 삽입각도가 있는 경우에도 회로판은 항상 평행해야 한다. 즉, 이런 경우에는 회로판의 표면 위로 부품을 회전시키기 위해서 z축의 수직방향으로 회전하는 자유도가 추가적으로 필요하게 된다. 부품을 빼거나 삽입하기 위해 늘어나는 0.5 자유도의 말단장치가 필요하므로 총 자유도는 3.5 자유도가 된다. 즉, 이동을 위한 2 자유도와 부품의 회전을 위한 1 자유도, 그리고 삽입과 추출을 위한 0.5 자유도를 의미한다. 삽입용 로봇은 전자관련 산업 분야에서 매우 광범위하고 널리 사용되며 가격이 싸고 작으며 빠르고 프로그램이 쉽다는 장점이 이다. 그러나 임의의 방향으로 임의의 회로판에 부품의 삽입이 가능하도록 프로그램되지만 다른 작업은 수행할 수 없다는 단점이 있다. 보통 3.5 자유도로 가능한 기능으로 국한되기는 하지만 설계된 기능에 따라서 다양한 기능을 수행할 수 있다.
9. 로봇의 관절부
로봇은 병진형, 회전형, 미끄럼형, 구형 등의 다양한 관절을 가지고 있다. 보통 구형관절이 많이 사용되나 자유도가 많아서 제어가 어렵기 때문에 연구목적을 제외하고는 로봇공학에서는 사용되지 않는다. 보통 로봇은 회전 (revolute) 관절이나 병진 (prismatic) 관절이 많이 사용된다.
병진관절은 선형이며 회전 성분이 포함되지 않는다. 보통 유압이나 공압으로 기동되며 때로는 선형 전기 구동기가 사용되기도 한다. 이러한 관절은 기중기나 원통형과 같은 관절 형태로 사용되기도 한다.
회전관절은 회전이 가능한 유공압 관절이 일반적이기는 하나 대부분의 회전관절은 전기적으로 구동되는 스텝모터나 서보모터에 의한 구동 형태가 더 일반적이다.
10. 로봇 좌표계
로봇의 형상은 일반적으로 그림 4에서 보여주듯이 정의된 좌표계에 따라서 결정된다. 병진관절은 P로, 회전관절은 R로, 구형관절은 S로 표시된다. 로봇의 형상은 여러 개의 P 와 R그리고 S의 연속적인 배열로서 구성된다. 예를 들면 3개의 병진관절과 3개의 회전관절을 가진 로봇은 3P3R 로 정의된다.다음 로봇의 형상들은 로봇 손의 위치를 나타내는 일반적인 내용이다.
직교좌표형 (Cartesian)/직사각형 (Rectangular)/기중기 (Gantry) 형태 -3P 이러한 형태의 로봇은 3개의 병진관절로 단말장치를 위치하게 하며, 추가적으로 단말장치의 방위를 잡는 회전관절들이 더 추가되기도 한다.
원통형 (Cylindrial)-R2P 원통형 좌표계의 로봇은 두 개의 병진관절과 한 개의 회전관절을 가지며, 추가적으로 부품의 방위를 잡는 회전관절들이 추가된다.
구형 (Spherical)-2RP 구 좌표계 로봇은 한 개의 병진관절과 부품의 회전을 위한 두 개의 회전관절을 가지며 구 좌표계를 따른다. 또한 회전을 위한 회전관절이 추가된다.
환관절형 (Articulated)/인간형 (Anthropomorphic)-3R 환관절형은 모두 회전관절로만 이루어져 있으며 인간의 팔과 매우 흡사하다. 이 형태가 산업용 로봇의 일반적인 형태이다.
선택적 순응형 조합 로봇 팔 (Selective Compliance Assembly Robot Arm-SCARA) SCARA 로봇은 그림 5에서 보여주듯이 두 개의 평행한 회전관절로 평면적으로 움직임이 가능하게 하며 더불어 병진관절로 수직평면으로도 움직임이 가능하다. SCARA 로봇은 조립공정에서 사용하는 가장 일반적인 로봇이다. 이 로봇의 특징은 x-y 평면에서는 한층 유연하지만, z축에서는 기복이 심하므로 선택적 컴플라이언스 (compliance) 를 사용한다.

[그림 5] Adept SCARA 로봇 (Adept Technology, Inc. 의 게재 승인을 받음)
11. 로봇 기준 좌표계
로봇은 다른 좌표축에 대해서 상대적인 운동이 가능하다. 각각의 좌표축에 따라서 운동의 해석은 달라질 수 있다. 보통 로봇의 운동은 다음 세 가지 좌표축에서 해석이 가능하다(그림 6):

[그림 6] 로봇의 세계, 관절, 도구 좌표계, 대부분의 로봇은 이러한 좌표계에서 움직일 수 있도록 프로그래밍되어진다.
세계 좌표축 (World Reference Frame) 세계 좌표축은 보편적 좌표축이며 x, y, z 축을 기준으로 정의된다. 이 경우 로봇 관절은 세 개의 각 축을 따라 운동을 생성하기 위해서 연속적으로 움직인다. 이 좌표축에서는 팔이 어디에 있는지 상관없이 x축 양의 방향으로 움직임이 항상 x축의 양의 방향이다. 즉, 이 좌표축은 다른 물체에 대한 상대적인 로봇의 운동을 정의할 때 사용되며 로봇과 통신하는 다른 시스템이나 기계류를 정의하고 운동의 경로를 정의할 때 사용된다.
관절 기준 좌표계 (Joint Reference Frame) 이 좌표축은 로봇의 모든 관절의 운동을 각각 정의하는데 사용된다. 만일 로봇의 손을 특정한 위치로 이동할 때 로봇의 손이 목적하는 위치에 한번에 직접 도달하게 하기 위해서 하나의 관절을 정의해야 한다. 이 경우 각 관절은 일일이 접근이 이루어져야 하며, 한 번에 단지 한 개의 관절이 움직인다. 관절의 형태 (병진형, 회전형, 구형 관절) 에 따라서 로봇 손의 운동은 다르다. 예를 들어 회전관절인 경우, 손은 관절의 축에서 정의되는 원을 따라서 운동하게 된다.
도구 상대 좌표계 (Tool Reference Frame) 이는 로봇 손에 장착된 좌표계에서 상대적으로 운동하는 로봇 손의 운동을 정의한다. 로봇 손의 x', y', z' 좌표축은 이 지역 좌표계 (local frame) 에서의 상대적인 손의 운동을 정의한다. 세계 좌표계와는 달리 이 지역 도구 좌표계는 로봇을 따라서 움직인다. 손이 그림 6에서와 같이 위치한다면 지역 도구 좌표계에서 x축 양의 방향으로 상대 이동하는 로봇의 손은 도구 좌표계의 x'축의 방향으로 이동한다. 만일 로봇 팔이 다른 곳을 가리키고 있다면 도구 좌표계의 x'축을 따라서 움직이는 위와 똑같은 운동이 전혀 다른 운동으로 해석된다. 같은 식으로 x'축이 위쪽을 향한다면 +x'의 운동이 위쪽이 되며, x'축이 아래쪽을 향한다면 +x'의 운동은 아래쪽이 된다. 결과적으로 도구 상대 좌표계는 로봇이 움직임에 따라 항상 같이 움직이는 좌표계이며 팔의 위치와 도구 상대 좌표계의 방향에 구속되어 발생하는 운동이 상태적으로 달라진다. 도구 상대 좌표계는 로봇이 어떤 물체에 접근하거나 멀어지려고 할 때 혹은 부품을 조립하고자 하는 곳에 있어 로봇이 프로그래밍하고자 할 때 매우 유용한 좌표계이다.
12. 프로그램 방식
로봇은 로봇과 그 로봇의 숙련도에 따라서 다양한 방식으로 프로그램이 가능하다. 다음은 일반적인 프로그램 방식 (programming mode)을 보여주고 있다.
물리적인 구성 (Physical Setup) 이 방식은 조작자가 로봇의 운동을 제어할 수 있도록 스위치와 강제 정지기능을 설치하는 것이다. 이 방식은 보통 다른 장치,즉 PLC (Programmable Logic Controllers) 등과 함께 사용된다.
선행방식 또는 교시방식 (Lead Through or Teach Mode) 이 방식에서는 로봇의 관절들이 교시기구 (teach peudant) 에 의해 움직인다. 목표위치와 방위가 얻어지면 이 위치정보가 제어기로 전달(혹은 교시) 된다. 동작을 재생하는 동안 제어기는 관절들을 같은 위치와 방위로 움직이게 한다. 이 방식은 일반적으로 점에서 점 (point to point) 으로 이동하며, 여기서 점과 점 사이의 운동은 정의되거나 제어되지는 않는다. 단지 소위 교시된 점들만 도달해야 할 위치로 인정된다.
연속적 기억반복 방식 (Continuous Walk-Through Mode) 이 방식은 모든 로봇의 관절들이 동시에 움직이며 운동이 지속적으로 제어기에 의해서 검출되고 기록된다. 동작을 재생하는 동안 기록된 그대로 동작이 정확히 수행된다. 조작자에 의해 학습된 동작이나 이상적 모델을 통해서, 또는 말단장치의 물리적인 이동이나 로봇 팔의 직접적인 작업공간안에서의 이동에 의해서 운동 내용이 학습된다. 예를 들어 페인트 로봇은 바로 이 방식을 통해서 숙련된 페인트 작업자에 의해서 프로그램된다.
소프트웨어 방식 (Software Mode) 이 방식의 로봇 프로그램은 온라인이나 오프라인으로 프로그램되며 운동을 제어하기 위해서는 제어기를 통해서 운동이 수행된다. 이 프로그램 방식은 가장 숙련되고 다재다능한 방식으로서 센서의 정보와 현 로봇의 상태에 대한 정보출력 (If..then 문장형식) 뿐만 아니라 분류까지도 가능하다. 그러나 프로그램이 기술되기 이전에 컴퓨터의 운영체제에 대해서 알고 있어야 한다.
대부분의 산업용 로봇은 한 가지 이상의 방식으로 프로그램된다.
13. 로봇의 특성
다음은 로봇의 속성을 기술하는 용어의 정의를 보여주고 있다:
적재하중 (Payload) 적재하중이란 로봇이 다른 속성을 유지할 수 있는 상황하에서 운송이 가능한 무게를 말한다. 예를 들면 로봇의 최대 적재하중은 규정된 적재하중보다 훨씬 큰 무게를 말하며, 최대 적재하중 상태에서는 정밀도가 더 떨어지게 되어 목적하는 경로로 이송이 어렵고 변위 또한 커진다. 로봇의 적재하중은 로봇 자체의 무게에 비하여 매우 작다. 예를 들어 Fanuc Robotics LR MateTM 로봇은 기계하중이 86 파운드,적재하중은 6.6 파운드이며 M-16ITM 로봇은 기계하중 594 파운드, 적재하중이 35 파운드이다.
도달범위 (Reach) 도달범위는 로봇이 작업영역 안에서 움직일 수 있는 최대거리이다. 추후에 자세히 살펴보겠지만, 로봇의 작업영역 안에서 대부분의 지점들은 원하는 방위를 가질 수 있다. 이는 로봇의 자유자재성 (dexterous) 이라고 한다. 그러나 로봇의 도달가능 범위 경계선 근처의 어떤 지점들은 원하는 방위가 불가능한 곳도 있다. 이는 로봇의 부자유 자재성 (nondexterous) 이라고 한다.
정밀성/타당성 (Precision/Validity) 정밀성은 규정된 지점으로 얼마나 정확하게 닿을 수 있는지에 의해서 정의된다. 이는 되먹임장치 (feedback device) 뿐만 아니라 로봇 구동기의 정밀도에 따라 좌우된다. 대부분의 산업용 로봇은 공차 0.001인치 이상의 정밀도를 가지고 있다.
재연성능/변이성능 (Repeatability/Variability) 재연성능은 만일 로봇의 운동이 여러번 반복되는 경우 얼마나 정확하게 똑같은 위치를 도달할 수 있는지에 따라서 좌우된다. 만약 로봇이 100번 똑같은 지점으로 운동하는 경우,위치 정확도에 영향을 미치는 많은 요소들이 존재하게 되어 보통 원하는 지점으로부터 임의의 원의 영역 안에 위치하게 된다. 이 반복동작에 의해 생성되는 원의 반경을 재연성능이라고 한다. 재연성능은 정밀성보다 더 중요하다. 로봇이 정밀하지 않다면 일반적으로 일정한 오류가 예측 가능하며 프로그램으로써 보정이 가능하다. 예를 들어 어떤 로봇이 오른쪽으로 0.05인치의 위치오차가 있다고 가정하면 이 오차는제거할 수 없다. 재연성능은 이 불확실한 오차를 정의하며 일반적으로 반복가능 횟수에 따라서 성능이 좌우된다. 성능검사 횟수가 많을수록 제조회사에는 불리하나 결과는 보다 구체적이 되므로 사용자들에게는 유리하다. 로봇 제조회사는 성능검사 당시의 적재하중과 로봇 팔의 방위를 포함하여 성능검사 횟수를 재연성능과 연계하여 명시하여야 한다. 예를 들어 로봇 팔이 수직인 경우의 재연성능은 로봇 팔이 수평인 상태에서의 성능검사와는 다르기 때문이다. 대부분의 산업용 로봇은 0.001인치 범위의 재연성능을 가지고 있다.
14. 로봇의 작업공간
로봇의 형상과 로봇 손목의 관절, 링크 (link) 의 크기에 따라서 작업공간이라고 불리는 점들의 집합에 도달이 가능하다. 각각의 로봇마다 작업공간의 모양새는 로봇의 특성에 따라서 달라진다. 작업공간은 각 관절의 한계운동영역을 포함하여 로봇의 관절과 링크를 정의하는 수학적 운동방정식으로 생성할 수 있다[4]. 또한 작업공간은 각 관절을 운동영역안에서 움직이거나 도달할 수 있는 영역을 모두 포함하고, 도달하지 못하는 영역은 삭제하는 방식으로 실험을 함으로도 생성이 가능하다. 그림 7은 일반적인 작업공간의 대략적인 모양새를 보여주고 있다. 로봇이 특수용인 경우 원하는 위치로 도달이 가능한지에 대해서 연구하여 작업공간을 확립해야 한다. 작업공간을 정확히 확립하기 위해서는 로봇제조회사의 자료까지 참조해야 한다.

[그림 7] 일반 로봇의 전형적인 작업공간 형상
15. 로봇 언어
로봇에 사용하는 언어는 아마도 로봇의 수만큼이나 많을 것이다. 각 제조회사는 자 회사의 특수용 로봇에 사용하기 위해서 뿐만 아니라 로봇에 필요한 언어를 개발하고 또한 반드시 알아두어야 할 프로그램 언어도 개발한다. 대부분의 로봇 언어는 Cobol, Basic, C 나 Fortran 등과 같은 언어에 기초를 두고 있다. 다른 언어는 특수용이거나 호환성이 없다.
로봇 언어는 로봇의 성능, 즉 단순 기계 수준에서부터 인간의 지능에 필적하는 수준까지에 따라서 다르며 로봇의 설계와 응용분야에 따라서도 다르다[5-7]. 고급언어는 기계어로 변환하는 변화기 (interpreter) 뿐만 아니라 컴파일러 (compiler) 까지 존재한다.
변환기 기반의 언어는 한 번에 프로그램의 한 라인을 실행하며 각 라인마다 번호를 가지고 있다. 변환기는 실행해야 하는 명령 라인을 처리기가 이해하고 실행할 수 있는 기계어로 매번 변환하고 순차적으로 각 라인을 실행한다. 명령 라인의 실행은 마지막 라인을 만나거나 에러가 발생할 때까지 계속 실행된다. 변환기 기반의 언어는 에러가 발생할 때까지 계속 실행이 가능하다는 장점이 있고 부분적으로 프로그램의 수정과 실행이 가능하다는 장점이 있다. 따라서 디버그 프로그램을 보다 빠르고 쉽게 사용할 수 있다. 그러나 매번 각라인을 변환해야 하므로 실행이 느려 효율적이지 못하다는 단점이 있다. UnimationTM VAL® 과 IBM의 AML® 과 같은 로봇 언어는 변환기 기준의 언어들이다[8,9].
컴파일러 기반의 언어는 프로그램을 실행하기 이전에 프로그램 전체를 컴파일러를 통하여 기계어, 즉 오브젝트 코드 (object code) 를 생성하여 변환한다. 처리기가 명령을 실행하는 동안 이 오브젝트 코드를 실행하기 때문에 이러한 프로그램들은 보다 빠르고 효율적이다. 그러나 전체 프로그램이 먼저 컴파일되어야 하기 때문에 에러가 있는 경우에는 프로그램의 일부를 실행시키는 것이 불가능하다. 결과적으로 컴파일러 기반의 언어의 디버깅은 훨씬 더 어렵다. 그러나 ALⓒ 등과 같은 언어처럼 좀더 쉬운 언어도 있으며, 이러한 언어는 컴파일러 환경에서 프로그램이 실행되기는 하나 사용자가 변환기 환경에서 프로그램을 디버깅하게 해준다.
다음은 로봇 언어의 수준에 대한 일반적인 설명을 나타내었다[5].
마이크로컴퓨터 기계 언어 수준 (Microcomputer Machine Language Level) 이 수준의 언어에서는 프로그램은 기계어로 작성된다. 이 프로그램 수준이 가장 기본이 되며 가장 효율적이지만 배우기가 어렵고 이해하기도 어려운 것이 단점이다. 모든 언어는 이 수준에서 변환되거나 컴파일된다. 그러나 고급수준 프로그래밍 환경에서는 사용자가 고급수준언어를 사용하게 되므로 배우기 쉽고 이해하기도 쉽다.
점대점 수준 (Point-to-Point Level) 이 수준 (Funkyⓒ 와 Cincinnati Milacron의 T3ⓒ) 에서는 점의 좌표축이 순차적으로 생성되며 로봇은 이 명시된 점을 따른다. 이 부분은 매우 원시적이고 단순한 형태의 프로그램이나 사용하기가 쉬운 반면 성능은 뛰어나지 않다. 또한 현상태의 설명이 난해하고 센서의 정보나 하위 분기 (branch) 능력이 부족하다.
원시적 위치 수준 (Promotive Motion Level) 이 언어에서는 센서의 정보를 포함하고 하위 분류가 가능하며 현 상태의 기술이 가능한 보다 숙련된 프로그램이 가능하다. UnimationTM 의 VAL 과 같은 프로그램이 이 분류에 속한다. 대부분 이 수준의 언어는 변환기 수준 정도이다.
구조적 프로그래밍 수준 (Structured Programming Level) 이 수준의 대부분의 언어는 컴파일러 수준의 언어이며 강력하고 보다 세련된 프로그래밍이 가능하나 배우기가 어렵다는 단점이 있다.
작업 지향성 수준 (Task-Oriented Level) 현재로서는 이 수준 단계의 언어는 존재하지 않는다. 1980년대에 IBM에 의해 제안된 Autopass는 결코 실현되지 못했다. 이 의미는 일일이 로봇이 해야 하는 일을 프로그램함으로써 작업을 수행하게 하거나 매 단계의 작업을 완료하게 하는 대신에 사용자가 단순히 작업을 지정하면 제어기가 필요한 순서를 생성하여 작업을 완료하는 방식이다. 로봇이 세 가지 크기의 상자를 분류하는 작업을 수행하는 경우를 생각해 보면 모든 현존하는 언어에서는 프로그래머가 로봇에게 정확히 무엇을 수행해야 하는지, 즉 모든 단계가 프로그래밍되어야 한다는 의미이며 각 단계의 작업을 일일이 지정해 주어야 할 것이다. 로봇은 어떤 방식으로 가장 큰 상자를 분류하며, 어떤 방식으로 집어 올리고, 어디에 놓는지, 또는 어떻게 다음 상자를 선택하는지 등등에 대해서 일일이 언급되어야 한다. Autopass 에서는 사용자가 단지 '분류' 라는 것을 지정하면 로봇이 자동적으로 작업의 순서를 생성한다.
|
예제 1.1 |
다음은 VAL-Ⅱ의 의해 쓰여진 프로그램의 예이다. 1979년에 발표된 이 로봇용 언어는 Unimation® 과 Puma® 로봇에 사용되었다. 이것은 변환기 기반 언어이고 분기와 센서 입력, 출력 전송, 직선 병진운동 등과 여러 다른 특징들을 가지고 있다. 예를 들면 사용자는 말단장치의 a축을 따라 "높이" 인 거리를 정의할 수 있으며, 이는 물체에 충돌하지 않는 조건하에서 접근하거나 멀어지게 위해서 APPRO(접근)와 DEPART 라고 하는 명령어로 사용 가능하다. MOVE라는 명령어는 현 위치에서 다음 목적지인 명시된 위치로 이동하기 위한 것이다. 그러나 MOVES는 같은 명령이나 직선운동만 수행한다. 이 차이점은 5장에서 보다 자세히 언급할 것이다. 다음의 내용은 VAL-Ⅱ의 몇 가지 능력을 보여주기 위해서 나타낸 것이다.
|
1.PROGRAM TEST |
프로그램 이름 선언. |
|
2 SPEED 30 ALWAYS |
로봇의 속도 설정. |
|
3 height=50 |
말단장치의 a축을 따라서 안착전과 이륙점에 대한 거리를 정의한다. |
|
4 MOVES p1 |
위치점 p1으로 로봇을 직진시킴. |
|
5 MOVE p2 |
관절의 보간운동으로 로봇을 두 번째 위치접 p2로 이동시킴. |
|
6 REACTI 1001 |
포트 1로 high(닫힘) 신호가 입력되면 로봇은 즉시 정지함. |
|
7 BREAK |
이전에 진행중인 운동이 완료될 때까지 실행을 중지함. |
|
8 DELAY2 |
2초간 실행을 지연시킴. |
|
9 IF SIG(1001) GOTO 100 |
포트 1의 입력을 검사함. 만일 high(닫힘)라면 실행명령을 100라인에 있는 명령을 실행함. high가 아니라면 다음 명령을 실행. |
|
10 OPEN |
집게를 개방함. |
|
11 MOVE P5 |
위치점 p5로 이동함. |
|
12 SIGNAL 2 |
출력포트 2를 켬. |
|
13 APPRO p6, height |
로봇을 위치점 p6으로 이동시키나 a축(도구 좌표계에서)에 대한 집게의 높이로 정의된 부분에는 접근하지 아니함. 이를 이륙점이라 함. |
|
14 MOVE p6 |
물체를 위치점 p6 으로 이동함. |
|
15 CLOSEI |
집게가 완전히 닫힐 때까지 닫음. |
|
16 DEPART height |
집게의 도구 좌표계에 대한 높이로 정의된 z축을 따라 집게를 이동시킴. |
|
17 MOVES p1 |
위치점 p1으로 로봇을 이동시킴. |
|
18 TYPE "all done." |
모니터에 출력함. |
|
19 END |
|
|
예제 1.2 |
다음은 IBM의 AML(A Manufacturing Language) 에 의해 작성된 프로그램의 예이다. 이 프로그램은 3P3R 즉, 세 개의 병진관절, 세 개의 회전관절, 그리고 집게 (gripper) 를 가진 로봇을 위해 쓰여진 것이다. 관절은 관절의 번호인 <1,2,3,4,5,6,7> 에 의해 지정되며 1,2,3은 병진관절부분이고 4,5,6은 회전관절부분이며 7은 집게를 의미한다. 각 관절들은 x, y, z푹에 대한 운동을 나타내기 위해서 JX, JY, JZ의 문자로 각각 표시되며 JR, JR, JY는 Roll,Pitch와Yaw 축(방위 설정에 사용)에 대한 회전을 나타내며 JG는 집게부를 나타낸다.
AML에는 두 가지 방식의 이동 형태가 가능하다. MOVE명령어들은 절대적인 권한을 갖는다. 이것은 로봇이 지정된 관절을 따라 지정된 값을 가지고 이동한다는 것을 의미한다. DMOVE 명령어는 약한 다르다. 이 명령어는 관절이 어디에 위치하든지 일정한 거리만큼 이동함을 의미한다. 따라서 MOVE (1, 10) 은 로봇이 기준 좌표계의 원점에서부터 x축으로 10인치 만큼 움직이는 것을 의미한다.AML 에는 무수한 명령어들이 존재하여 보다 세련된 프로그램이 가능하게 해준다.
다음 프로그램은 한 장소에서 다른 장소로 대상물을 집어 위치시키는 로봇을 보여주고 있다. 이는 여러분들에게 어떻게 로봇의 프로그램이 구성되는지를 알려준다.
-
10 SUBR(PICK=PLACE);
서부루틴의 이름.
20 PT1: NEW<4., -24, 2, 0, 0, -13>;
위치선언.
30 PT2:NEW <-2, 13, 2, 150, -90, -33, 1>;
40 PT3: NEW <-2, 13, 2, 150, -90, -33, 1>;
50 SPEED(0.2);
로봇의 속도를 정의함(최고속도에서 약 20% 정도).
60 MOVE(ARM,0.0);
로봇 팔을 기준 좌표계상의 원점으로 원위치 시킴.
70 MOVE(<1,2,3,4,5,6>,PT1);
물체 위의 위치점 1로 로봇 팔을 이동시킨다.
80 MOVE(7,3);
집게를 3인치 연다
90 DMOVE(3, -1);
z축을 기준으로 로봇 팔을 1인치 내린다.
100 DMOVE(7, -1.5);
집게를 1.5인치 닫는다.
110 DMOVE(3, 1);
물체를 z축상으로 1인치 들어 올린다.
120 DMOVE(<JX, JY, JZ, JR, JP, JY>, PT2);
로봇 팔을 위치점 2로 이동시킴.
130 DMOVE(JZ,-3)
로봇 팔을 z축상으로 3인치 내려서 물체를 위치시키다.
140 MOVE(JG,3);
집게를 3인치 연다.
150 DMOVE(JZ,11);
로봇 팔을 z축을 기준으로 11인치 이동시킴.
160 MOVE(ARM,PT3);
로봇 팔을 위치점 p3으로 이동시킴
170 END;
16. 로봇의 응용
인간이 일을 할 수 없는 환경에서 작업하는 데에는 로봇이 최적이라 할 수 있다. 이미 많은 산업현장에서 다양한 용도로, 즉 용접분야를 예를 들면 로봇은 항상 같은 자세로 지속적으로 작업이 가능하므로 용접공보다 더 적은 비용, 보다 나은 품질로 용접이 가능하므로 로봇이 많이 사용된다. 또한, 로봇은 보안경이나 보호갑옷, 호흡장비 증 인간에게 필요한 장비들이 필요가 없다. 따라서 로봇은 보다 생산적이며 작업현장에서 유용하나 용접작업이 복잡하지 않아야 하며 작업이 자동적으로 이어지므로 작업순서가 용접로봇에 맞게 조정되어야 한다는 조건이 있다. 마찬가지로, 심해를 탐사하는 로봇은 인간인 잠수부보다 더 안전할 것이며 물 속에 더 오래 머무를 수도 있고 보다 깊이 잠수도 가능하고 보다 큰 압력도 견딜 수 있으며 산소도 필요치 않다. 다음 내용은 로봇에 대한 우리의 상상력에는 미치지 못하지만 유용한 로봇의 용도와 다방면으로 사용되는 로봇의 응용분야를 나타내고 있다:
기계 선적 다른 기계에 부품을 공급하거나 제거하는 작업으로(그림 8), 이 유형의 작업은 인간의 조작이 필요하지 않으나 일련의 작업 안에서 단순 작업용으로서의 로봇을 의미한다.
집고 배치하는 작업 로봇이 부품을 집고 또 다른 곳에 부품을 배치하는 작업(그림 9)을 말한다. 이 작업은 적재, 카트리지 배치작업, 두 가지 부품을 한 곳에 넣는 단순조립이나 오븐에 부품을 삽입하거나 제거하는 등등의 작업경로를 가진 작업을 의미한다.
[그림 8] Staubli 로봇의 부품 삽임, 제거작업 모습(본 사진은 Staubli Robotics의 거재 승인을 받음)

[그림 9] Staubli 로봇의 용접기에 식기 세척기를 배치하는 모습(본 사진은 Staubli Robotics의 거재 승인을 받음)

[그림 10] AM120 Fanuc 로봇(본 사진은 Fanuc Robotics, North America, Inc.의 거재 승인을 받음)

[그림 11] P200 Fanuc 로봇의 자동차 차체 도장작업 모습(본 사진은 Fanuc Robotics, North America, Inc.의 거재 승인을 받음)
용접 이 작업은 적정한 사전작업과 용접용 말단장치 (end-effector) 로 용접을 하는 작업을 말하며, 이는 자동차 산업의 대표적인 응용분야에 해당한다. 로봇은 지속적인 운동이 가능하기 때문에 용접이 매우 정밀하여 균일하다는 장점이 있다. 용접용 로봇은 그림 10 과 같이 크기가 크며 힘도 세다.
도장 도장은 로봇의 대표적인 응용분야 중 하나이며 자동차 산업에서는 더욱 그러하다. 로봇의 작업은 도료의 분무가 안정적이며 도포면이 매우 깨끗하며 작업실에의 작업이 인간보다 보다 유리하므로 작업이 능률적이다(그림 11).
검사 로봇은 부품의 검사, 회로판 검사 등의 물품 검사에도 널리 응용된다. 일반적으로 다른 장비와 함께 검사에 사용되며, 이는 보통 X선 검사장비, 시각 시스템 또는 초음파 센서 등(그림 12)이 이용된다. 또 다른 응용분야로는, 초음파 비파괴 결함검사장비를 장착한 로봇으로서 이는 CAD (Computer-Aided Design) 데이터를 기준으로 비행기의 연료부형상 검사, 날개부분 검사, 비행기 몸체의 검사, 연결부위 검사, 용접부위 검사와 체결부위의 리벳 (rivet) 검사 등에 사용되기도 한다. 또한, 각 체결부위를 찾고 검색하는 데에도 사용이 가능하며 수명이 다한 체결부위 리벳의 파손 검사나 교체,이동에도 사용되어 정비공이 이를 손쉽게 교체할 수 있게끔 한다. 이러한 응용분야는 부품의 인식을 포함하여 부품의 특성, 즉 회로판의 배치도나 부품명 인식표 등등에 대한 데이터가 시스템에 저장되어 있다. 시스템에서는 이 정보를 기초로 저장된 데이터와 일치되는 부품을 찾을 수 있고 검색 결과로서 채택이 되거나 제외되어 부품이 검사대상으로서 인식된다.

[그림 12] BMW 공장에서 작업중인 Staubli RX FRAMS (Flexible Robotic Absolute Measuring System) 로봇의 모습 (본 사진은 Staubli Robotics 의 거재 승인을 받음)
샘플링 로봇을 이용하여 샘플링 작업을 하는 것은 농업분야뿐만 아니라 많은 산업분야에서 응용된다. 샘플링은 집거나 배치하는 작업, 검사 작업 등과 비슷하나 생산품의 일정수에만 적용된다는 점이 다르다.
조립작업 제품에 부품을 삽입하는 공정 중 여러 가지 복합적인 공정이 있는 조립작업, 즉 부품을 배치하고 분별하며 여러 장애물을 회피하며 이송하는 작업은 로봇이 할 수 있는 가장 어려운 작업 중의 하나이다. 부품을 끼우거나 조립하는 작업은 보통 밀기, 회전시키기, 구부리기, 누르기, 두드리기 등등의 작업을 필요로 한다. 크기가 일정치 않거나 부품이 다양한 경우에는 현 공정에 맞는 부품인지를 판별해야 하는 과정이 포함되므로 더욱 어려워진다.
제조작업 로봇을 이용하여 물품을 제조하는 것에는 그림 13에서 보여주듯이 물품의 제거나 드릴링 작업, 디버링 (deburring) 작업, 접착제를 도포하는 작업, 자르기 작업 등 복합적인 작업을 포함한다. 또한 VCR 같은 장비 회로판에 전자부품의 삽입작업 등등의 작업도 마찬가지이다. 부품삽입용 로봇은 전자산업에서는 매우 광범위하게 사용된다.

[그림 13] 보석을 연마가공하는 Fanuc LR Mate 200i 로봇(본 사진은 Fanuc Rovotics, North America, Inc.의 게재 승인을 받음)
감시 로봇을 이용한 감시작업은 여러 차례 시도되었으나 성공적이지는 못했다. 그러나 시각 시스템의 도입으로 보안과 산업현장에, 그리고 도로교통 제어로 확장되어 사용되고 있으며, 남캘리포니아의 고속도로를 예를 들면, 개인 회사에게 한 차선을 임대하여 도로를 유지보수하게 하고 서비스를 제공하게 하여 사용자가 요금을 편리하게 지불하도록 하였다. 감시 카메라는 도로를 사용하는 차량의 번호판을 탐지하여 도로사용 비용을 부과하는 식으로 사용된다.
의료용 로봇 의학으로의 응용은 더욱 더 일상화되고 있다. 예를 들면 Rovodoc 은 인공관절치환 (total-joint-replacement) 수술장비로 외과의사의 수술에 일조를 하고 있다. 지금까지 두개골 절개나 뼈에 구멍을 내거나 정확한 치수의 구멍으로 만들거나 인공관절을 삽입하거나 하는 일련의 작업과 같은 많은 기능성으로 인간의 작업보다 로봇의 성능이 더 낫다. 뿐만 아니라 뼈의 형상과 위치는 CAT 검색장비로 결정되고 로봇의 제어기로 다운로드되며 이는 이식할 때 최적의 장소로 로봇이 바로 이송될 수 있게 한다. 이와 같이, 프랑스 파리나 리프지그[10]에서 심장 혈관 수술과 같은 미세 외과 수술에도 로봇이 사용되기도 한다. 또한 'da Vinci Surgical Robot‘ 은 복부수술에 사용되는데 미국식품의약청 (FDA: Food Drug Administration) 의 승인까지 받기도 했다[11].
장애인 보조용 로봇 장애인 보조용 로봇은 장애인의 일상생활을 보조함에 있어서 많은 부분에서 흥미 있는 결과를 나타내고 있다. 한 연구 결과에서는, 테이블을 위해 얹은 로봇으로 장애인과 대화하며 오븐에 음식을 넣거나 꺼내서 장애인이 음식을 먹을 수 있도록 장애인 앞으로 쟁반을 옮겨주는 기능이 프로그램된 로봇도 등장하였다[12]. 또한 다른 많은 일도 가능하도록 프로그램되어 있다.
위험 환경 위험한 환경에서의 로봇공학이 사용되기에 적당한 분야이다. 왜냐하면 인간은 위험 환경에서 반드시 보호되어야 하기 때문이다. 그러나 로봇은 그러한 환경에 접근이 가능하고 이동뿐만 아니라 유지, 탐사 또한 가능하다. 예를 들어 방사능 오염지역에서는 인간보다 쉽게 작업이 가능하다. 1993년, 8족 보행 로봇인 Dante 는 아타락시아의 이리부스산의 용암을 분출중인 활화산에 접근하여 가스 성분 조사에 사용되기도 하였다[13].
수중, 우주, 원거리 위치 로봇은 수중, 우주 또는 원거리 위치에서도 작업이나 탐사가 가능하다. 인간은 아직 화성에 직접 탐사하지 못하였으나 탐사선은 이미 여러 번 착륙하여 탐사를 하였으며[14], 이는 우주공간이나 수중의 경우에도 마찬가지이다[15-17]. 최근까지 예를 들면, 심해의 침몰선, 잠수함 또는 침몰 비행기에는 인간이 접근하기 어려웠으나 수중탐사로봇으로써 이 작업이 가능해졌다.

[그림 14] 원격 유인 잠수함에 장착된 6 자유도의 양방향 힘 되먹임 매니퓰레이터인 Arm (본 사진은 Western Space and Marine, Inc. 의 게재 승인을 받음)
증기 발전기 배기관 얼룩을 청소하는 데 원격조정용 로봇인 Cecil이 사용되었고, 이 로봇은 파이프 내부를 기어 다니면서 5,000[psi] 정도의 수압으로 물을 뿜어 얼룩을 제거한다. 그림 14는 유인 잠수함이나 원격제어 차량에 사용되는 6 자유도의 양방향 힘 되먹임 매니퓰레이터인 Arm 로봇을 보여주고 있다. Arm 로봇은 원거리의 주 시스템 (master system) 에서 제어되며, 또한 종 시스템 (slave system) 의 ‘힘 (force)' 등의 느낌을 되먹임 (feedback)을 통하여 모두 느낄 수 있게 한다.
또 다른 응용으로는, 미세수술에 응용되는 원격제어로봇이 있다. 이는 원격제어로봇이 어디에 있든 간에 이 로봇은 외과의사의 손떨림을 제거하기 위하여 항상 미세한 움직임을 파악한다.
17. 다른 형태의 로봇과 응용분야
과학자의 엔지니어가 인간 형태의 로봇을 디자인할 때 인간에게 관심을 가지듯, 다른 형태의 로봇은 곤충이나 동물의 행동을 관찰하여 이를 재현하도록 설계된 것도 있다. 예를 들어 다리가 6개 또는 8개인 로봇[20,21], 벌레 형태의 로봇[22], 뱀 형태의 로봇[23,24], 생선처럼 수영하는 로봇[25], 개처럼 행동하는 로봇, 바닷가재처럼 행동하는 로봇[26], 심지어는 미확인된 생명체의 형태[27]인 것도 있다. Odetics, Inc. Odex 로봇[28] 등과 같이 크고 강한 로봇이 있는가 하면 아주 작고 가벼운 로봇도 있다. 이러한 로봇의 대부분은 연구용으로 개발된다. 또한 다른 로봇은 군사용으로 개발되기도 하며[28], 의료용과 오락용 로봇도 개발된다. 일례로 지뢰를 찾아서 파괴하는 작은 크기의 지뢰 탐사용 로봇이 바로 그것이다. 살상용 지뢰에 의해 인간이 해를 입는 것보다 저가형 지뢰 탐사 로봇인 rationale 로봇이 탐사작업 중 파괴되는 것이 더 낫다는 것은 자명한 사실이다[29].
애니메트로닉스 (animatronics) 는 인간이나 다른 동물과 같이 행동하는 로봇과 기계, 심지어는 인간과 동물의 형상을 하고 있는 시스템의 설계와 개발에 관한 학문이다. 즉, 입 모양[30], 눈의 움직임[31], 심지어는 손동작도 재현한다. 이러한 애니메트로닉스의 시스템이 섬세해짐에 따라서 시스템의 움직임 보다 실제의 모습을 충실히 재현하게 되었다.
이러한 로봇공학과 이의 응용의 또 다른 분야로는 초소형 전자기계 시스템이다. 일명 Micro-Electro-Mechanical-System(이하 MEMS)이라고 한다. 이 정밀한 장치들은 의학, 기계, 전기, 물리적 시스템 안에서 또 다른 기능을 수행하도록 설계되었다. 예를 들면 미세한 크기의 로봇은 혈관 속을 탐사하면서 심장을 관통하기도 하며 외과적인 수술도 수행할 수 있다. MEMS의 센서는 혈액의 다양한 요소를 판별하기도 하며, MEMS의 구동기는 충돌시 필요한 자동차용 에어백처럼 배치되어 사용되기도 한다[32,33].
18. 사회적인 관심
인간을 대신할 로봇을 사용할 경우, 비록 로봇이 인간이 할 수 없는 작업을 수행할 능력이 있더라도 로봇이 인간을 대신함으로써 인간이 가질 수 있는 소득이 사라지므로 또는 직장을 잃게 되므로 항상 사회적인 영향을 고려해야 한다. 만일 이런 사항에 대한 고려 없이 로봇을 부분별하게 사용하게 된다면 노동자의 일자리는 더욱 얻기 어려워지며, 따라서 로봇이 생산해내는 물품을 살 수도 없게 될 것이다. 더욱이 실업률이 증가하여 사회적, 경제적인 문제를 야기하게 될 것이 자명하다. 이러한 시점에서 이를 해결할 방안 중 하나는 자동차 생산업체와 업체 노조 (United Auto Workers: 이하 UAW) 와의 사이에 어느 정도의 수로 로봇을 배치할 것인가를 협상을 통해 조정해 나가는 것이다.
비록 이 책에서 해결책을 제시하지 못하더라도 이러한 문제점에 대한 관련 참고문헌[34,35]이 많이 있으며 무수한 기술자들이 저가의 보다 나은 물품을 생산하기 위한 노력을 하고 있으며 로봇의 보다 유용한 사용을 위해 노력하고 있으나 항상 염두에 두어야 할 중요한 사항은 어떠한 결정을 내리던지 그 결과에 대한 파급효과를 고려하여야 한다. 학문적이고 전문적인 로봇에 대한 관심은 항상 사회적, 경제적인 관심과 접목되어야 한다.
19. 요약
로봇공학에 관심이 있는 많은 사람들은 어느 정도 로봇에 대한 지식을 가지고 있으며, 또한 대부분의 경우 이미 로봇과 접촉하여 보았을 것이다. 그러나 어떤 개념은 모두가 함께 이해되어야 할 것이다. 이 장에서는 로봇이 사용되는 현장과 상황에 대한 이해를 돕기 위한 로봇공학의 기분 개념을 언급하였다. 로봇은 위험한 환경에서나 수중에서 또는 우주공간에서와 같은 특수한 목적의 용도뿐만 아니라 다양한 용도로 산업현장에서 사용된다. 물론, 시간이 흐름에 따라 로봇은 더 많은 응용분야에 사용되어질 것이다. 이 책의 다음 부분에서는 로봇의 정역학과 기구학에 대한 언급과 아울러 로봇의 구성요소들, 즉 구동 시스템, 센서 시스템 그리고 시각 시스템, 더 나아가 그 응용에 대한 내용까지 다루어질 것이다.
[출처] http://www.aistudy.com/robot/intro_niku.htm
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 2 |
VHDL10.pdf 다산 세종대학교
| 졸리운_곰 | 2014.07.27 | 1113 |
| 1 |
VHDL 설계 개요 (천리안 디지털동호회)
| 졸리운_곰 | 2014.07.27 | 1095 |

