'제어기'에 해당되는 글 1건

  1. 2015.06.18 지능형 로봇의 제어기

 지능형 로봇을 제어하는데 있어서 마이크로프로세서(microprocessor)나 소형 컴퓨터가 핵심적인 역할을 한다.

마이크로 프로세서

 로봇을 제어하는데 있어서 핵심적인 부품은 마이크로프로세서(microprocessor, 이후 uP로 표기함)이다. 마이크로(micro, 10^-6)라는 말은 매우 작다는 의미를 내포하며 프로세서는 ‘어떠한 일을 처리하는 장치‘라는 뜻으로서 이 두 단어의 합성이인 마이크로프로세서는 단어의 뜻으로만 보면 ’극소형의 처리장치‘정도로 해석될 수 있을 것이다. 좀 더 기술적인 설명은 작은 면적의 실리콘에 복잡한 전자회로를 집적시킨 것으로, 이 전자회로는 미세한 도선으로 연결된 수천 혹은 수백만 개의 콘덴서나 트랜지스터(transistor) 등으로 구성되어 있다.

 인텔이 발표한 최초의 uP는 1971년에 소개된 4004로 2300개의 트랜지스터를 가지고 있었으며 클럭속도는 108KHz이고 4bit 프로세서이다. 이 μP는 간단한 계산을 수행하는 계산기를 만드는데 사용이 되었으나 그 이후에 발전에 발전을 거듭하여 개인용 컴퓨터를 탄생시키는 등 우리의 생활을 광범위하게 바꾸는 계기가 되었다. 참고로 다음 그림에 내부 회로가 도시된 펜티엄4는 4천만 개 이상의 트랜지스터를 집적하였음을 보면 마이크로프로세서의 발전 속도를 짐작할 수 있다.

<참고 : 마이크로프로세서의 트랜지스터 집적 개수 >


<인텔의 4004>

<인텔 4004의 내부회로>

<인텔 펜티엄4의 내부 회로>


 로봇의 제어 장치에서 사용되는 프로세서는 환경 인식이나 상황을 판단하는 알고리듬을 구현하는 소프트웨어를 실행시켜서 센서의 신호를 읽어들이고 구동기로 구동 신호를 보내는 역할을 수행한다.

임베디드 시스템과 원보드 컴퓨터

 임베디드 시스템(embedded system)은 특정 기능을 수행하는 규모가 있는 전자적 시스템으로 구성되는 컴퓨터 시스템이다. 전자 하드웨어와 기계 부분을 포함하는 전체 장치의 일부로 내장되는 의미의 임베디드이며 오늘날 일상 생활에 쓰이는 많은 장치들을 제어하고 있다. 반면에 개인용 컴퓨터(PC)와 같은 범용 컴퓨터는 유연하게 설계되어 넓은 범위의 최종 사용자들의 요구 사항을 만족시킬 수 있다.

 임베디드 시스템에는 마이크로컨트롤러(microcontroller)나 DSP (digital signal processor) 등의 프로세서 코어가 장착될 수 있다. 마이크로컨트롤러는 규모가 작은 시스템에 사용하므로 보통 운영체제을 포함하지 않는 경향이 있다면, 임베디드는 좀 더 규모가 크기 때문에 운영 체제(윈도CE, 또는 리눅스)가 시스템에 포함된다. 이 운영체제 위에 특수한 기능만을 수행하도록 응용프로그램이 장착되어 동작하는 경향이있다. 예를 들어 같은 ARM이라도 마이크로컨트롤러는 한 칩에 메모리(플래쉬, RAM) 을 포함하고 기타 하드웨어(타이머, UART, SPI, ADC 등 필요에 따라 장착)를 포함한다. 여기서 메모리는 용량이 크지 않기 때문에 운영체제를 포함하기에는 한계가 있다. 그러나 임베디드 시스템에서는 하드웨어는 한 칩 내에 장착하지만, 칩 밖에 많은 용량의 메모리를 장착하고 PCB에서 연결하는 것이 일반적이다. 이것은 시스템이 크기 때문에 용량이 큰 메모리를 시스템에 장착할 필요성이 있기 때문이다.

라즈베리파이 (raspberry pi)

 라즈베리 파이(Raspberry Pi)는 영국의 라즈베리 파이 재단이 학교에서 기초 컴퓨터 과학 교육을 증진시키기 위해 만든 싱글 보드 컴퓨터이다. 라즈베리 파이는 그래픽 성능이 뛰어나면서도 가격은 저렴하다는(세금을 포함하지 않은 모델 A의 경우 25달러, 모델 B의 경우 35달러) 특징을 갖고 있다.


 라즈베리 파이는 브로드컴사의 BCM2835 단일칩시스템(SoC, System on Chip)을 사용하며, 이 칩에는 ARM1176JZF-S700 MHz 프로세서, 비디오코어 IV GPU와 256 메가바이트 램이 들어 있다. 라즈베리 파이는 HDD나 SDD를 내장하고 있지 않으며, SD카드를 외부 기억장치로 사용한다. 라즈베리 재단은 컴퓨터 교육 증진을 위해 2가지 모델을 내놨으며, 각각 25달러와 35달러로 책정되었다. 2012년 2월 29일 재단은 35달러짜리 모델의 주문을 받기 시작하였다. 또한 라즈베리 파이 재단측에서는 라즈베리 파이에 포팅한 데비안과 아키리눅스, QtonPi등의 리눅스 배포판을 제공하고 있다. 또한 재단측에서는 라즈베리 파이의 주 프로그래밍 언어인 파이썬(python)에 BBC 베이직, C언어, 펄등을 지원할 수 있는 툴들을 제공하고 있다.

<라즈베리파이의 구조>

아두이노 (arduino)

 아두이노(Arduino)는 오픈소스를 기반으로 한 단일 보드 마이크로 컨트롤러이다. AVR을 기반으로 한 보드로 이루어져 있고 좀 더 최근에는 Cortex-M3를 이용한 제품(Arduino Due)과 인텔 Quark프로세서 기반의 갈릴레오보드도 시판되고 있다. 소프트웨어 개발을 위한 통합 환경(IDE)이 제공되며 사용자가 프로그램하기 쉽게 라이브러리가 잘 마련되어 있다. 아두이노는 다수의 스위치나 센서로부터 값을 받아들여, LED나 모터와 같은 외부 전자 장치들을 통제함으로써 환경과 상호작용이 가능한 물건을 만들어낼 수 있다. 또한 플래시, 프로세싱, Max/MSP와 같은 소프트웨어를 연동할 수 있다.

 아두이노의 가장 큰 장점은 마이크로컨트롤러를 쉽게 동작시킬 수 있다는 것이다. 일반적으로 AVR 프로그래밍이 WinAVR로 컴파일하여, ISP장치를 통해 업로드를 해야하는 등 번거로운 과정을 거쳐야하는데 비해, 아두이노는 컴파일된 펌웨어를 USB를 통해 업로드를 쉽게 할 수 있다. 또한 아두이노는 다른 모듈에 비해 비교적 저렴하고, 윈도를 비롯해 맥OS X, 리눅스와 같은 여러 OS를 모두 지원한다. 아두이노 보드의 회로도가 CCL에 따라 공개되어 있으므로, 누구나 직접 보드를 직접 만들고 수정할 수 있다.


 아두이노가 인기를 끌면서 이를 비즈니스에 활용하는 기업들도 늘어나고 있다. 장난감 회사 레고는 자사의 로봇 장난감과 아두이노를 활용한 로봇 교육 프로그램을 학생과 성인을 대상으로 북미 지역에서 운영하고 있다. 자동차회사 포드는 아두이노를 이용해 차량용 하드웨어와 소프트웨어를 만들어 차량과 상호작용을 할 수 있는 오픈XC라는 프로그램을 선보이기도 했다. 또한 비교적 구조가 간단한 로봇시스템의 제어 보드로도 사용할 수 있다.

<아두이노 보드들>


지능형 로봇의 예 - 다윈OP, 오픈 휴머노이드 시스템

 근래에는 소프트웨어 뿐만 아니라 하드웨어도 그 구조가 개방되어 일반인들이 쉽게 수정, 제작할 수 있는 추세가 형성되고 있는데 아두이노가 대표적인 예라 할 수 있다.  휴머노이드 분야에서도 그러한 추세를 타고 기계 구조와 사용 소프트웨어가 개방된 플랫폼이 있는데 바로 다윈OP이다. 로보티즈사와 버지니아텍의 홍원서 교수팀이 공동으로 개발하였다. 로보티즈사의 고성능 서보모터가 사용되었으며 PC와 제어보드가 각 관절을 구성하는 모터와 비전시스템을 제어하도록 설계되어 있다. 2족 보행 기능을 물론이고 공을 쫓아간다든지 특정한 모양을 인식하여 정해진 동작을 수행하는 기능을 가지고 있다. 이 로봇의 설계도면이나 구동 소프트웨어는 개방되어 있으며 다른 사람들이 수정/보완할 수 있도록 하고 있다.

<오픈소스 로봇 플랫폼인 다윈OP의 구조: 가슴 부분에 컴퓨터가 내장되어 있다.>

< 비젼 시스템이 내장되어 공을 쫓아 가거나 특정한 모양을 인식하는 기능이 내장되었다>


학습(learning) 과 자율 제어

 로봇에게 여러 번의 교육을 통해 행동을 학습시킨 후 기록된 행동 순서를 따라하도록 하는 기술을 의미한다. 반면에 자율 제어란 비젼시스템이나 센서를 통해서 주변의 환경을 인식한 후 스스로 반응 행동을 결정해 나가도록 하는 기술을 말한다.



Posted by 살레시오
,