1 pontos por GN⁺ 2024-06-07 | 1 comentários | Compartilhar no WhatsApp
  • Foosbar é um projeto de mesa de pebolim totalmente autônoma em que um dos lados é controlado por um robô e o outro é jogado por uma pessoa
  • O lado do robô consegue executar defesa, passe e chute por meio de controle de motores, e o criador vê a natureza repetitiva do treino de pebolim como algo adequado para automação
  • O repositório é dividido em 3 componentes: software, frontend e firmware, e o código que realmente roda está principalmente no software para controle dos motores
  • O frontend é um app web 3D para controlar a mesa como um controle remoto de jogo, e o firmware era um código para um display e-paper de placar e para o Teensy 4.1, mas é uma parte antiga e incompleta
  • O código do projeto é muito específico para o ambiente do criador, então é improvável que funcione diretamente como está, servindo mais como material de referência para tentativas semelhantes

O que o Foosbar faz

  • Foosbar é uma mesa de pebolim autônoma que o criador descreve como “provavelmente o melhor robô de pebolim do mundo, embora eu não consiga provar isso”
  • Um lado da mesa é controlado pelo robô, enquanto uma pessoa joga do lado oposto
  • O lado controlado pelo robô consegue executar as seguintes ações
    • Defesa

    • Passe

Motivação de criação

  • O criador gosta muito de pebolim, mas, como programador, considera que o método de treino de repetir a mesma tarefa enquanto melhora a eficiência aos poucos é adequado para automação
  • O Foosbar foi criado a partir dessa tentativa de automatizar esse tipo de treino repetitivo
  • O criador diz que este projeto mecanizou a diversão do jogo para que ele pudesse fazer outras tarefas

Estrutura do projeto

  • O repositório é dividido em 3 componentes principais
    • software: o código principal que controla diretamente os motores
    • frontend: um app web 3D para operar a mesa como um controle remoto de jogo
    • firmware: código que pretendia mostrar o placar com um Teensy 4.1 e um display e-paper
  • O firmware não é mais uma parte central atual, e o criador afirma que nunca o implementou completamente até o fim
  • A estrutura como um todo é ajustada ao ambiente de hardware específico do criador, então o código do repositório está mais próximo de servir como referência para quem quiser tentar um projeto parecido

Build e execução

  • O software exige compilar o uWebSockets e fazer com que o CMake consiga encontrá-lo
    • O criador escreveu que instalou usando make && sudo cp ./uSockets/uSockets.a /usr/local/lib/libusockets.a
    • O Qualisys realtime SDK também deve ser instalado de forma semelhante
  • Após instalar os requisitos, o build do software usa o seguinte fluxo
    • cd software
    • mkdir build && cd build
    • cmake ..
    • make
    • ./foosbar
  • O firmware é um projeto padrão de pio e pode ser enviado com cd firmware seguido de pio run -t upload
  • O frontend é executado com cd frontend seguido de npx vite

1 comentários

 
GN⁺ 2024-06-07
Opiniões no Hacker News
  • Muito legal! Acho que o próximo passo é colocar controle robótico dos dois lados da mesa e organizar um torneio online de IA de pebolim
    Eu entraria toda semana para ver IAs diferentes se enfrentando

    • Já tinha pensado nessa ideia em outras áreas, mas não em pebolim. Na prática, parece ser um ótimo caso de aplicação
    • Parece muito mais divertido que o AWS DeepRacer
  • A construção é excelente e o vídeo também é divertido. Sinto falta da época em que trabalhava presencialmente no escritório e passava tempo demais na mesa de pebolim
    Naquela época, criamos um sistema automático de acompanhamento de placar: você encostava o crachá na mesa, alguns sensores infravermelhos contavam os pontos, e havia dashboard, ELO, temporadas e modo torneio. As estatísticas e o feed de pontuação em tempo real também eram atualizados automaticamente. Bons tempos

  • Fico muito curioso para saber como teria ficado se, em vez de gastar milhares ou dezenas de milhares de dólares em câmeras industriais de motion capture, eles tivessem optado por um sistema de visão de orçamento intermediário
    Por exemplo, usando 2 a 4 câmeras global shutter, aplicando um filtro visual parecido com o demonstrado no começo e depois calculando a posição da bola com um filtro de Kalman/estimador de estado. Entendo que seguiram o princípio de “não construa você mesmo aquilo que pode comprar ou que um patrocinador pode fornecer”, mas eu também gostaria de ver soluções ou tentativas mais baratas para esse problema

    • Sou o criador, e isso também faz sentido. Mas, pelo menos para mim, eu queria focar na parte interessante de construir um robô de pebolim, que é o “pebolim”, não em “ficar mexendo num sistema de visão caseiro que não funciona direito”
      É meio irônico, já que o nome do canal é From Scratch
    • Já apareceu no HN um texto sobre rastreamento de posição com uma câmera PlayStation Eye de 5 dólares e LEDs infravermelhos, então certamente é possível
  • A ideia do projeto é muito boa. Transformar várias coisas em CNC é bem divertido, mas chega um ponto em que parece que todo mundo já viu alguém construir do zero uma impressora 3D, uma router CNC, uma fresadora CNC, uma retífica CNC etc.
    Mas isto aqui é novo, e gostei

  • Acho que esse cara vai longe

    • As reticências podem fazer parecer sarcasmo. Se você não sabia de onde vinham os downvotes, talvez seja por isso
    • Aceito os downvotes com humildade, mas eu estava dizendo isso de forma sinceramente positiva
      Se ele já está lidando com problemas assim no próprio quarto, fico imaginando o que dá para esperar dele no futuro
    • Quantos anos ele tem?
  • “Ele mecanizou com sucesso toda a diversão que eu sentia no jogo, me dando assim a liberdade de buscar coisas mais importantes e profundamente gratificantes na vida”
    O link a seguir [1] mostra que essa pessoa definitivamente é bem boa no que faz :) O texto e o vídeo são bonitos, e o projeto é incrível
    [1] https://github.com/misprit7/computerraria

  • Sempre há 3 jogadores na posição do goleiro? Lembro de ter jogado antes com uma formação de 1 goleiro, ou seja, 1-2-5-3, mas faz bastante tempo

    • Isso é uma característica das mesas Tornado, usadas principalmente nos EUA. Foi introduzido como uma medida de redução de custos, porque os quatro bonecos extras são mais baratos que uma área de jogo curva
      Em mesas tradicionais, cantos curvos são necessários para evitar que a bola morra no canto. Mas com 3 goleiros, sempre dá para recuperar a bola mesmo sem cantos curvos
      Em vídeos da Copa do Mundo da ITSF, dá para ver que ambos os lados têm apenas um goleiro: https://m.youtube.com/watch?v=3vnrAIOWDwo&pp=ygUOaXRzZiB3b3J...
      Também havia um documentário bem interessante sobre a ascensão e queda do pebolim nos EUA e, se não me engano, ele era bem ligado à empresa que criou as mesas Tornado. Vi no YouTube tempos atrás, mas agora não consigo encontrar. Talvez fosse “Foosballers”, mas não tenho certeza
    • Pelas várias respostas, talvez seja uma diferença entre EUA e Europa
      Pelo menos as mesas oficiais da International Table Soccer Federation têm um goleiro e cantos elevados
      https://www.tablesoccer.org/tables/leonhart.php
      Agora preciso sair logo dessa toca de coelho antes de mergulhar num livro de regras de 41 páginas
      https://www.tablesoccer.org/rules/documents/Standard_Matchpl...
    • Nunca vi na vida uma mesa com 3 jogadores na posição de goleiro
    • As mesas com 1 goleiro que vi tinham cantos elevados para a bola não ficar presa no canto. Pela minha experiência, vejo isso mais em mesas baratas
    • O esquema de goleiro único com rampas nos cantos foi uma tendência do fim dos anos 1970 aos anos 1980
      Hoje é menos comum porque parte do pebolim competitivo usa a formação traseira com 3 jogadores, embora haja pelo menos uma exceção. Pesquisei por causa de um encontro de ex-alunos de uma fraternidade mista, e mesas clássicas com rampas eram muito difíceis de encontrar. Como eram feitas de aglomerado, quebravam facilmente. Uma empresa que usa rampas emprega uma inclinação mais suave, em vez de rampas de canto íngremes adicionadas por cima
  • Muito legal. Queria ter um em casa para treinar
    Mas esse robô também consegue fazer trash talk? Como alguém que gosta de pebolim, desestabilizar o adversário está profundamente enraizado na cultura (vide Community) e é uma parte importante para vencer no mais alto nível, então deveria ser o próximo passo. Talvez um jogador sério de pebolim acabe criando a primeira AGI de verdade só para fazer trash talk decente
    Pebolim não é um esporte olímpico como o tênis de mesa, nem um jogo de mesa com respeito cultural como o xadrez, mas hoje em dia, mesmo que robôs me vençam facilmente no xadrez, uma mesa de pebolim robótica de ponta ainda parece algo que eu poderia derrotar
    O vídeo inteiro é deliberadamente engraçado de um jeito seco, e a cena em que ele acaba com o irmão no processo foi especialmente engraçada. O irmão também levou numa boa

    • Pensei em conectar uma API de chatbot por uma ou duas horas e enviar também dados em tempo real de posição/placar para ela fazer provocações personalizadas
      No fim, só queria publicar o vídeo e não fiz isso, mas teria sido engraçado
    • “Você está indo bem, não importa o que os outros digam”
  • Bem legal. Esse cara é algum YouTuber famoso? É surpreendente que ele tenha conseguido patrocínio tão bem a ponto de empresas enviarem componentes de alto nível assim

    • Também fiquei me perguntando isso; essa conta tem só o segundo vídeo agora
    • Se fosse um YouTuber famoso, teria pedido também uma pilha de dinheiro
  • Eu sabia que já tinha visto esse rosto em algum lugar: era a pessoa que construiu uma CPU completa dentro do jogo Terraria
    https://www.youtube.com/watch?v=zXPiqk0-zDY