[RT-01] 니손내손
ip 카메라를 활용하여 원격으로 움직임을 동기화하는 로봇손 제작기
4/1/2025, 12:14:00 AM
새로운 취미를 시작했다.
뭐라 복잡하게 설명하고 싶지 않아서 인용으로 대체하겠다.
뭔가 만드는 사람을 메이커라고 한다. 2005년 창간된 <메이크> 매거진을 통해 대중화되기 시작한 말로, 새로운 만들기를 이끄는 새로운 제작 인구를 가리킨다. 발명가, 공예가, 기술자 등 기존의 제작자 카테고리에 얽매이지 않으면서, 손쉬워진 기술을 응용해서 폭넓은 만들기 활동을 하는 대중을 지칭한다. 처음에 쓰일 때는 취미공학자라는 의미가 강했지만, 지금은 공유와 발전으로 새로운 기술의 사용이 더더욱 쉬워졌기 때문에 만드는 사람 전부를 포괄하는 뜻으로 쓰이기도 한다. - <메이커 운동 선언>, 마크 해치 (2014)16쪽 인용
그렇다. 나는 이제 ‘메이커’가 되기로 했다.
생각해보면 초등학생 시절 과학상자를 사달라고 조를때부터 메이커가 되고 싶었던 것 같다.
어른이 되고 나서도 항상 메이커들을 동경하면서도 아두이노 하나 사는게 왜 그리 힘들었는지 모르겠다.
잘하지 못할 것이 두려웠을까?
어쨋든 이런저런 와이프와의 대화를 통해 내가 정말 좋아하고 해보고 싶었던 것을 다시금 깨닫게 되었고 본격적으로 메이킹을 해보려고 한다.
지금 나의 롤 모델은 해리포터에 나오는 ‘프레드&조지’ 이다.
재미있게, 가볍게, 내가 하고 싶은대로 해볼 생각이다.
그래서 메이킹 관련 글들 역시도 가볍게 쓸 것이다.
RTB 는 나의 메이커 부캐 이자 일종의 브랜드명이다.
일전에도 이 부캐명을 쓴 적이 있는데 내가 재밌어하고, 좋아하고, 별로 진지하고 싶지 않을때는 이 이름을 쓰게 되는 것 같다.
아직 제대로된 뜻은 없다.
나중에 필요하면 각 이니셜에 그럴듯한 단어를 붙이면 그만이다.
중요한 것은 의미보다는 이름이 붙었다는 것 그 자체이다.
각 작품들은 RT-01, RT-02 하는 식으로 넘버링 하면서 발표할 생각이다.
RT 역시도 뜻은 없다. ( 개발자에게는 익숙한 단어지만.. )
그리하여! 첫 작품 RT-01 을 소개하겠다
RT-01 에는 ‘니손내손’ 이라는 별칭을 붙였다.
바로 작품 시연부터 보겠다.
RT-01 니손내손 시연영상
로봇손이 내 실제 손과 동기화되어 움직인다.
손에는 아무런 장비도 장착되어 있지 않으며, 따라서 손과 로봇손 사이에 연결된 어떠한 물리적인 선도 없다.
원격으로 나의 손 움직임을 모방할 수 있는 것이다!
약은 이쯤 팔고.. 메이킹 과정을 공유하겠다.
RT-01의 전체 구성은 다음과 같다.

로봇손 구동부
- 종이 박스
- 서보 모터 1개
- 아두이노
모션 캡쳐 및 분석부
- 카메라
- 맥북
각 구성 요소들은 다음과 같이 상호작용 한다.

로봇손은 단순히 시리얼 통신으로 전달받는 값 만큼 손을 오므리거나 편다.
스마트폰을 통해 동영상을 찍어서 컴퓨터로 스트리밍하면,
컴퓨터는 해당 영상에서 손 모양을 분석하고, 손이 얼마나 오므려졌는지 계산해서, 로봇손에게 오므림 정도를 전달한다.
구현 코드는 깃허브에 공개해두었다. ( 날림 코드 주의.. )
https://github.com/kanghohyeong/hand-sync-arduino#
손 모양 분석에는 파이썬의 open-cv 와 mediapipe 라는 라이브러리를 활용해서 바이브 했다.. ( ai 가 다 해줬다는 뜻 )
open-cv 가 실시간 영상 처리를 해주면, mediapipe 가 손 움직임을 감지하고 추적한다.
사실은 로봇손을 맥북에 연결하지 않고 라즈베리파이에 연결하고 싶었는데, 맥북에서 작성한 파이썬 코드가 라즈베리파이에서는 라이브러리 설치부터 되지 않아서 한참을 삽질하다가 포기했다.
파이썬, 특히 비전과 머신러닝 쪽 라이브러리는 C 로 구현된 라이브러리에 많이 의존하고 있으며, 따라서 각 OS/아키텍처에 영향을 받는 경우가 종종 있다고 한다.
스마트폰에는 ip cam 앱을 설치해서 간단하게 영상 스트리밍 환경을 구축했다.
https://play.google.com/store/apps/details?id=com.pas.webcam&hl=ko&pli=1
로봇손의 아두이노는 시리얼 통신으로 컴퓨터로부터 각도를 받도록 코드를 작성했다.
처음에는 컴퓨터에서 실시간으로 손모양을 분석하는 족족 아두이노에게 신호를 보내도록 했었는데,
이렇게 하니 아두이노가 각 신호를 처리하고 서보모터를 조작하는 속도보다 훨씬 빠르게 컴퓨터에서 신호를 보내게 되어서 동작이 원활하지 않았다.
그래서 컴퓨터 쪽에서 신호를 마구잡이로 보내지 않고, 아두이노로 부터 ‘ready’ 라는 신호를 받았을때만 각도를 보내도록 수정하였다.
그 후에는 영상 스트리밍과 손모양 분석에서 버벅이는 현상이 있어서, 비디오의 해상도와 quality 를 낮췄다.
요즘에는 원격 수술 로봇도 활발하게 쓰이고 있다던데, 실시간으로 정밀하게 기계을 조작하기 위해서는 고려할 것들이 많이 있을 것 같다.
모터 구동의 정밀함은 물론이고, 원격지의 조작이 얼마나 빠릿빠릿하게, 그렇지만 신뢰할 수 있게 기계에게 전달되는지도 중요하다.
마지막으로 로봇손 제작 과정을 공유한다.





그렇다. 종이 박스와 빨대, 실로 대충 슥슥 만들었다.
만들고 보니 메이킹 도구로 종이 박스가 참으로 유용하다는 생각이 들어서, 재활용박스에 버려져있던 종이박스를 다시 가져와 몇 개 쟁여놓았다.
RT-01 로봇손 프로토타입 실험 이 손 설계의 핵심은 실의 장력이 없을때 손가락 관절들이 다시 일직선으로 펴지는 탄성이 있어야 하는 것인데,
놀랍게도 테이프가 완벽하게 그 역할을 해줬다.
아참, RT-01 의 프로토타입은 사실 ‘악수하는 손’ 이었다.
RT-01 로봇손 프로토타입 악수 ‘악수하는 손’ 은 초음파 센서를 이용하여 손이 접근하면 3초간 악수를 하고 놔주는 기능을 가지고 있다.
순수하게 아두이노 만으로 구현 가능하며, 처음 만든 기계와 악수를 통해 인사한다는 감동적인 의미를 주기 때문에, 코딩으로 치면 Hello, world 이후 구구단 프로그램을 만드는 수준에서 시도해보기에 딱 좋다고 생각된다.
실제로 처음 악수를 성공했을때 짜릿한 전율을 느꼈다.
이후 좀 더 진화시키기 위해서 이리저리 가지고 놀다가 위와 같이 RT-01 을 완성하였다.
첫 메이킹 치고는 매우 만족스럽다.
댓글
* 작성 이후에 수정/삭제 할 수 없어요!
아직 작성된 댓글이 없습니다.