- Foosbar는 한쪽 플레이어를 로봇으로 제어하고 다른 쪽에서 사람이 경기하는 완전 자율형 푸스볼 테이블 프로젝트임
- 로봇 쪽은 모터 제어를 통해 수비, 패스, 슛을 수행할 수 있으며, 제작자는 푸스볼 연습의 반복성을 자동화 대상으로 봄
- 저장소는
software,frontend,firmware3개 구성요소로 나뉘며, 실제 구동 코드는 주로 모터 제어용software에 있음 frontend는 원격 게임 컨트롤러로 테이블을 조작하는 3D 웹앱이고,firmware는 점수 표시용 e-paper 디스플레이와 Teensy 4.1을 위한 코드였지만 완전히 구현되지 않은 구식 구성임- 프로젝트 코드는 제작자 환경에 매우 특화돼 있어 그대로 실행될 가능성은 낮고, 비슷한 시도를 위한 참고 자료 성격이 강함
Foosbar가 만드는 것
- Foosbar는 제작자가 “검증할 수는 없지만 그럴듯하게 세계 최고의 푸스볼 로봇”이라고 부르는 자율형 푸스볼 테이블임
- 한쪽 테이블은 로봇이 제어하고, 반대쪽에서는 사람이 플레이함
- 로봇 제어 쪽은 다음 동작을 수행할 수 있음
-
수비
-
패스
- 슛
- 프로젝트 소개 영상은 YouTube 영상으로 제공됨
-
제작 동기
- 제작자는 푸스볼을 매우 좋아하지만, 프로그래머로서 같은 작업을 반복해 조금씩 효율을 높이는 연습 방식이 자동화에 적합하다고 봄
- Foosbar는 그런 반복 연습을 자동화하려는 시도에서 만들어짐
- 제작자는 이 프로젝트가 게임의 즐거움을 기계화해 자신이 다른 작업을 할 수 있게 했다고 표현함
프로젝트 구성
- 저장소는 3개의 주요 구성요소로 나뉨
software: 모터를 직접 제어하는 주요 코드frontend: 원격 게임 컨트롤러로 테이블을 조작하는 3D 웹앱firmware: Teensy 4.1과 e-paper 디스플레이로 점수를 표시하려던 코드
firmware는 더 이상 현재 핵심 구성요소가 아니며, 제작자가 끝까지 완전히 구현하지 않았다고 밝힘- 전체 구성은 제작자의 특정 하드웨어 환경에 맞춰져 있어, 저장소 코드는 비슷한 프로젝트를 시도하는 사람을 위한 참고용에 가까움
빌드와 실행
software는 uWebSockets를 빌드하고 CMake가 찾을 수 있게 해야 함- 제작자는
make && sudo cp ./uSockets/uSockets.a /usr/local/lib/libusockets.a방식으로 설치했다고 적음 - Qualisys realtime SDK도 비슷한 방식으로 설치해야 함
- 제작자는
- 요구사항 설치 후
software빌드는 다음 흐름을 사용함cd softwaremkdir build && cd buildcmake ..make./foosbar
firmware는 표준pio프로젝트이며cd firmware후pio run -t upload로 업로드함frontend는cd frontend후npx vite로 실행함