1 คะแนน โดย GN⁺ 2024-06-07 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Foosbar เป็นโปรเจกต์ โต๊ะฟุตบอลอัตโนมัติเต็มรูปแบบ ที่ควบคุมผู้เล่นฝั่งหนึ่งด้วยหุ่นยนต์ ขณะที่อีกฝั่งเป็นมนุษย์ลงเล่น
  • ฝั่งหุ่นยนต์สามารถทำ การป้องกัน, การส่งบอล, การยิง ได้ผ่านการควบคุมมอเตอร์ และผู้สร้างมองว่าความซ้ำๆ ของการฝึกโต๊ะฟุตบอลเหมาะกับการทำให้เป็นอัตโนมัติ
  • รีโพซิทอรีแบ่งเป็น 3 องค์ประกอบคือ software, frontend, firmware โดยโค้ดที่ใช้ขับเคลื่อนจริงอยู่หลักๆ ใน 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 software
    • mkdir build && cd build
    • cmake ..
    • make
    • ./foosbar
  • firmware เป็นโปรเจกต์ pio มาตรฐาน และอัปโหลดด้วย cd firmware แล้วตามด้วย pio run -t upload
  • frontend รันด้วย cd frontend แล้ว npx vite

1 ความคิดเห็น

 
GN⁺ 2024-06-07
ความคิดเห็นจาก Hacker News
  • เจ๋งมาก! ผมว่าสเต็ปถัดไปคือทำให้ทั้งสองฝั่งของโต๊ะเป็นระบบควบคุมด้วยหุ่นยนต์ แล้วจัด ทัวร์นาเมนต์ AI ฟุตบอลโต๊ะออนไลน์
    น่าจะเข้าไปดู AI ต่าง ๆ แข่งกันทุกสัปดาห์

    • เคยคิดไอเดียแบบนี้กับสาขาอื่น แต่ไม่เคยนึกถึงฟุตบอลโต๊ะเลย จริง ๆ แล้วดูเป็น กรณีใช้งานที่ยอดเยี่ยม
    • ดูน่าสนุกกว่า AWS DeepRacer เยอะ
  • งานสร้างก็ยอดเยี่ยม วิดีโอก็สนุก ทำให้นึกถึงสมัยก่อนที่ยังทำงานในออฟฟิศ แล้วใช้เวลาอยู่กับ โต๊ะฟุตบอลโต๊ะ เยอะมาก
    ตอนนั้นเราทำระบบติดตามคะแนนอัตโนมัติไว้ โดยแตะบัตรพนักงานที่โต๊ะ แล้วใช้เซ็นเซอร์อินฟราเรดสองสามตัวนับคะแนน มีทั้งแดชบอร์ด, ELO, ฤดูกาลแข่งขัน และโหมดทัวร์นาเมนต์ สถิติและฟีดคะแนนสดก็อัปเดตอัตโนมัติ เป็นช่วงเวลาที่ดีจริง ๆ

  • ผมสงสัยมากว่าถ้าแทนที่จะใช้เงินหลักพันถึงหลักหมื่นดอลลาร์กับ กล้อง motion capture ระดับอุตสาหกรรม แล้วเลือกใช้ระบบวิชันงบปานกลางแทน มันจะออกมาเป็นอย่างไร
    เช่น ใช้กล้อง global shutter 2–4 ตัว รันฟิลเตอร์ภาพคล้ายกับที่สาธิตตอนแรก แล้วคำนวณตำแหน่งลูกด้วย Kalman filter/ตัวประมาณสถานะ ผมเข้าใจหลักการที่ว่า “อะไรที่ซื้อได้หรือสปอนเซอร์ให้ได้ ก็อย่าทำเอง” แต่ก็อยากเห็นวิธีแก้หรือความพยายามที่ถูกกว่านี้สำหรับปัญหานี้เหมือนกัน

    • ผมเป็นคนทำเองนะ และที่พูดมาก็ถูก แต่อย่างน้อยผมก็อยากโฟกัสส่วนที่น่าสนใจของ การทำหุ่นยนต์ฟุตบอลโต๊ะ คือ “ฟุตบอลโต๊ะ” ไม่ใช่ “การงมกับระบบวิชันทำเองที่ทำงานไม่ค่อยได้”
      ก็ออกจะย้อนแย้งหน่อย เพราะชื่อช่องคือ From Scratch
    • เมื่อก่อนเคยมีโพสต์ใน HN เกี่ยวกับการติดตามตำแหน่งด้วย กล้อง PlayStation Eye ราคา 5 ดอลลาร์ กับ LED อินฟราเรด เพราะงั้นเป็นไปได้แน่นอน
  • ไอเดียโปรเจกต์ดีมาก การทำสิ่งต่าง ๆ ให้เป็น CNC ก็ค่อนข้างสนุก แต่ถึงจุดหนึ่งก็รู้สึกเหมือนทุกคนเคยเห็นการสร้าง 3D printer, CNC router, CNC mill, CNC grinder ฯลฯ ตั้งแต่ศูนย์กันมาหมดแล้ว
    แต่อันนี้สดใหม่และผมชอบ

  • หมอนี่น่าจะไปได้ไกลมากในอนาคต

    • เครื่องหมายจุดไข่ปลาอาจทำให้ดูเหมือนประชด ถ้าไม่รู้ว่าดาวน์โหวตมาจากไหน ก็น่าจะเพราะเรื่องนั้น
    • ผมยอมรับดาวน์โหวตอย่างนอบน้อม แต่ตั้งใจชมจริง ๆ
      ถ้าเขาจัดการปัญหาแบบนี้อยู่ในห้องตัวเอง ก็อดคิดไม่ได้ว่าอนาคตจะคาดหวังอะไรจากเขาได้อีก
    • อายุเท่าไหร่?
  • “เขาประสบความสำเร็จในการทำให้ความสนุกทั้งหมดที่ผมเคยรู้สึกจากเกมถูกทำให้เป็นเครื่องจักรและหายไป เปิดอิสระให้ผมไปแสวงหาสิ่งที่สำคัญและเติมเต็มชีวิตได้ลึกซึ้งกว่า”
    ถ้าดูลิงก์ต่อไป [1] ก็เห็นชัดว่าคนนี้เก่งในสายของตัวเองทีเดียว :) ทั้งบทความและวิดีโอก็สวยงาม โปรเจกต์ก็สุดยอด
    [1] https://github.com/misprit7/computerraria

  • ตำแหน่งผู้รักษาประตูมีผู้เล่น 3 ตัวเสมอเหรอ? ผมจำได้ว่าเมื่อก่อนเล่นแบบมีผู้รักษาประตู 1 ตัว คือ 1-2-5-3 แต่นั่นก็นานมากแล้ว

    • นั่นเป็นลักษณะของ โต๊ะ Tornado ที่ใช้กันหลัก ๆ ในสหรัฐฯ มันถูกนำมาใช้เป็นมาตรการลดต้นทุน เพราะหุ่นเพิ่มอีกสี่ตัวถูกกว่าการทำสนามแบบมุมโค้ง
      ในโต๊ะแบบดั้งเดิม มุมโค้งจำเป็นเพื่อไม่ให้ลูกตายอยู่ที่มุม แต่ถ้ามีผู้รักษาประตู 3 ตัว ก็หยิบลูกกลับมาเล่นได้เสมอโดยไม่ต้องมีมุมโค้ง
      ในวิดีโอ ITSF World Cup จะเห็นว่าทั้งสองฝั่งมีผู้รักษาประตูแค่คนเดียว: 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 คน แต่ก็มีข้อยกเว้นอย่างน้อยหนึ่งเจ้า ผมเคยค้นเรื่องนี้เพราะงานพบปะศิษย์เก่าชมรมสังคมแบบสหศึกษา และพบว่าโต๊ะแบบคลาสสิกที่มีรางนั้นหายากมาก เพราะทำจาก particle board เลยพังง่าย บริษัทหนึ่งที่ยังใช้ราง ใช้ความลาดชันที่นุ่มนวลกว่าแทนรางมุมชัน ๆ ที่ติดเสริมเข้าไป
  • เจ๋งมาก อยากมีไว้ซ้อมที่บ้านเลย
    แต่หุ่นยนต์ตัวนี้ trash talk ได้ด้วยไหม? ในฐานะคนที่ชอบฟุตบอลโต๊ะ การบั่นทอนขวัญคู่แข่งฝังอยู่ลึกในวัฒนธรรม (ดู Community) และเป็นส่วนสำคัญมากถ้าจะชนะในระดับสูง ดังนั้นนี่ควรเป็นก้าวต่อไป ผมว่าผู้เล่นฟุตบอลโต๊ะตัวจริงอาจสร้าง AGI ตัวจริงตัวแรกขึ้นมาเพื่อ trash talk ที่ได้เรื่องก็เป็นได้
    ฟุตบอลโต๊ะไม่ใช่กีฬาโอลิมปิกเหมือนปิงปอง หรือเกมบนโต๊ะที่ได้รับความเคารพทางวัฒนธรรมเหมือนหมากรุก แต่ทุกวันนี้ถึงหุ่นยนต์จะชนะผมในหมากรุกได้ง่าย ๆ โต๊ะฟุตบอลโต๊ะหุ่นยนต์ล้ำสมัยก็ยังดูเหมือนผมน่าจะเอาชนะได้
    ทั้งวิดีโอตั้งใจทำให้ขำแบบหน้าตาย และฉากที่เขาถล่มน้องชายระหว่างทางนั้นตลกเป็นพิเศษ น้องชายก็รับมุกได้ดี

    • ผมเคยคิดว่าจะต่อ chatbot API สักชั่วโมงสองชั่วโมง แล้วส่งข้อมูลตำแหน่ง/คะแนนแบบเรียลไทม์เข้าไปให้มัน เยาะเย้ยแบบเฉพาะตัว
      สุดท้ายไม่ได้ทำ เพราะแค่อยากปล่อยวิดีโอแล้ว แต่ถ้าทำคงฮาดี
    • “ทำได้ดีแล้วนะ ไม่ว่าคนอื่นจะพูดอะไรยังไงก็ตาม”
  • ค่อนข้างเจ๋ง คนนี้เป็น YouTuber ดังอะไรทำนองนั้นหรือเปล่า? แปลกใจที่เขาหาสปอนเซอร์ได้สำเร็จจนบริษัทต่าง ๆ ส่ง ชิ้นส่วนระดับไฮเอนด์ แบบนี้มาให้

    • ผมก็สงสัยเหมือนกัน แต่บัญชีนี้เพิ่งมีวิดีโอเป็นอันที่สองเอง
    • ถ้าเป็น YouTuber ดัง คงขอเงินเป็นตั้ง ๆ มาด้วยแล้ว
  • ว่าหน้าคุ้น ๆ ที่แท้ก็คือคนที่สร้าง CPU เต็มรูปแบบ ไว้ในเกม Terraria
    https://www.youtube.com/watch?v=zXPiqk0-zDY