▲루빅스 큐브를 들고 있는 로봇(출처=셔터스톡)

미국 매사추세츠공과대학(MIT) 대학원생인 벤 카츠와 제러드 디 카를로가 루빅스 큐브를 0.38초 만에 맞추는 로봇을 개발했다. 이것은 예전 기록인 0.637초보다 40%나 단축된 기록이다.

0.38초는 로봇이 웹캠에서 이미지를 가져 와 색상을 감지하고 솔루션을 생성하고 큐브의 면을 실제로 회전하는 데 소요된 총 시간이다.

콜모겐 서보디스크 모터 사용

디 카를로는 큐브를 조립하는 다른 로봇에 사용된 스테퍼 모터 대신 맞춤형 모터 컨트롤러를 사용해 큐브 조립 시간을 단축했다고 말했다. 이들이 개발한 로봇에는 6개의 콜모겐 서보디스크 모터가 장착됐다. 이 모터를 사용하자 로봇이 큐브를 한 번 돌리는 데 걸리는 시간이 15밀리초가 됐다.

콜모겐 모터는 토크 대 관성비가 높고 무거운 적층이 없어 매우 빠르게 회전할 수 있다. 이 모터는 큐브를 분당 1,000회 이상 돌릴 수 있을 만큼 빠르다.

각 모터의 뒷면에는 US 디지털 2000 라인의 광학 인코더가 부착된다. 인코더의 광학 디스크에는 1/4인치 크기의 구멍이 뚫려 있고 모터와 인코더를 서로 부착하기 위해 1/4인치 도웰핀이 사용됐다.

커스텀 모터 컨트롤러는 게이트 드라이브, 12 볼트 외부 전원 공급 장치 및 부트 스트래핑된 게이트 드라이브 광아이솔레이터로 만들어졌다. STM32F303K8 누클레오(Nucleo) 보드가 모터 컨트롤러를 실행하는 데 사용됐다. 차등 직렬 인터페이스를 통해 각 컨트롤러로 명령이 전송되며 6개의 모터를 동기화하기 위해 2개의 추가 범용 입출력 핀이 사용됐다. 컨트롤러는 100V 전계 효과 트랜지스터로 구성된다.

앤드보드(AND BOARD)는 큐브가 회전할 때 6개의 면이 충돌하는 것을 방지한다. 각 모터 컨트롤러는 앤드보드에 디지털 출력을 보내고 앤드게이트 출력에 의해 구동되는 디지털 입력을 받는다. 모터가 작동하면 앤드보드 출력이 멈추고 모터가 멈추면 다시 돌아온다.

개선의 여지

카츠는 이 로봇에 아직 개선해야 할 점이 있다고 말한다. 고속 카메라로 디버깅을 수행해야 하고 로봇이 큐브 또는 FET를 파괴하는 실수를 없애야 하기 때문에 튜닝 과정에 많은 시간이 걸린다. 그리고 로봇이 큐브를 맞추는 데 드는 시간을 100밀리초 정도 줄일 수 있을 전망이다.

로봇이 루빅스 큐브를 맞추도록 하기 위해서는 큐브가 단단해야 한다. 사람들은 느슨한 큐브를 선호하지만, 로봇이 큐브를 만질 때 입방체가 느슨하다면 이것이 빠른 속도로 회전할 때 바깥쪽으로 밀련한다. 따라서 급속 회전 중 입방체의 모양이 붕괴되지 않도록 단단한 큐브를 사용해야 한다.

이 실험에 사용된 큐브의 각 캡 아래에는 큐브의 경사를 조절하는 데 사용되는 나사가 있어서 이것을 최대한 조여야 한다.

연구진은 회전 중인 큐브의 상태를 모니터링하기 위해 플레이스테이션 3 아이 웹캡을 규브의 3면에 설치했다. 그런데 이 웹캠은 큐브의 빨간색 면과 주황색 면을 구분하지 못했다. 그래서 연구진은 주황색 면을 검은색으로 칠했다. 이 웹캠은 리눅스에서 실행될 때 1초에 187프레임을 촬영한다.

색상 감지에는 오픈 CV(Open CV)가 사용됐다. 연구진은 코치엠바(Kociemba)의 2 페이즈 알고리즘을 구현해 로봇에게 큐브를 최적으로 회전시키는 방법을 교육했다. 오픈 CV가 모든 색상을 식별하고 큐브에 대한 설명을 생성한 후 그 내용을 전송하면 문자열이 컴팩트 큐브 시퀀스 메시지로 변환돼 모든 모터 컨트롤러로 전송된다. 그리고 로봇은 45밀리초 동안 큐브를 회전시킨다. 대부분의 시간은 웹캠으로 큐브의 색상을 감지하는 데 소비된다.

▲루빅스 큐브(출처=셔터스톡)

로봇 부품

한편 이 로봇을 만드는 데 다음과 같은 장비가 사용됐다.

1. 콜모겐 서보디스크 모터 U9/N9 시리즈 6개

2. 사용자 정의 모터 드라이버 6개

3. 플레이스테이션 아이카메라 2대

4. 루빅스 큐브 1개