1P by GN⁺ | ★ favorite | 댓글 1개
  • Foosbar는 한쪽 플레이어를 로봇으로 제어하고 다른 쪽에서 사람이 경기하는 완전 자율형 푸스볼 테이블 프로젝트임
  • 로봇 쪽은 모터 제어를 통해 수비, 패스, 슛을 수행할 수 있으며, 제작자는 푸스볼 연습의 반복성을 자동화 대상으로 봄
  • 저장소는 software, frontend, firmware 3개 구성요소로 나뉘며, 실제 구동 코드는 주로 모터 제어용 software 에 있음
  • frontend는 원격 게임 컨트롤러로 테이블을 조작하는 3D 웹앱이고, firmware는 점수 표시용 e-paper 디스플레이와 Teensy 4.1을 위한 코드였지만 완전히 구현되지 않은 구식 구성임
  • 프로젝트 코드는 제작자 환경에 매우 특화돼 있어 그대로 실행될 가능성은 낮고, 비슷한 시도를 위한 참고 자료 성격이 강함

Foosbar가 만드는 것

  • Foosbar는 제작자가 “검증할 수는 없지만 그럴듯하게 세계 최고의 푸스볼 로봇”이라고 부르는 자율형 푸스볼 테이블
  • 한쪽 테이블은 로봇이 제어하고, 반대쪽에서는 사람이 플레이함
  • 로봇 제어 쪽은 다음 동작을 수행할 수 있음
    • 수비

    • 패스

제작 동기

  • 제작자는 푸스볼을 매우 좋아하지만, 프로그래머로서 같은 작업을 반복해 조금씩 효율을 높이는 연습 방식이 자동화에 적합하다고 봄
  • Foosbar는 그런 반복 연습을 자동화하려는 시도에서 만들어짐
  • 제작자는 이 프로젝트가 게임의 즐거움을 기계화해 자신이 다른 작업을 할 수 있게 했다고 표현함

프로젝트 구성

  • 저장소는 3개의 주요 구성요소로 나뉨
    • software: 모터를 직접 제어하는 주요 코드
    • frontend: 원격 게임 컨트롤러로 테이블을 조작하는 3D 웹앱
    • firmware: Teensy 4.1과 e-paper 디스플레이로 점수를 표시하려던 코드
  • firmware는 더 이상 현재 핵심 구성요소가 아니며, 제작자가 끝까지 완전히 구현하지 않았다고 밝힘
  • 전체 구성은 제작자의 특정 하드웨어 환경에 맞춰져 있어, 저장소 코드는 비슷한 프로젝트를 시도하는 사람을 위한 참고용에 가까움

빌드와 실행

  • softwareuWebSockets를 빌드하고 CMake가 찾을 수 있게 해야 함
    • 제작자는 make && sudo cp ./uSockets/uSockets.a /usr/local/lib/libusockets.a 방식으로 설치했다고 적음
    • Qualisys realtime SDK도 비슷한 방식으로 설치해야 함
  • 요구사항 설치 후 software 빌드는 다음 흐름을 사용함
    • cd software
    • mkdir build && cd build
    • cmake ..
    • make
    • ./foosbar
  • firmware는 표준 pio 프로젝트이며 cd firmwarepio run -t upload로 업로드함
  • frontendcd frontendnpx vite로 실행함

댓글과 토론

Hacker News 의견들
  • 정말 멋짐! 다음 단계는 테이블 양쪽을 모두 로봇 제어로 만들고, 푸스볼 AI 온라인 대회를 여는 것이라고 봄
    매주 서로 다른 AI들이 맞붙는 걸 보러 들어갈 듯

    • 다른 분야에서는 이런 생각을 해봤지만 푸스볼은 떠올리지 못했음. 실제로는 훌륭한 적용 사례로 보임
    • AWS DeepRacer보다 훨씬 재미있어 보임
  • 제작도 훌륭하고 영상도 재미있음. 예전에 사무실에서 직접 일하던 시절, 푸스볼 테이블에서 엄청난 시간을 보내던 게 그리워짐
    그때는 배지로 테이블에 태그하면 적외선 센서 몇 개로 점수를 세고, 대시보드·ELO·시즌·토너먼트 모드까지 갖춘 자동 점수 추적 시스템을 만들었음. 통계와 실시간 점수 피드도 자동으로 갱신됐고, 좋은 시절이었음

  • 산업용 모션 캡처 카메라에 수천~수만 달러를 쓸 수 있는 대신, 중간 예산의 시각 시스템으로 갔다면 어떻게 보였을지 정말 궁금함
    예를 들면 2~4개의 전역 셔터 카메라를 쓰고, 처음 시연한 것과 비슷한 시각 필터를 돌린 뒤 칼만 필터/상태 추정기로 공 위치를 계산하는 방식임. “살 수 있거나 스폰서가 줄 수 있는 건 직접 만들지 말라”는 원칙을 따른 건 이해하지만, 이 문제에 대한 더 저렴한 해법이나 시도도 보고 싶음

    • 만든 사람인데, 그 말도 맞음. 다만 적어도 나는 푸스볼 로봇 만들기에서 흥미로운 부분인 “푸스볼”에 집중하고 싶었지, “제대로 동작하지 않는 자작 시각 시스템을 만지작거리기”에 집중하고 싶지는 않았음
      채널 이름이 From Scratch라서 좀 아이러니하긴 함
    • 예전에 HN에 5달러짜리 PlayStation Eye 카메라와 적외선 LED로 위치 추적을 한 글이 올라온 적이 있어서, 분명 가능하긴 함
  • 프로젝트 아이디어가 정말 좋음. 여러 물건을 CNC화하는 건 꽤 재미있지만, 어느 순간 3D 프린터, CNC 라우터, CNC 밀, CNC 그라인더 등을 처음부터 만드는 건 다들 본 느낌이 듦
    그런데 이건 새롭고 마음에 듦

  • 이 친구는 앞으로 크게 될 것 같음

    • 말줄임표 때문에 비꼬는 것처럼 보일 수 있음. 비추천이 어디서 오는지 몰랐다면 그 때문일 듯
    • 비추천은 겸허히 받아들이겠지만, 진심으로 좋게 말한 거였음
      자기 방에서 이런 문제들을 다루고 있다면, 앞으로는 뭘 기대할 수 있을까 싶었음
    • 몇 살임?
  • “게임에서 느끼던 모든 즐거움을 성공적으로 기계화해 없애줬고, 덕분에 인생에서 더 중요하고 깊이 충만한 일들을 추구할 자유가 생겼다”
    이어진 링크 [1]를 보면 이 사람이 확실히 자기 분야에서 꽤 잘하고 있다는 걸 보여줌 :) 글과 영상도 아름답고, 프로젝트도 대단함
    [1] https://github.com/misprit7/computerraria

  • 골키퍼 위치에 항상 선수가 3명 있음? 예전에 1명 골키퍼로 된 배치, 즉 1-2-5-3으로 했던 기억이 있는데 꽤 오래전임

    • 그건 미국에서 주로 쓰이는 Tornado 테이블의 특징임. 비용 절감 조치로 도입됐는데, 네 개의 추가 인형이 곡면 경기장보다 싸기 때문임
      전통적인 테이블에서 곡면 코너는 공이 코너에 죽어버리지 않게 하려면 필요함. 하지만 3명 골키퍼면 곡면 코너 없이도 항상 공을 가져올 수 있음
      ITSF 월드컵 영상에서는 양쪽 모두 골키퍼가 한 명뿐인 걸 볼 수 있음: https://m.youtube.com/watch?v=3vnrAIOWDwo&pp=ygUOaXRzZiB3b3J...
      미국에서 푸스볼이 흥했다가 쇠퇴한 과정을 다룬 꽤 흥미로운 다큐멘터리도 있었고, 기억이 맞다면 Tornado 테이블을 만든 회사와 밀접하게 연결돼 있었음. 예전에 YouTube에서 봤는데 지금은 못 찾겠음. “Foosballers”였을 수도 있지만 확실하지 않음
    • 여러 답변을 보니 아마 미국/유럽 차이일 수도 있겠음
      적어도 International Table Soccer Federation의 공식 테이블은 골키퍼가 한 명이고 코너가 올라가 있음
      https://www.tablesoccer.org/tables/leonhart.php
      이제 41쪽짜리 규칙책을 파고들기 전에 빨리 이 토끼굴에서 빠져나와야겠음
      https://www.tablesoccer.org/rules/documents/Standard_Matchpl...
    • 살면서 골키퍼 위치에 3명이 있는 테이블은 한 번도 본 적 없음
    • 내가 본 골키퍼 1명짜리 테이블은 공이 코너에 끼지 않도록 올라간 코너가 있었음. 내 경험상 저가형 테이블에서 더 자주 봄
    • 코너 램프가 있는 단일 골키퍼 방식은 1970년대 후반부터 80년대에 걸친 흐름이었음
      요즘은 경쟁 푸스볼 일부가 뒤쪽 3인 배치를 쓰기 때문에 덜 흔하지만 예외는 하나 이상 있음. 남녀공학 친목단체 동문 모임 때문에 조사해봤는데, 고전적인 램프 테이블은 찾기 매우 어려웠음. 파티클 보드로 만들어져서 잘 망가졌기 때문임. 램프를 쓰는 한 회사는 덧붙인 가파른 코너 램프 대신 더 완만한 경사를 씀
  • 정말 멋짐. 집에서 연습용으로 갖고 싶음
    그런데 이 로봇은 트래시 토크도 할 수 있음? 푸스볼을 좋아하는 입장에서, 상대를 기죽이는 건 문화에 깊이 박혀 있고(Community 참고) 최고 수준에서 이기려면 큰 부분을 차지하니 다음 단계가 돼야 함. 진심인 푸스볼 플레이어가 제대로 된 트래시 토크를 위해 최초의 진짜 AGI를 만들 수도 있을 것 같음
    푸스볼은 탁구처럼 올림픽 종목이거나 체스처럼 문화적 존중을 받는 탁상 게임은 아니지만, 요즘 로봇은 체스에서 나를 쉽게 이겨도 최첨단 로봇 푸스볼 테이블은 아직 내가 이길 수 있을 것처럼 보임
    영상 전반이 의도적으로 건조하게 웃기고, 그 과정에서 동생을 털어버리는 장면은 특히 웃겼음. 동생도 잘 받아줬음

    • 챗봇 API를 한두 시간 붙이고, 실시간 위치/점수 데이터까지 보내서 맞춤형 조롱을 하게 만들까 생각했음
      결국엔 그냥 영상을 내고 싶어서 안 했지만, 했으면 웃겼을 듯
    • “잘하고 있네, 다른 사람들이 뭐라 하든 간에”
  • 꽤 멋짐. 이 사람이 유명한 YouTuber 같은 건가? 회사들이 이렇게 고급 부품을 보내줄 정도로 성공적으로 후원을 받아낸 게 놀라움

    • 나도 같은 게 궁금했는데, 이 계정에는 영상이 이제 두 번째뿐임
    • 유명 YouTuber라면 돈다발도 같이 요구했을 것임
  • 어디서 본 얼굴이라 했더니, Terraria라는 게임 안에 완전한 CPU를 만든 사람이었음
    https://www.youtube.com/watch?v=zXPiqk0-zDY