Komputery i szachy były potężną kombinacją od czasu pojawienia się pierwszych komputerów do gry w szachy w 1970 roku. możesz nawet zagrać w szachy na urządzeniu, którego używasz do czytania tego wpisu na blogu! Dla twórców cyfrowych, choć, dodanie Raspberry Pi do mieszanki może być pierwszym krokiem do budowania czegoś trochę bardziej ekscytujące. Pozwólcie, że przedstawimy Wam robota Joeya Meyera grającego w szachy, malinowego Turka.
zdjęcie: Joey Meyer
będąc zarówno doświadczonym inżynierem oprogramowania z zainteresowaniem uczeniem maszynowym, jak i wykwalifikowanym szachistą, nie dziwi fakt, że Joey był zainteresowany majsterkowaniem przy programach szachowych. To, co jest naprawdę oszałamiające, to skala i złożoność konstrukcji, którą wymyślił. Zafascynowany słynnym historycznym mistyfikacją, Joey wykorzystał swoje umiejętności w programowaniu i robotyce, aby zbudować otwartoźródłową rekonstrukcję słynnego automatu Mechanical Turk napędzanego Raspberry Pi.
Możesz zobaczyć Raspberry Turk w akcji na kanale Joeya na YouTube:
historyczna mistyfikacja
Joey wyjaśnia, że po raz pierwszy zetknął się z mechanicznym Turkiem w książce Toma Standage ’ a. Słynny przykład mechanicznego oszustwa, oryginalny Turk był reklamowany jako automat do gry w szachy, zdolny do pokonywania ludzkich przeciwników i rozwiązywania złożonych zagadek.
nowoczesna rekonstrukcja mechanicznego Turka
obraz z Wikimedia Commons
jego wewnętrzne działanie jest tajemnicą, Turk podróżował po Europie przez najlepszą część stulecia, myląc wszystkich, którzy go napotkali. Niestety okazało się, że nie jest to jednak wspaniały przykład wczesnej inżynierii robotycznej. Zamiast tego, była to tylko wyszukana iluzja. Niesamowite ruchy szachowe nie były opracowywane przez mechaniczny mózg automatu, ale raczej przez ludzkiego mistrza szachowego, który był sprytnie ukryty w obudowie.
budowa nowoczesnego Turka
nowoczesna wersja mechanicznego Turka powstała w latach 80. XX wieku.koszt budowy wyniósł jednak 120 000 dolarów. W tej cenie większość twórców nie mogłaby stworzyć własnej wersji. Niemożliwe, to znaczy, do tej pory: Joey używa Raspberry Pi 3 do kierowania Raspberry Turk, podczas gdy Moduł Kamery Raspberry Pi obsługuje widzenie komputerowe.
malinowy Turk w środku gry
kredyt na zdjęcie: Joey Meyer
malinowy Turk Joey ’ a jest wbudowany w schludny drewniany stół. Cała elektronika jest umieszczona w pudełku Po jednej stronie. Szachownica malowana jest bezpośrednio na powierzchnię stołu. Aby robot mógł grać, Moduł Kamery umieszczony w obudowie drukowanej 3D nad stołem wykonuje obraz szachownicy. Obraz jest następnie analizowany w celu określenia, które elementy znajdują się w jakich pozycjach w danym punkcie. Śledząc zmiany w pozycjach figur, Raspberry Turk może określić, które ruchy zostały wykonane, a które powinny być następne. Aby wyszkolić system, Joey musiał zbudować duży zbiór danych, aby zweryfikować komputerowy model widzenia. Wymagało to starannego przesuwania elementów ręcznie i zbierania wielu obrazów z każdej możliwej pozycji.
Patrz, bez rąk!
kluczową cechą mechanicznego Turka było to, że automat wydawał się poruszać pionkami w całości samodzielnie. Oczywiście, jego ruchami sterowała osoba ukryta w maszynie. Malinowy Turek natomiast sam porusza figurami szachowymi. Aby to osiągnąć, Joey użył ramienia robota przymocowanego do stołu. Ramię zbudowane jest głównie ze składników Actobotics. Joey wyjaśnia:
ruch jest kontrolowany przez obrót dwóch serwomechanizmów, które są przymocowane do kół zębatych u podstawy każdego ogniwa ramienia. Na końcu ramienia znajduje się kolejne serwo, które przesuwa belkę w górę iw dół. Na dole belki znajduje się elektromagnes, który może być dynamicznie aktywowany, aby podnieść figury szachowe.
Joey indywidualnie dopasowywał figury szachowe za pomocą drobnych odcinków metalowego kołka tak, aby magnes na ramieniu mógł je podnieść.
Programowanie Raspberry Turk
Raspberry Turk jest kontrolowany przez proces demona, który uruchamia sekwencję percepcji / akcji, a status aktualizuje się automatycznie, gdy elementy są przenoszone. Kod jest napisany prawie w całości w Pythonie. Wszystko jest dostępne w repozytorium Joeya na GitHub dla projektu, wraz z jego notatnikami na temat projektu.
kredyt na zdjęcie: Joey Meyer
zaplecze AI, które daje robotowi możliwość gry w szachy, jest obecnie Stockfish, silnym silnikiem szachowym open-source. Joey mówi, że chciałby zbudować własny silnik, kiedy będzie miał czas. Na razie jednak jest przekonany, że ta sztuczna inteligencja okaże się godnym przeciwnikiem.