상세보기

로봇, NAO와 함께 쉽고 재미있게 배우자! 로봇, NAO와 함께 쉽고 재미있게 배우자! 강유진 기자입력 2011-10-14 00:00:00

‘NAO를 이용한 인터랙티브 휴머노이드 입문’ 출판


로봇, NAO와 함께 쉽고 재미있게 배우자!

 

(주)NT 리서치가 ‘NAO를 이용한 인터랙티브 휴머노이드 입문’이라는 로봇교육 전문 서적을 출판했다. 서경대학교 서기성 교수가 정리한 이 책은 전문계 고교, 대학, 그리고 일반인을 대상으로 Aldebaran社의 휴머노이드 NAO 로봇을 사용한 교육과 연구를 위해서 사용 환경 및 도구, 프로그래밍 기법, 기본이론 및 응용을 중심으로 설명하고 있다. 국내 로봇시장에 이렇다 할 로봇교육 교재가 없는 상황에서 출판된 이 책의 간략한 내용을 소개한다.


휴머노이드 로봇이 관심을 끄는 이유, 그리고 NAO
로봇은 제조, 극한작업, 서비스 등의 분야에서 사람의 작업을 대신하거나 또는 보조하는 역할을 수행해오고 있으며, 향후에는 다양한 분야에 걸쳐 적용 범위가 더욱 확대될 전망이다. 여러 형태의 로봇 중 휴머노이드 로봇이 가장 관심을 끌고 있는 이유는 △사람과 같은 모습을 가지고 있어서 다른 형태보다 좀 더 친근하고 사람의 보조나 대체 역할에 적합하다는 인식 △사람과 같이 두발 보행 및 두 손을 이용한 작업이 가능하고 △진화적으로 가장 우수한 사람의 형태와 기능을 모방한다는 점이다.


또한 휴머노이드 로봇은 보행 및 전신 동작 제어의 어려움, 인식센서 처리의 효율성 문제, 그리고 지능구현 방법 등 도전적인 문제들로 둘러싸여 있어서, 많은 교육 및 연구자의 관심을 가장 많이 받고 있다. 그러나 실제 교육과 연구현장에서 휴머노이드 로봇의 고급 기능들을 충분히 활용하고 새로운 제어 및 지능 알고리즘을 개발할 수 있는 상용화된 로봇이 거의 없어서 곤란을 겪어왔다.


다행히 최근 들어서 교육 및 연구용으로 적합한 휴머노이드 로봇들이 선보이고 있으며, 이 중에서 Aldebaran Robtoics사의 휴머노이드 로봇 NAO는 교육 및 연구목적으로 전세계적으로 가장 널리 사용되고 있다. 특히, 2007년 9월에 SONY사의 Aibo(강아지 로봇) 대신에 RoboCup(Robot Soccer World Cup)의 공식 플랫폼으로 지정되어, 2008년 중국 소주대회부터 채택되고 있다.

 

휴머노이드 NAO, 어디까지 배울까?
휴머노이드 NAO는 25개의 관절로 구성되어 있어 유연한 보행 및 전신 동작의 제어가 가능하며, 유/무선 네트워크를 이용한 통신과 캠, 적외선, 센서, 마이크, 스피커 및 LED를 사용한 입출력으로 다양한 상호작용도 가능하다. 또한 개방형 임베디드 리눅스 기반으로 한 소프트웨어 구조로 C, C , URBI, Python, .Net 프레임워크와 같은 다수의 프로그래밍 언어를 지원한다. 더불어, 콜레그래프(Choregraphe)라는 그래픽 기반 프로그래밍을 제공한다.


이러한 기능들을 바탕으로 이 책은 다루는 내용에 따라 크게 초보자를 위한 1~3장과 고급 사용자를 위한 4~6장의 2가지 부분으로 나눌 수 있다. 1~3장은 기본적인 NAO 로봇의 사용에 필요한 콜레그래프와 파이썬 언어에 대해 소개하고, 4~6장은 보다 전문적인 사용에 필요한 내용을 다루고 있다. 1~3장의 내용은 NAO 로봇에 대해 처음 접하건, C언어와 파이썬 언어 등에 인숙하지 않은 초보자일 경우, 자세히 숙지하는 것이 바람직하다. 기존에 로봇 프로그래밍을 다뤄본 경험이 있거나, 전문적인 알고리즘이나 제어명령 등을 수행하고자 한다면 2장과 4~6장을 살펴보는 것이 좋다.

 

1장. 서론
NAO 로봇에 대한 소개와 NAO를 사용하기 위한 시스템의 설정 방법, 그리고 NAO 로봇 내부의 메모리와 영상처리에 관련된 부분을 확인할 수 있는 Telepathe 프로그램에 대해 소개한다. NAO 로봇이 가지고 있는 특징에 대해 서술하고 있기 때문에, NAO 로봇에 대해 잘 모르는 독자라면 반드시 읽고 넘어가는 것이 좋다.

 

2장. 콜레그래프
그래픽 기반의 프로그래밍 도구인 콜레그래프를 사용하여 NAO를 동작시키는 기법에 대해 배운다. 다이어그램이라 불리는 프로그램의 모듈을 통해 프로그래밍하는 방법과 Timeline 상에서 NAO의 움직임을 설정하는 방법에 대해 설명하고 있으며, 추가적으로 콜레그래프에서 FTP 서비스를 이용하는 방법과 제공되는 다양한 박스라이브러리에 대해 기술한다.

 

3장. Python
콜레그래프의 스크립트와 NAOQi를 사용하는데 필요한 파이썬 어어에 대해 간략하게 소개한다. 파이썬의 기본적인 문법 설명을 포함하고 있으며, 콜레그래프에서의 스크립트 박스 생성과 수정방법에 대해서도 다루고 있다. 파이썬 언어에 대해 잘 알고 있는 경우, 마지막 부분의 콜레그래프에서의 스크립트 박스 생성 및 수정방법에 대해서만 확인하는 것이 좋다.

 

4장. NAOQi & DCM
NAO 로봇의 시스템의 근간을 이루는 NAOQi 프레임워크와 NAO의 각 장치들을 제어하는데 사용되는 DCM에 대해 설명한다. NAOQi 프레임워크의 구조, 파일구조, Broker 등의 시스템 특징과 NAOQi  프레임워크를 사용하여 NAO 로봇을 제어하는 방법에 대해 다룬다. 또한 리눅스와 C 언어, 크로스 컴파일을 통해 NAO 로봇에 모듈을 적재하는 방법에 대해 알아보고, DCM의 Timed Command를 통해 여러 명령이 입력될 경우의 처리방식에 대해 알아본다. 부가적으로 DCM에서 제어하는 장치들의 구조에 대한 소개와 DCM의 동기화 메소드를 이용한 장치들의 동기화 방법에 대해 소개한다.

 

5장. NAO 기구학
NAO의 관절 구조와 각 관절의 정보를 설명하고, Denavit-Hartenberg 표현법을 중심으로 NAO 로봇에 대한 정기구학의 계산방법을 설명한다. 부가적으로 파이썬을 이용해 실제로 정기구학 계산 프로그램을 작성해본다. 두 번째로 역기구학의 계산 방법을 설명하고, 파이썬을 통해 NAO 로봇의 오른팔에 대한 역기구학 계산 프로그램을 구현해본다. 5장의 내용을 이해하는 데에는 어느 정도의 수학적 지식과 로봇공학에 대한 지식이 필요하다.

 

6장. 종합예제
이전까지의 내용을 토대로 NAO 로봇의 응용작업을 구현하는 여러 가지 방법과 예들에 대해 알아본다. 우선 2장에서 다루었던 콜레그래프의 고급 기능과 확장 방법들에 대한 응용 예를 소개하고, 체조 동작제어 예제를 통해Timeline Editor 사용 방법에 대해 연습해본다. 그리고 랜드마크 인식을 통해 길 찾는 프로그램을 작성해보고, 구구단 예제를 통해 파이썬과 NAOQi API의 응용기법에 대해 학습한다. 마지막으로 영상 인식을 통한 물체분류 예제를 통해 역기구학과 NAOQi 사용방법에 대해 설명한다.

 

휴머노이드 로봇 NAO, 속속들이 알아보기
Aldebarab Robotics사의 휴머노이드 로봇 NAO는 중형 크기의 로봇으로, 개방형 구조이다. 교육 및 연구목적으로 전세계적으로 300여 대학에서 사용되고 있다. Aldebaran Robotics사는 NAO의 기술을 모든 고등교육 프로그램에 사용할 수 있도록 설정했다. 사용자에게 친숙한 프로그래밍 환경이기 때문에 프로그래밍 수준에 상관없이 NAO를 사용할 수 있으며, 개방형 구조로 고수준의 기능도 구현할 수 있다.


NAO는 유/무선 네트워크를 이용해 PC와 통신할 수 있으며, 적외선 센서와 무선 네트워크, 카메라, 마이크, 스피커를 이용해 다수의 ANO가 서로 상호작용할 수 있도록 구현됐다. 접촉센서와 카메라, 마이크를 이용해 사용자의 입력을 받아들일 수 있으며, 다수의 LED와 스피커를 통해 사용자에게 상태를 출력할 수 있다.


NAO의 소프트웨어는 개방형 임베디드 리눅스 기반으로 다수의 프로그래밍 언어를 지원한다. 텍스트 형태의 C, C , URBI, Python, .Net 프레임워크와 같은 프로그래밍 언어를 사용할 수 있고, Choregraphe(이하 콜레그래프)를 이용하여 그래픽 기반 프로그래밍을 할 수 있다. 이러한 NAO는 크게 3종으로 나뉘어진다. NAO T2는 2자유도로, 목 부위에만 2개의 관절이 있고, 영상과 음성을 이용한 상호작용의 목적으로 사용된다. NAO T14는 14의 자유도로, 목 부위와 팔과 손에 관절이 있다. NAO T2의 상호작용 기능뿐만 아니라 복잡한 움직임과 손을 이용하여 집는 기능이 있다.

 

NAO H21과 H25는 각각 자유도 각 21, 25로 완전한 휴머노이드 로봇이다. NAO T2와 NAO T14의 기능뿐만 아니라 보행이 가능하다. 일반적으로 교육 및 연구용 로봇은 NAO H25를 사용하고, RoboCup에서는 NAO H21을 사용한다. NAO H21은 손가락 관절이 없으며, 팔의 관절이 NAO H25와 다르다. 본 내용에서는 NAO H25를 대상으로 사용 및 프로그래밍 환경, 움직임 생성, 그리고 응용작업에 대해 소개한다.

 

일반적인 특징
NAO는 높이 57.3cm, 너비 27.3cm의 크기로, 4.3kg 미만의 무게이다. 몸체는 특수 플라스틱 재질로 제작됐다. 배터리는 리튬-이온으로, 21.6V, 2Ah의 용량을 갖고 있으며 최대 90분 동안 사용할 수 있다. 2축 자이로 센서, 초음파 센서 등 다양한 센서를 갖고 있으며, 카메라와 마이크, 스피커를 이용해 멀티미디어를 구현할 수 있다. NAO의 시스템은 개방형 임베디드 리눅스를 운영체제로 사용하고 있고, NAOQi 프레임워크에 의해 시스템과 사용자가 통신하면서 NAO의 전반적인 작업을 관리한다. DCM(Device Communication Manager)은 NAO의 구동기와 센서들과 같은 장치들과 시스템과의 통신을 담당하는 중요한 역할을 한다.


NAO의 개발환경은 개방형 구조를 적극적으로 반영했다. 윈도우, 리눅스, Mac OSX의 운영체제에서 사용 가능하도록 소프트웨어와 소프트웨어 개발 도구를 제공하고 있다. 1.6 버전에서는 C, C , Python, URBI를 사용해 프로그래밍했다면, 1.8버전에서는 .Net 프로임워크와 C#, VBScrip를 지원하도록 추가됐다.

 

구성
NAO의 구성요소. 관절은 총 25개이며, 크게 머리(2), 팔(12), 허리(1), 다리(10)로 구분된다. 팔과 다리 관절은 왼쪽, 오른쪽으로 대칭 구조이다. 센서는 Hall-effect 센서(32)와 접촉센서(3), 적외선 센서(2), 초음파 센서(2), 2축 자이로 센서(1), 3축 가속도 센서(1), 감압 센서(1), 범퍼(2)로 구성되어 있다. 또한 영상처리와 음성처리를 위해 카메라(2)와 마이크(4), 스피커(2)가 구성되어 있다.


NAO의 디바이스 구조를 살펴보면 NAO의 머리에는 전체를 제어하기 위한 임베디드 시스템이 구현되어 있고, 가슴에는 모터와 전원 등을 제어하기 위한 ARM 마이크로 컨트롤러가 구성되어 있다. 임베디드 시스템의 H/W는 x86 AMD GEODE 500MHz CPU와 256MB SDRAM, 플래쉬 메모리로 구성되었고, 임베디드 리눅스(32bit x86 ELF)를 사용한다. 네트워크는 이더넷(유선)과 Wi-Fi(무선, IEEE 802.11g)를 지원하며, 2011년형 모델에는 블루투스가 추가되었다.

 

관절구성
NAO의 허리관절 중에 하나인 HipYawPitch는 좌/우 관절이 하나의 구동기에 의해 작동되기 때문에, 자유도가 1이 된다. NAO의 관절을 구동하는 구동기는 모터 성능과 감속비에 따라서 4종류로 구분된다. 각각의 모터에 대한 세부사항은 레퍼런스(Advanced-Hardware)에 자세히 나와 있다. 모터의 회전을 측정하는 Hall-effect 센서는 12비트의 정확도를 갖는다. 즉, 약  0.1도의 정확도를 갖는다. NAO 로봇의 기구학에 대해서는 5장에서 다룰 것이다.

 

Vision System
NAP의 캠 위치 및 각도를 나타낸 것이다. NAO에는 두 개의 캠이 부착되어 있으며, 위쪽 캠은 정면을, 아래쪽 캠은 발 주변을 향하고 있다. Vision System을 이용하여 마크 인식, 얼굴 인식, 물체 인식, 영상녹화 등의 기능을 구현할 수 있다. C 프로그래밍 언어로 비전 시스템을 개발할 경우에는 OpenCV 라이브러리를 이용해 개발할 수 있다. 현재 1.8버전에서 OpenCV 라이브러리 2.0버전을 지원하고 있다. 콜레그래프를 이용하면 캠을 통해 얼굴 인식, 랜드마크 인식을 사용할 수 있다. Telepathe 프로그램을 사용하면 현재 NAO의 캠을 통한 영상과 영상 처리된 영상들을 확인할 수 있으며, 기본적인 설정들을 할 수 있다.

 

Audio
NAO의 마이크 구성은 양쪽 귀와 머리의 전면, 후면에 총 4개가 장착되어 있다. 스피커는 양쪽 귀에 하나씩 장착되어 있다. 스피커를 통해 음악을 재생하거나, 사용자가 입력한 문자를 읽을 수 있다. 4개의 마이크는 단순한 음성 녹음뿐만 아니라 발성위치를 인식할 수 있는 기능을 제공한다. 콜레그래프에는 녹음과 재생, 소리감지, 텍스트읽기 등의 기능을 지원한다.

 

소프트웨어
NAO에서 제공하는 개발 소프트웨어는 콜레그래프와 NAOQi, 그리고 Telepathe가 있다. 콜레그래프는 그래픽 기반 환경 개발도구로서, 프로그래밍 언으를 모르는 초급 사용자들도 쉽게 사용할 수 있다. NAOQi는 NAO 시스템을 구성하는 프레임워크로, 로봇공학에서 필요로 하는 요구사항들을 만족하도록 설계되었다. 주요 특징으로는 병렬화, 자원관리(리소스 관리), 동기화, 이벤트가 있으며, NAOQi는 모션과 오디오, 비디오와 같이 다른 모듈간의 동등한 통신을 허용한다.


Telepathe는 NAO로부터 데이터를 피드백 받는 프로그램으로, 각 관절 값이나 센서 값을 쉽게 확인할 수 있다. 피드백 받는 데이터에 영상처리 데이터가 포함되어 있어서, 영상처리 알고리즘을 구현할 경우 PC에서 결과 영상을 확인할 수 있다. 또한 해상도와 색상 등을 설정할 수 있다. 관절 값이나 센서 값 등을 확인하기 위한 Memory Viewr와 캠 설정 및 영상저장에 사용되는 Camera Kiewer가 있다.

 

휴머노이드 로봇 NAO의 연결하는 방법은?
NAO는 이더넷을 유선연결과 Wi-Fi를 통한 무선연결로 PC와 통신할 수 있다. 무선연결을 사용하기 위해서는 먼저 유선연결을 이용해 무선연결을 설정해야 한다. DCHP 기능을 지원하는 유무선 공유기에 NAO를 연결한 후, 전원버튼을 누르면 NAO는 자신의 상태에 대하여 말하게 된다("Hello I`m NAO, My internet address is xxx xxxxxxxxx, battery is fully charged."). 여기에서 인터넷 주소는 유선연결이 무선연결보다 우선시 된다. 또한 NAO는 FTP 서비스를 지원한다. 사용자는 FTP 프로그램을 이용해 NAO에게 파일을 전송하거나 NAO로부터 파일을 얻을 수 있다. 웹 서비스나 FTP를 이용할 때에는 로그인 과정을 필요로 한다.

 

이더넷을 통한 유선연결
이더넷을 통해 NAO를 유선 연결하는 것, DHCP에 의해 NAO는 자동으로 IP를 설정하게 된다. NAO를 연결한 후, 전원버튼만 누르면 NAO는 자신의 상태에 대해 다음과 같이 말한다. “Hello I`m NAO, My internet address is xxx xxxxxxxxx, battery is fully charged.” 여기에서 xxx는 NAO의 활성화되어 있는 IP 주소이다.

 

Wi-Fi를 통한 무선연결
Wi-Fi를 통해 NAO와 무선으로 연결하기 위해서는 네트워크 설정을 해야 한다. NAO는 웹서비스를 이용해 간단한 설정과 상태 확인이 가능하도록 구현되어 있다.

 

Web Service를 통한 기본 설정
무선 네트워크 설정과정에서 볼 수 있듯이, 웹 서비스를 통해 NAO의 기초적인 부분을 설정 및 확인할 수 있다. 웹 브라우저에서 선택할 수 있는 메뉴는 크게 About, Network, Settings, Advance로 구분되어 있다. Advance는 NAOQi, Memory, Process, Hardware, Remote Controls, Bluetooth, Log로 나뉘어져 있다. 각 메뉴에 대한 설명은 다음과 같다.

 

FTP 서비스를 이용한 파일 전송
사용자는 FTP 서비스를 이용하여 PC와 NAO의 파일전송을 할 수 있다. 콜레그래프 1.8.16 버전에서는 파일전송 기능이 추가되었으며, 이전 버전에서는 WinSCP와 FTP 프로그램을 이용해 FTP 서비스를 이용할 수 있다. WinSCP를 이용할 경우, NAO의 IP주소와 아이디, 패스워드를 이용해 로봇에 접속하게 된다.

 

NOA의 프로그램, Telepathe를 알아보자
Telepathe는 NAO의 캠과 메모리의 정보를 실시간으로 볼 수 있는 프로그램이다. Telepathe를 이용해 NAO로부터 데이터를 피드백 받기 위해서는 PC와 NAO가 통신해야 한다. Memory viewer와 Camera viewer 모두 Browse Robots을 통해 연결 정보를 설정한다. 콜레그래프와 NAO의 연결도 이 방법을 통해 이루어진다. 연결은 포트 번호나 IP 주소를 이용해 설정할 수 있다. (주)NT 리서치 www.ntresearch.net

강유진 기자
로봇시대의 글로벌 리더를 만드는 로봇기술 뉴스레터 받기
전문보기
관련 뉴스
의견나누기 회원로그인
  • 자동등록방지