
이 글의 내용
3D 프린터는 사람이 옆에서 지켜보지 않아도 부품을 출력합니다. 하지만 덮개의 문을 열고 다음 물리 작업으로 넘어가려면 여전히 사람이 필요합니다. 우리는 이 간극을 연구하기 위해 공개 로봇 팔 설계인 FORTE를 개조하고 있습니다. Codex Astra는 기구 설계, 시뮬레이션, 검증 도구 개발을 돕습니다.
첫 목표는 프린터 내부에 접근하는 것입니다. 장기적으로는 서버를 비롯한 다른 장비와의 물리적 상호작용도 탐구하려 합니다. 처음부터 끝까지 측정할 수 있는 하나의 작업에서 출발합니다.
쓸모 있는 로봇 팔은 전체 작업을 마쳐야 합니다
프린터 내부의 한 지점에 도달하는 것은 프린터를 다루는 작업의 일부일 뿐입니다. 문을 움직이고, 외함을 피하고, 팔을 빼낸 뒤 다음 작업을 할 수 있는 상태로 되돌려야 합니다. 한 동작에 유리한 베이스 위치가 다른 동작을 방해할 수도 있습니다.
시제품은 관절 6개의 팔, 그리퍼, 실험용 슬라이딩 베이스로 구성됩니다. CAD를 수정하고 접근 동작을 시뮬레이션했으며 첫 부품들을 출력했습니다. 조립을 마친 로봇 팔에 전원을 넣어 실제 프린터를 조작하는 단계는 아직 남아 있습니다. 아래 실험은 무엇을 제작할 가치가 있고 다음에 무엇을 측정해야 하는지 판단하는 데 쓰입니다.
상용 로봇 팔: Universal Robots, Franka, UFACTORY
상용 플랫폼은 물체를 다루는 여러 접근법을 보여 줍니다. 오픈 하드웨어 선택지인 OpenArm도 자체 제작과 구매를 검토하는 데 참고했습니다.

전체 작업 통합
툴 I/O, 힘 감지, 폭넓은 호환 부품 생태계를 갖춘 소형 생산용 로봇 팔.
연구 관점: 팔뿐 아니라 그리퍼, 지그, 기계 인터페이스도 중요합니다.
이미지: Universal Robots
접촉 이해
토크 감지 기능이 있는 7개 관절과 저수준 제어·측정용 1 kHz 인터페이스.
연구 관점: 접촉 연구에는 힘을 관측하고 정밀하게 제어할 수 있는 접근성이 필요합니다.
이미지: Franka Robotics
소프트웨어 접근
Python/C++ SDK, ROS/ROS 2 패키지, 호환 그리퍼·직선축 액세서리를 갖춘 7축 팔.
연구 관점: 계획한 실험에 실제로 어떤 인터페이스가 필요한지 확인합니다.
이미지: UFACTORY
오픈 하드웨어 활용
제조 파트너를 통해 조립된 상태로 구매할 수 있는 오픈 양팔 플랫폼. 구성과 지원은 공급업체마다 다릅니다.
연구 관점: 실험 유연성과 조립·적격성 검증에 드는 노력을 구분합니다.
이미지: WowRobo제조사 이미지와 사양을 2026년 9월 24일 확인했습니다. 연구에 참고할 점은 우리의 분석이며, 직접 사용한 비교 결과가 아닙니다.
플랫폼을 구매하면 기계 부품을 통합하는 작업을 줄일 수 있습니다. FORTE를 직접 만들면 케이블 경로, 마운트, 형상을 바꿀 수 있는 대신 그 동작 특성도 우리가 직접 파악해야 합니다. 이번 실험에는 맞는 선택이지만, 실제 생산용으로도 자체 제작 팔이 더 낫다는 뜻은 아닙니다.
로보틱스 시장에서 우리가 맡고 싶은 역할
기존 로보틱스 기업은 이미 성능 좋은 로봇 팔, 컨트롤러, 자동화 플랫폼을 제공합니다. 우리는 응용 영역에 기여하려 합니다. 로봇의 기능을 일상적인 운영에 쓸 수 있는 도구로 연결하고, 3D 프린터 작업에서 시작해 다른 장비와의 상호작용으로 넓혀 가고자 합니다.
목표는 용도에 맞게 바꾸기 쉽고 비용을 고려한 자동화입니다. 오픈 하드웨어, AI를 활용한 엔지니어링, 작업별 소프트웨어를 결합해 주변 업무에 맞춰 로봇을 조정하기 쉽게 만들려 합니다. FORTE는 이런 시스템을 실제로 유용하고 유지보수하기 쉬우며 경제적으로 만드는 방법을 배우는 첫걸음입니다.
시스템은 어떻게 연결될까요
계획한 하드웨어 흐름은 호스트 컴퓨터 → 마이크로컨트롤러와 모터 드라이버 → 팔과 그리퍼입니다. 슬라이딩 베이스는 두 번째 작업 위치를 제공합니다. 부품의 맞물림, 관절 응답, 접촉을 실측해 모델을 보정할 예정입니다.

현재 동작은 MuJoCo에서 실행됩니다. 컨트롤러가 액추에이터 명령을 보내면 물리 엔진이 접촉을 계산합니다. Codex Astra는 이 제어 루프 밖에서 개발을 지원합니다. 역할을 구분하면 동작 실패의 원인이 형상인지, 컨트롤러인지, 모델의 가정인지 추적할 수 있습니다.
개발을 진행하는 방법
일곱 단계를 거치며, 시험을 통해 새롭게 알게 된 점이 생기면 설계로 돌아갑니다.
목표 정의
첫 동작 순서는 열기, 안으로 뻗기, 빼내기, 닫기이며, 목표 사이클 시간은 60초입니다. 세워진 팔이 접촉으로 수동형 문을 움직이면서 외함을 피해야 합니다. 빈 그리퍼를 뻗는 시험은 접근 가능성을 확인합니다. 출력물을 꺼내는 작업에는 별도의 조작 시험이 필요합니다.
하드웨어 선택
FORTE 논문 과 공개 저장소 에는 수정해 쓸 수 있는 출력용 구조물, 케이블 구동계, 타이밍 벨트가 있습니다. 초기에 내린 결정 중 하나는 CAD를 승인하기 전에 정확한 모터 모델을 확정하는 것이었습니다. 프레임 크기가 같아도 축이나 몸체 길이는 다를 수 있기 때문입니다.
계획한 전기 시스템은 호스트 노트북을 Pico 2, 모터 드라이버, 그리퍼 서보에 연결합니다. 신호 경로와 전원 경로를 나누면 선정한 각 부품의 역할을 확인하기 쉽습니다.

현금 지출 예산에는 이미 보유한 장비도 반영했습니다. OpenArm은 구성과 완성도가 다르지만 구매 비용을 살펴보는 데 유용한 기준입니다.
우리의 FORTE 시제품 ¥145,338 예상 현금 지출, 반올림 팔 1대, 기존 작업실 장비 재사용. 엔지니어링 인건비와 재작업 비용은 미산정. OpenArm 2 US$6,500 시작 가격 · 계획 환율로 약 104만 엔 양팔 제품으로 기능과 구성이 다릅니다. 구성·운송비·세금을 포함한 일본 납품 견적이 필요합니다.
FORTE 추정치는 기존 프린터, 노트북, 작업실 장비를 재사용하며 인건비와 재작업 비용은 산정하지 않았습니다. OpenArm 2는 양팔 제품입니다. 시작 가격과 공급업체 선택지 를 토대로 구매를 결정하려면 일본 납품 비용을 포함한 견적이 필요합니다.
팔 CAD와 선택한 모터 살펴보기 (2)

4 × NEMA17
축 5 mm, 이 중 1개는 양축 모터.
2 × NEMA23
축 크기가 각각 8 mm, 6.35 mm로 다릅니다.
그리퍼 서보 1개
DS3225, 270° 모델.
구성은 NEMA17 스테퍼 4개, NEMA23 스테퍼 2개, 그리퍼 서보 1개입니다. 축 치수가 마운트와 풀리의 맞물림을 결정합니다. 하드웨어 인터페이스에는 Pico 2와 모터 드라이버를 사용할 계획입니다.
도구 준비
로컬 환경은 메모리 128 GiB를 갖춘 Apple M5 Max와 Python 3.11입니다. MuJoCo는 CPU에서 물리 계산을 맡고, PyTorch는 학습에 Apple MPS 백엔드를 사용할 수 있습니다. 학습 기반 큐브 배치와 스크립트 기반 프린터 접근이라는 두 실험 경로가 하나의 배타적 머신 사용 슬롯을 공유합니다.
시뮬레이션 구조와 실험 파이프라인 살펴보기 (1)
블록 배치 학습
- Prefect 관리 환경Gymnasium ↔ MuJoCo · 스크립트 시연
- HDF5 → PyTorch궤적 · 학습 · 저장된 정책
- 평가용 시뮬레이션 시험정책 + 작업 시퀀서 + 역기구학
- MLflow + PostgreSQL실행 이력 · 지표 · 산출물 참조
프린터 접근 연구
- 실행 한도가 있는 연구 실행기소스 스냅샷 · 사용 슬롯 공유
- 접촉 컨트롤러 ↔ MuJoCo액추에이터 명령 · 수동형 문 접촉
- 사이클 평가도달 범위 · 접촉 · 여유 공간 · 경과 시간
- 연구 결과 파일결과 · 추적 기록 · 녹화된 재생
재현 가능한 실행. simctl 실행기는 소스와 작업 설정의 스냅샷을 만듭니다. Prefect 워커는 실행 전에 소스 해시를 확인합니다. 시뮬레이션, 학습, 뷰어가 배타적 사용 슬롯을 공유하며 메모리, 경과 시간, 수치 계산 스레드 수, 산출물 크기를 제한합니다.
학습 경로. Gymnasium이 MuJoCo의 초기화, 관측, 행동, 스텝 인터페이스를 감쌉니다. 스크립트 컨트롤러는 타임스탬프와 시드가 포함된 시연 궤적을 HDF5로 기록합니다. PyTorch는 시연 100개를 80/20으로 나누어 16 → 128 → 128 → 4 구조의 행동 복제 네트워크를 학습합니다. 입력 정규화에는 학습 데이터만 사용하고 검증 손실로 체크포인트를 선택합니다. 명시적인 작업 시퀀서와 수치 역기구학이 정책 출력을 관절 움직임으로 바꿉니다.
평가용으로 남겨 둔 롤아웃에서 학습 손실과 별개로 작업 성능을 확인합니다. PostgreSQL 추적 저장소를 사용하는 MLflow가 파라미터와 지표를 데이터셋, 체크포인트, 재생 기록에 연결합니다.
프린터 경로. 별도로 실행 한도를 둔 실행기가 스크립트 접촉 컨트롤러를 돌리고 연구 결과와 재생 파일을 저장합니다. 사용 슬롯은 공유하지만 모든 실행을 MLflow에 등록하지는 않습니다. 액추에이터 명령과 MuJoCo 접촉 계산으로 수동형 문을 움직입니다. 문에 모터를 달거나 그리퍼를 강체로 고정해 결과를 강제하지 않습니다.
케이블 휨, 백래시, 완전한 자기 충돌 모델링은 현재 모델에 포함하지 않았습니다. FORTE의 공개 CAD , 펌웨어 , 시뮬레이션 은 원 프로젝트의 참고 자료입니다. 우리가 통합한 실험 환경은 비공개입니다.
Codex Astra와 설계하기
Codex Astra에 구체적인 기계 문제, 구매한 하드웨어, 합격 기준을 전달합니다. 손목에서는 두 풀리와 케이블 경로를 함께 살펴보는 것이 중요했습니다. 개별 부품은 그럴듯해도 연결된 기구로는 작동하지 않을 수 있습니다.
연결된 기구를 함께 설계하기
조건 명시
모터 치수, 케이블 경로, 제약 조건.
Astra로 초안 작성
CAD 변경안과 이를 확인할 스크립트.
검증
엔지니어가 맞물림, 하중 경로, 접근성을 확인합니다.
Codex Astra는 CAD 변경안과 검증 스크립트 초안을 돕습니다. 엔지니어는 채택하기 전에 맞물림, 하중 전달 경로, 공구 접근성을 검토합니다. 제안한 변경을 실제로 살펴보고 시험할 수 있는 형태로 빠르게 만드는 데 가치가 있습니다.
시뮬레이션 시험
고정 베이스는 문 조작과 내부 접근을 10회 완료했고, 매회 시뮬레이션 시간은 58.18초였습니다. 다만 가정한 출력 영역 안쪽으로 20 mm까지만 도달했습니다. 베이스를 가까이 옮기면 내부 도달 범위는 개선됐지만 전체 문 조작 사이클이 깨졌습니다.
이 상충 관계 때문에 이동 거리 360 mm의 슬라이딩 베이스를 검토했습니다. 문을 다룰 위치와 내부에 접근할 위치를 나눕니다. 팔을 접어 안으로 이동하고, 가정한 플레이트 중앙에 도달한 뒤 역순으로 돌아옵니다.
설계 개선
슬라이딩 베이스 덕분에 더 깊이 도달하지만, 전체 사이클은 시뮬레이션 시간 190.02초로 60초 목표를 넘습니다.
190.02 s시뮬레이션 사이클 시간
중앙 도달 · 시간 요건 미충족
팔을 접는 동작, 문 조작, 접근 경로가 대부분의 시간을 차지합니다. 레일 속도만 높여서는 지연의 상당 부분이 남습니다. 샘플링한 간격 약 0.45 mm도 실제 공차를 확인해야 하며, 시뮬레이션의 레일은 최신 CAD 이전 설계입니다. 이 동작을 하드웨어로 옮기기 전에 두 문제를 해결해야 합니다.
부품 출력
턴테이블부터 출력하고 나머지 부품은 Bambu Studio에서 준비했습니다. 음각 식별자를 넣어 비슷하게 생긴 출력물을 조립 문서와 연결하기 쉽게 했습니다.
남은 출력 묶음은 설계 35종, 부품 37개이며, 선택한 PLA 프로파일 기준 1.60 kg, 80시간 49분으로 예상됩니다. 베어링 자리와 체결부 접근성을 일찍 확인하면 작은 치수 오차 때문에 긴 출력을 반복하는 일을 막을 수 있습니다.
조건을 바꾸며 시뮬레이션에서 배우기
시뮬레이션을 활용하면 하드웨어를 바꾸기 전에 가정을 하나씩 시험할 수 있습니다. 프린터 접근의 다음 실험에서는 세 가지 조건을 바꿔 보려 합니다.
- 형상: 베이스 위치, 문 열림, 목표 위치를 바꿔 어디에서 도달 범위나 여유 공간이 부족해지는지 확인합니다.
- 접촉: 문 저항과 마찰을 바꿔 그리퍼가 유효한 접촉을 유지하는지 시험합니다.
- 위치 불확실성: 추정 목표 위치와 관절 위치를 흔들어 비현실적으로 정확한 상태 정보에 의존하는 동작을 찾습니다.
우선 컨트롤러를 고정한 채 완료 여부, 의도하지 않은 접촉, 경과 시간을 기록하고, 보지 못한 조건 조합은 평가용으로 남겨 둘 예정입니다. 이후 실측을 통해 현실적인 변동 범위를 정합니다.
완료한 학습 실험의 범위는 더 좁습니다. 시연에서 행동을 배우는 행동 복제로 크기 30 mm, 질량 20 g인 큐브 하나를 평가용 100회 시험에서 성공적으로 배치했고 평균 오차는 4.45 mm였습니다. 시작 위치는 수평으로 ±8 mm 달리했습니다. 카메라나 학습된 프린터 정책을 사용한 것이 아니라 정확한 시뮬레이터 상태와 이전 팔 모델을 사용한 결과입니다.
큐브 결과는 해당 조건에서 작은 학습·평가 파이프라인이 작동함을 확인합니다. 문 접촉이나 지각 오차에 대한 강건성을 입증한 것은 아닙니다. 시험을 넓혀 어떤 실패에 기구 변경, 컨트롤러 조정, 추가 시연이 필요한지 확인하려 합니다.
앞으로 살펴볼 연구 질문
시뮬레이션에서 실물 시험으로
다음 단계는 조립하고 전원을 연결해 개별 동작을 시험하는 것입니다. 전체 접근 사이클을 시도하기 전에 관절 응답, 케이블 장력, 프린터 형상, 문 저항을 측정해야 합니다.
아직 답하지 못한 엔지니어링 질문
어떤 측정이 시뮬레이터의 실제 동작 예측을 개선할까요? 초기 시뮬레이터와 보정한 모델에서 동일한 프린터 접근 컨트롤러를 실행하고, 두 예측을 별도로 남겨 둔 실제 시험과 비교하려 합니다. 작업과 컨트롤러를 고정하면 보정의 가치를 분리해 볼 수 있습니다.
사이클 완료, 의도하지 않은 접촉, 경과 시간의 예측값과 관측값을 비교할 예정입니다. 이어 같은 조정 예산으로 각 모델에서 컨트롤러를 개발하고, 동일한 조건에서 실제 작업 완료와 사람의 개입을 비교할 수 있습니다. 예측 개선과 제어 개선을 구분하고, 더 빠른 동작도 믿고 쓸 수 있는지 시험하는 방식입니다.
앞으로 합류할 동료가 기여할 부분
기구 설계, 접촉 제어, 시뮬레이션 보정, 지각 분야에 구체적인 과제가 있습니다. 제안한 변경을 반복 가능한 실험과 측정 가능한 결과로 연결하는 동료를 찾습니다. VoicePing 엔지니어 채용 살펴보기 .







