아이티랩 - 쉽게 따라 하는 미디어 아트 - Make Media Art [1편] Audience

LG CNS 독자 여러분, 안녕하세요! 미디어 아티스트 송준봉입니다. 지난달까지 ‘예술과 IT’라는 주제로 미디어 아트 작업과 사용된 기술을 소개해드렸는데요. 이번 달부터는 매달 하나의 미디어 작업을 선정하여, 그 작업이 어떻게 제작되었는지 알아보고, 그 일부분 혹은 축소판을 직접 제작해보는 시간을 가져보려고 합니다. 



‘Make Media Art’라는 주제로 이전에 소개해 드렸던 알고리즘 아트부터, 피지컬 컴퓨팅, 프로젝션 맵핑 등 다양하게 시도해 볼 예정인데요. 예술뿐 아니라 Make문화[각주:1]에 관심이 있는 독자분들도 재미있게 읽으실 수 있지 않을까 생각합니다. 그럼 지금부터 ‘Make Media Art’, 첫 번째 주제를 시작해 볼까요?



 오늘 만들어 볼 작업은?

오늘 만들어 볼 작업은 런던과 베를린을 기반으로 활동 중인 Media studio ‘Random-international’의 2008년 작업 ‘Audience’입니다. 관객이 지나가는 곳에만 비가 내리지 않는 ‘Rain Room’ 작업으로 유명한 ‘Random-international’의 비교적 초기 작업이라 할 수 있습니다. 

 Random-international의 대표작 ‘Rain Room’

http://random-international.com/work/rainroom


l Audience (Mirror, motors, camera, computer, custom software), Dimensions variable, 2008

(출처: http://random-international.com/work/audience/)


이 작업은 손바닥보다 조금 큰 거울을 달고 있는 수십 개의 로봇이 있는 방 안에서 이뤄집니다. 관객이 방 안에 들어가는 순간, 모든 로봇이 관객을 비추면서 신기한 듯 계속 쳐다보는 아주 귀엽고 재미있는 작업입니다. 마치, 사람을 처음 본 작은 거울 로봇 군단을 보는 듯한 느낌도 듭니다. 하지만, 결국 거울을 통해 보이는 것은 관객 자신의 얼굴이기 때문에, 관객에 따라 다양한 느낌을 전달받게 되지 않을까 생각이 드네요. 



 어떻게 만들었을까?

지금부터 작업에 사용된 기술에 대해 분석을 해보도록 하겠습니다. 우선 작업에서 거울이 달린 로봇이 등장합니다. 로봇은 관객을 바라보게 되는데 자세히 살펴보면 상하좌우로 움직일 수 있다는 것을 알 수 있습니다. 이러한 움직임을 가지려면 좌우로 움직이는 모터 1개, 상하로 움직이는 모터 1개로 최소한 2개의 모터가 필요하게 됩니다. 

사용된 모터는 ‘Servo motor’인데요. 일반적인 모터와 달리 360도 회전하지 못하고, 180도 정도의 범위 내에서 움직입니다. 그러나, 배선이나 특정 각도로의 움직임이 매우 간단하고, 가격 또한 저가이기 때문에 미디어 작업에서 많이 사용하고 있습니다. 

l Audience (Mirror, motors, camera, computer, custom software), Dimensions variable, 2008

(출처: http://random-international.com/work/audience/)


두 번째로 거울이 관객을 인식하고 관객의 방향을 바라보게 해야 하겠죠. 제가 작업을 직접 체험하지 못해 정확하지는 않지만, 방 전체를 촬영하는 카메라를 통해 이미지를 얻어내고, 이미지 프로세싱을 통해 관객의 위치를 계산하는 것으로 보입니다. 관객과 로봇의 거리, 방향에 따라 거울의 각도를 움직이며, 마치 쳐다보는 것과 같은 효과를 얻어낸 것으로 생각됩니다.

이번 편에서는 ‘얼굴 인식 프로그램’을 사용하여 나만 바라보는 하나의 거울 로봇을 제작해 보도록 하겠습니다.


 만들어봅시다!

그럼 본격적으로 만들어 보도록 하겠습니다. 우선 준비물은 아래 그림과 같습니다. 기본적으로 ‘Servo motor’를 움직여 하기 때문에, 이전 블로그에서 자주 언급되었던 ‘아두이노(Arduino)’를 사용합니다. 아마도 앞으로 만들게 될 대부분 작업에서도 사용하지 않을까 생각이 드네요. 

3D 프린터도 필요한 준비물로 적어 두었는데, 사실 꼭 3D 프린터가 아니더라도 2개의 모터가 연결될 수 있는 구조를 만들 수 있는 것이라면 어떤 것이든 상관없습니다. 마지막으로 나의 얼굴 위치 찾아내는 데 사용될 웹캠이 필요하겠습니다. 최근에는 노트북에 웹캠이 기본으로 장착되어 있으므로 노트북을 사용하셔도 충분합니다. 

l 준비물 : 아두이노/ Servo motor 2개 / Bread board / 3d printer / Jumper cable / 거울 / 웹캠(노트북)


① 하드웨어 만들기


먼저 하드웨어를 만들어 보도록 하겠습니다. 본래 작업에서는 거울에 두 개의 모터를 사용하여 상하좌우로 움직이도록 설계했는데요. 좌우 움직임을 담당하는 첫 번째 모터 회전부 위에 상하 움직임을 담당하는 두 번째 모터가 올라가는 구조로 만들어져 있습니다. 이러한 구조를 만들기 위해 몇 가지 브래킷(Bracket)을 제작해야 하겠네요.

l Fusion 360 프로그램을 사용해 제작된 Mirror Robot의 3D Modeling


이를 위해 우리는 3D 모델링 설계를 진행해야 합니다. 사실 하드웨어 제작에서 설계 부분이 가장 귀찮고 고통스럽고 짜증나는 부분입니다. 그러나, 이때 제대로 해두지 않으면 나중에 아예 조립되지 않거나, 금방 부서져 버리기 때문에 외롭고 힘들지만, 힘을 내야만 합니다. 

특히, 수천만 원이 넘는 전용 설계 프로그램을 사용해야만 했던 과거와는 달리 Tinker CAD나 Fusion360등의 무료 설계 프로그램들이 많이 나와 있고, 관련된 강좌도 많이 있어서 그나마 위안으로 삼을 수 있겠네요. 저는 위의 그림과 같이 설계를 완료했습니다. 이제 설계된 부품을 만들어야 하는데요. 저는 3D 프린터를 사용할 예정입니다.

l 3D 프린터를 사용해 제작된 모터 연결 Bracket 부품들


몇 년 전까지만 해도 3D 프린터를 일반인들이 사용하기에는 가격도 수백만 원 수준으로 부담스러웠고, 관리도 어려워 쉽게 사용하기 어려웠습니다. 하지만, 최근에는 백만 원 이하의 좋은 품질의 3D 프린터도 출시되어 일반인들도 사용할 수 있게 되어가고 있습니다. 

3D 프린터가 없는 경우, 다양한 기관에서 운영되는 팹랩(Fablab)이나 주문 제작 사이트도 많이 생겨났으니 한번 검색해 보시는 것도 좋을 것 같습니다. 일반적으로 3D 프린트에 사용되는 확장자는 ‘*.STL’입니다. 저는 사용하고 있는 3D 프린터가 있어서 위의 그림과 같이 배치하고 뽑았습니다. 약 1시간 30분 정도 소요됩니다. 좋은 세상이네요!

l Servo Motor와 제작된 Bracket의 조립 과정 및 움직임 테스트


이제 설계하여 제작된 부품을 조립해 봅시다. 일반적으로 이 과정이 한 번에 끝난다면, 당신은 정말 타고난 설계자입니다! 보통은 어딘가 안 맞는다거나 쉽게 부서진다거나 해서, 다시 설계와 제작 그리고 테스트를 반복하게 됩니다. 실패가 많을수록 완성되었을 때, 기쁨이 커지기 때문에 끝까지 포기하지 마시길 바랍니다. 저는 위의 그림과 같이 완성했습니다. 



② 소프트웨어 만들기


로봇의 하드웨어가 완성되었으니 이제 소프트웨어를 만들어서 생명을 불어넣어 주도록 하겠습니다. 우리가 만들어야 할 소프트웨어는 두 가지인데, 첫 번째로 만들 소프트웨어는 모터를 움직이는 부분입니다. 앞서 말씀드린 바와 같이 모터를 움직이기 위한 소프트웨어는 ‘아두이노’를 사용해 구현됩니다. 

뭔가 복잡할 것 같지만, 기본적으로 ‘Servo motor’ 2개를 움직이는 것으로 끝이라 매우 간단합니다. 심지어 ‘아두이노’를 설치하면 자동으로 설치되는 ‘Servo motor 구동 예제 프로그램’을 그대로 사용하면 되는 수준입니다. ‘Servo motor 구동 예제 프로그램’은 다음 사이트에서 확인 가능합니다.

 Servo motor 구동 예제 프로그램

https://www.arduino.cc/en/reference/servo


마지막으로 아두이노가 모터를 움직일 수 있도록 전선을 연결하도록 합니다. 연결 방법은 아래 그림과 같습니다. 

 

l Arduino Servo motor 구동 예제(좌), 2개의 Servo motor 구동 연결 방법(우)

 

두 번째로 만들어야 하는 프로그램은 ‘Face Tracking(얼굴 인식)’ 프로그램입니다. 최근 스마트폰 카메라 등에서 ‘Face tracking’이 많이 사용되고 있기 때문에 많은 분이 익숙하시겠지만, 대부분 ‘내가 이걸 어떻게 만들어?’ 라고 생각하실 텐데요. 사실, ‘Face Tracking’은 관련 Library가 최근 많이 공개되어 어렵지 않게 구현 가능합니다. 심지어 이미지 프로세싱을 전혀 모르는 경우에도 말이죠!


제가 이번 작업에서 사용한 Library는 몇 번 언급되었던 미디어 작가 ‘kyle mcdonald’의 ‘FaceOSC’ 입니다. ‘FaceOSC library’는 이미지 처리 속도도 빠를 뿐 아니라 눈, 코, 입 등의 상세한 정보까지 바로 뽑아낼 수 있어 매우 유용합니다. 


이제 ‘FaceOSC’로 얻어낸 얼굴의 위치를 ‘아두이노’로 전달하는 부분만 남았는데요, 저는 ‘Processing’ 프로그램으로 USB 케이블을 사용하여 Serial Transfer로 전달하도록 만들었습니다. 아두이노와 ‘Processing’의 Serial Transfer 예제는 ‘Processing’ 프로그램의 ‘Example > Libraries > Serial > SimpleWrite’에서 확인할 수 있습니다.


 Processing 프로그램

https://processing.org/


l FaceOSC 를 사용하여 Face Tracking을 수행하여 얼굴의 각 부분의 위치를 나타낸 모습


③ 완성과 마무리


l 마지막 배선과 조립 완료 이미지


이제 모든 것이 완성되었습니다. 마지막 완성과 마무리만 남았네요. 위 그림과 같이 아두이노와 모터의 배선을 연결하고 노트북의 웹캠을 사용하여 관객의 얼굴을 인식할 수 있도록 준비해 둡니다. 마음 속으로 잘 되길 기도하면서 테스트한 결과! 아~! 나만 바라보는 사랑스러운 ‘Mirror robot’이 완성되었습니다. 기왕 만든 것 ‘나만 봐주라’라는 이름도 붙여주었네요.

                                                                 

l 완성된 Audience Single Version – ‘나만 봐주라’


오늘 Make Media Art 첫 번째 시간으로, ‘Random-international’의 ‘Audience’를 만들어 보았습니다. 아마도 많은 독자분이 어렵게 느끼셨을 듯한데요. 꼭 따라서 해본다기보다는 어떤 과정을 거쳐서 미디어 아트가 만들어지는지 조금 더 다가간다는 느낌으로 생각하고 봐 주시면 좋을 것 같습니다. 


물론 이를 계기로 직접 만들어보시는 분들이 계시면 더욱 좋겠지만요! 다음 시간에는 좀 더 쉽게 따라 해 볼 수 있는 작업으로 다시 찾아오겠습니다! 



글 | 송준봉 | 미디어 아트 그룹 teamVOID

teamVOID는 현재 송준봉, 배재혁으로 이루어진 미디어 아트 그룹으로, 기술과 예술의 융합을 주제로 로봇, 인터렉티브, 키네틱, 라이트 조형 등 다양한 뉴미디어 매체를 통해 실험적인 시스템을 구상하고 그것을 작품으로서 구현하고 있습니다.


[‘Make Media Art’ 연재 현황]


* 해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 LG CNS 블로그에 저작권이 있습니다.

* 해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.

  1. 디지털 기기와 다양한 도구를 사용한 창의적인 만들기 활동을 통해 자신의 아이디어를 실현하는 문화 (출처: https://www.makeall.com/subpage.php?p=maker_info) [본문으로]
        
                             저작자 표시                                     비영리                                             변경 금지                                                               
        
    
             
    

의견 0 신규등록      목록