Оглавление:

Шахматный робот Raspberry Pi Lynxmotion AL5D Arm: 6 шагов
Шахматный робот Raspberry Pi Lynxmotion AL5D Arm: 6 шагов

Видео: Шахматный робот Raspberry Pi Lynxmotion AL5D Arm: 6 шагов

Видео: Шахматный робот Raspberry Pi Lynxmotion AL5D Arm: 6 шагов
Видео: 7Bot Desktop Robot Arm playing chess with human 2024, Ноябрь
Anonim
Image
Image

Постройте этого шахматного робота и посмотрите, как он всех победит!

Его довольно легко собрать, если вы будете следовать инструкциям по сборке руки и если у вас есть хотя бы элементарные знания в области компьютерного программирования и Linux.

Человек, играющий белыми, делает ход. Это обнаруживается системой визуального распознавания. Затем робот размышляет, а затем делает свой ход. И так далее …

Возможно, самое новое в этом роботе - это код для распознавания движений. Этот код видения также можно использовать для шахматных роботов, построенных многими другими способами (например, моего шахматного робота со сборкой LEGO).

Поскольку движение человека распознается системой зрения, не требуется никакого специального оборудования для шахматной доски (например, язычковых переключателей или чего-либо еще).

Мой код доступен для личного использования.

Шаг 1. Требования

Сборка оборудования
Сборка оборудования

Весь код написан на Python, который, помимо прочего, будет работать на Raspberry Pi.

Raspberry Pi - это небольшой недорогой (около 40 долларов) одноплатный компьютер, разработанный Raspberry Pi Foundation. Оригинальная модель стала намного более популярной, чем ожидалось, и продавалась для таких целей, как робототехника.

Мой робот использует Raspberry Pi, а манипулятор собран из набора: Lynxmotion AL5D. В комплект входит плата сервоконтроллера. (Ссылка, которую я только что дал, ведет на сайт RobotShop в США; щелкните один из флажков в правом верхнем углу страниц сайта для вашей страны, например Великобритании).

Вам также понадобится стол, камера, освещение, клавиатура, экран и указывающее устройство (например, мышь). И, конечно же, шахматные фигуры и доска. Я опишу все это более подробно в следующих шагах.

Шаг 2: Сборка оборудования

Сборка оборудования
Сборка оборудования

Как я ранее указывал, ядро кода видения будет работать с различными сборками.

В этой сборке используется комплект роботизированной руки от Lynxmotion, AL5D. В комплект входит плата сервоконтроллера SSC-32U, которая используется для управления двигателями в руке.

Я выбрал AL5D, потому что рука должна совершать повторяющиеся точные движения и не смещаться. Захватывающий должен иметь возможность проходить между фигурами, а рука должна иметь возможность дотянуться до дальней стороны доски. Мне все еще нужно было внести некоторые изменения, как описано ниже.

Я использую Raspberry Pi - Raspberry Pi 3 Model B +. Он общается с платой SSC-32U через USB-соединение.

РЕДАКТИРОВАТЬ: Raspberry Pi 4 теперь доступен. Вам понадобятся:

  • Блок питания USB-C мощностью 15 Вт - мы рекомендуем официальный блок питания Raspberry Pi USB-C.
  • Карта microSD, на которой установлено NOOBS, программное обеспечение, устанавливающее операционную систему (купите предварительно загруженную SD-карту вместе с Raspberry Pi или загрузите NOOBS, чтобы загрузить карту самостоятельно)
  • Клавиатура и мышь (см. Позже)
  • Кабель для подключения к дисплею через порт micro HDMI Raspberry Pi 4.

Мне нужно было дотянуться до руки робота, поэтому я внес в нее небольшие изменения, используя дополнительные детали Lynxmotion, которые можно купить в RobotShop:

1. Заменена 4,5-дюймовая трубка на 6-дюймовую - деталь Lynxmotion AT-04, код продукта RB-Lyn-115.

2. Пробовал использовать дополнительный комплект пружин, но вернулся к одной паре, когда реализовал пункт 3 ниже.

3. Увеличена высота с помощью распорки на 1 дюйм - деталь Lynxmotion HUB-16, код продукта RB-Lyn-336.

4. Увеличил радиус действия захвата с помощью запасных подушек захвата, прикрепленных некоторыми запасными деталями LEGO, которые у меня были, и эластичными лентами (!). Это работает очень хорошо, так как обеспечивает гибкость при подъеме деталей.

Эти изменения можно увидеть на изображении выше справа.

Над шахматной доской установлена камера. Это используется для определения движения человека.

Шаг 3. Программное обеспечение, которое перемещает робота

Весь код написан на Python 2. Код обратной кинематики необходим для правильного перемещения различных двигателей, чтобы можно было перемещать шахматные фигуры. Я использую библиотечный код от Lynxmotion, который поддерживает перемещение двигателей в двух измерениях, и добавил к нему свой собственный код для трех измерений, угла захвата и движения захватной губки.

Итак, у нас есть код, который будет перемещать части, брать фигуры, крепиться, поддерживать на проходе и так далее.

Шахматный движок - Stockfish - он может победить любого человека! «Stockfish - один из сильнейших шахматных двигателей в мире. Он также намного сильнее, чем лучшие гроссмейстеры среди людей».

Код для управления шахматным движком, проверки допустимости хода и т. Д. - ChessBoard.py.

Я использую код из https://chess.fortherapy.co.uk для взаимодействия с этим. Мой код (см. Выше) взаимодействует с этим!

Шаг 4. Программное обеспечение, распознающее движение человека

Я подробно описал это в Инструкциях по сборке моего шахматного робота Lego, поэтому мне не нужно повторять это здесь!

Мои «черные» части изначально были коричневыми, но я покрасил их в матовый черный цвет («краской для доски»), что улучшает работу алгоритма в более изменчивых условиях освещения.

Шаг 5: камера, подсветка, клавиатура, стол, дисплей

Камера, Освещение, Клавиатура, Стол, Дисплей
Камера, Освещение, Клавиатура, Стол, Дисплей
Камера, Освещение, Клавиатура, Стол, Дисплей
Камера, Освещение, Клавиатура, Стол, Дисплей

Они такие же, как и в моей сборке Chess Robot Lego, поэтому мне не нужно их здесь повторять.

За исключением того, что на этот раз я использовал другой, значительно лучший динамик, динамик Lenrui Bluetooth, который я подключаю к RPi через USB.

Доступно на amazon.com, amazon.co.uk и других торговых точках.

Кроме того, теперь я использую другую камеру - HP Webcam HD 2300, так как я не мог заставить предыдущую камеру работать надежно.

Алгоритмы работают лучше всего, если цвет шахматной доски очень далек от цвета фигур! В моем роботе фигуры не совсем белые и коричневые, а шахматная доска сделана вручную из карт и светло-зеленого цвета с небольшой разницей между «черными» и «белыми» квадратами.

Алгоритмам требуется определенная ориентация камеры на борт. Прокомментируйте ниже, если у вас возникла проблема. Досягаемость руки ограничена, поэтому размер квадрата должен составлять 3,5 см.

Шаг 6: Получение программного обеспечения

1. Вяленая рыба

Если вы запускаете Raspbian на своем RPi, вы можете использовать движок Stockfish 7 - это бесплатно. Просто беги:

sudo apt-get install stockfish

2. ChessBoard.py Получите это отсюда.

3. Код основан на https://chess.fortherapy.co.uk/home/a-w Wooden-chess … Поставляется с моим кодом.

4. Библиотека обратной кинематики Python 2D -

5. Мой код, который вызывает весь приведенный выше код и который заставляет робота делать ходы, и мой код видения. Получите это от меня, сначала подписавшись на мой канал YouTube, затем нажав кнопку «Избранное» в верхней части этого руководства, а затем разместив комментарий к этому руководству, и я отвечу.

Рекомендуемые: