Franka로 성공, 무엇이 달랐나 (5편)
같은 코드였습니다. 명령도 같았습니다. "큐브를 집어서 초록 목표로 옮겨." 그런데 이번에는 보조 장치를 하나도 붙이지 않았는데 큐브가 3mm 오차로 목표에 내려앉았습니다. 3편에서 상자를 파고들던 그 집게와, 문장 하나 다르지 않은 명령을 받은 결과입니다. 달라진 것은 코드가 아니라 제품이었습니다.
같은 명령, 정반대 결과
3편의 SO-101은 이랬습니다. 그리퍼가 큐브를 파고들거나, 물었다 싶으면 미끄러졌습니다. 보조 장치를 붙여 옮기는 데까지는 갔지만 근본 한계는 그대로였죠.
Franka Panda는 보조 하나 없이 실제 마찰로 큐브를 물었습니다. 접근하고, 내려가고, 손가락을 닫고, 20cm를 들어 올려, 목표 위에서 다시 내려놓고 손을 폈습니다. 배치 오차는 3mm. 몇 번을 반복해도 같은 결과였습니다.
코드 구조가 거의 동일했다는 점이 중요합니다. 제어 방식이 바뀐 것이 아니라 손끝이 바뀐 것이죠. 3편에서 며칠을 쓴 문제가 로봇을 갈아 끼우자 한 번에 사라졌습니다. 기분이 좋기보다는 조금 허탈했습니다.
같은 로봇팔이라는 이름 아래에서 왜 이렇게 다를까요. 답을 찾으려고 두 제품의 공개 사양을 나란히 늘어놓아 봤습니다.
사양을 나란히 재 보니 100배가 나왔습니다
표를 다 채우고 나서 가장 눈에 띈 것은 가격 줄이었습니다. 약 100배. 그런데 이 숫자를 그대로 쓰면 오해가 생깁니다.
SO-101의 20만 원대는 부품을 사서 직접 조립하는 기준의 가격이고, Franka의 수천만 원은 지원과 보증이 붙은 연구용 완제품 가격입니다. 성격이 다른 두 값을 나란히 놓은 것이죠. 그러니 100배는 성능비가 아니라 두 장비가 서로 다른 시장에 있다는 뜻으로 읽어야 맞습니다. 가격표가 판을 바꾼다는 이야기를 쓴 적이 있는데, 그 가격표가 무엇을 포함한 값인지부터 확인해야 한다는 것을 이번에 다시 배웠습니다.
하나 더 짚습니다. 여기 적은 시뮬 결과는 공개된 모델 파일 기준입니다. 실물의 강성이나 실제 반복 정밀도와 같지 않습니다. 1편에서 나눈 구분 그대로, 화면에서 확인되는 것과 실물에서만 드러나는 것은 여전히 다릅니다.
갈린 것은 축 개수가 아니라 그리퍼 한 줄이었습니다
표에서 결과를 설명하는 줄은 하나였습니다. 그리퍼입니다.
SO-101의 그리퍼는 한쪽 손가락만 움직이는 작은 서보입니다. 상자를 물면 손가락이 물체를 파고들거나, 힘이 약해 미끄러졌습니다. 3편에서 확인했듯 이것은 코드로 고칠 수 있는 버그가 아니라 형상과 출력의 성격입니다.
Franka의 그리퍼는 양쪽이 대칭으로 닫히는 평행 2지이고, 개폐 폭이 약 80mm, 파지력이 약 70N입니다. 그래서 손가락이 물체 표면에서 정확히 멈추고 마찰로 꽉 뭅니다. 별도 보조가 필요 없었습니다.
7축이라는 여유 자유도도 도움이 됩니다. 6축은 공간에서 위치와 방향을 정하면 자세가 사실상 하나로 결정되지만, 7축은 같은 지점을 여러 자세로 갈 수 있습니다. 팔꿈치를 옆으로 비켜 놓고도 손끝은 같은 곳에 둘 수 있다는 뜻이죠. 접근 경로가 넉넉해집니다.
힘 센싱도 마찬가지입니다. Franka는 관절마다 토크 센서를 갖고 있어 손끝이 무언가에 닿는 순간을 스스로 압니다. 협동로봇에 이 기능이 들어가는 이유가 안전 때문만은 아니더군요. 닿았는지를 알아야 얼마나 더 눌러야 하는지도 정해집니다. 센서가 없는 팔은 그 판단을 위치 명령만으로 대신해야 하고, 그래서 조금만 어긋나도 파고들거나 미끄러집니다.
반복 정밀도 ±0.1mm가 무엇을 뜻하는지는 감속기의 백래시를 손끝 오차로 환산한 글에 적어 둔 적이 있습니다. 다만 이번 성패를 가른 것은 그 항목들이 아니었습니다. 그리퍼 한 줄이었습니다.
그럼 SO-101은 실패작인가
아닙니다. 오해하면 안 되는 대목입니다.
SO-101은 입문 장비로는 최고입니다. 싸고, 오픈소스고, 실제 로봇 학습 생태계로 바로 이어집니다. 제가 코드로 로봇을 다루는 감각을 익힌 것은 전부 SO-101 덕입니다. 관절에 목표각을 써넣는 법도, 동작을 순서로 엮는 법도 거기서 배웠습니다.
다만 상자 픽앤플레이스라는 작업에 맞지 않았을 뿐입니다. 도구가 나쁜 게 아니라, 작업에 맞는 도구가 따로 있었던 것이죠. 이 구분을 못 하면 애먼 장비를 탓하다가 다음 장비도 잘못 고릅니다.
본체 무게 줄도 같은 이야기를 합니다. 1kg과 18kg. 앞의 것은 책상 위에 올려 두고 쓰는 장비이고, 뒤의 것은 바닥이나 가대에 고정해야 하는 설비입니다. 성능 차이 이전에 설치 방식이 다르고, 그래서 놓일 자리도 다르죠. 스펙표의 숫자는 대부분 이렇게 용도를 먼저 말해 줍니다. 제가 3D 프린터를 살 때 놓쳤던 것이 정확히 그 대목이었습니다.
맺음말
돌아보면 3편의 실패와 이번 편의 성공, 이 두 편이 프로젝트를 시작한 이유 그 자체였습니다. 아무 로봇이나 사면 되겠지가 아니라, 작업에 맞는 물체와 기종을 고르는 것. 그것이 안목입니다.
그리고 저는 이 값비싼 교훈을 로봇을 한 대도 사지 않고 얻었습니다. SO-101을 실물로 사 놓고 왜 상자를 못 집느냐고 헤맸다면, 1편에 적은 창고 선반에 물건이 하나 더 늘었을 겁니다.
1편에서 안목의 3분의 2는 화면에서 기를 수 있다고 썼습니다. 다섯 편을 지나고 보니 그 비율 자체는 크게 틀리지 않았습니다. 대신 나머지 3분의 1이 어디에 있는지가 훨씬 선명해졌습니다. 강성과 반복 정밀도, 그리고 실제 손끝이 물체에 닿는 순간의 감각. 그것은 여전히 사 봐야 알 수 있습니다. 다음 편부터는 기종을 넓힙니다. 공장에서 실제로 쓰는 협동로봇 UR5e, 그다음 사족보행과 휴머노이드까지 화면에서 하나씩 다뤄 보며 어디에 무엇을 쓸지의 지도를 그려 보겠습니다.
참고 자료