Чтобы создать полностью функционального робота, вам нужно заняться тремя основными областями
1. Производство
2. Электроника
3. Программное обеспечение + математика

Производство

Раньше у вас было 2 варианта, для каждого из которых требовался отдельный гараж.

Деревообработка

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

Сварка

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

3D печать

К счастью, 3D-печать сделала производственный процесс намного проще и дешевле.

У меня есть Monoprice Mini, он отлично работает и стоит меньше 200 долларов. Если вы просто делаете что-то для себя, это отличный первопроходец. Если вы можете себе это позволить, вероятно, стоит приобрести модель с большей печатной платформой, чтобы вы могли печатать более крупные детали, но это не обязательно.

Вы можете зайти на такие сайты, как Thingiverse, чтобы загрузить различные готовые дизайны.

Если вам нужно напечатать определенные детали с определенными размерами и формами, вам необходимо использовать САПР. Опять же, до недавнего времени программное обеспечение САПР было примерно таким же удобным в использовании, как и Vim, tinkercad.com доставлял мне радость при разработке чертежей. Вы можете манипулировать основными формами и легко проделывать в них отверстия, чтобы они соответствовали вашим проводам и схемам.

Когда дизайн будет выглядеть хорошо, вы можете импортировать его в Ultimaker Cura, чтобы получить дизайн, который работает специально для вашего 3D-принтера, а затем экспортировать дизайн на SD-карту, которую вы просто подключите к своему 3D-принтеру и начнете печать.

Даже для такого дешевого принтера, как Monoprice Mini, вы можете получить детали, похожие на те, что изображены на черепе ниже. Удачи с такой точностью с деревом или сталью.

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

В связи с приближающимся концом света, вам нужно собрать все части, которые вы можете.

Электроника

Готовиться

Очевидно, что электроника - это огромная сфера, которую вы могли бы посвятить всю свою жизнь изучению, но есть несколько приемов, которые мы можем использовать, чтобы сделать процесс обучения более эффективным.

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

Далее вам понадобится купить мультиметр - он довольно дешевый. Думайте о мультиметре как о выражении print () в обычном программном обеспечении. Это упрощает вам отладку того, что делает определенный чип или конечная точка.

В следующий раз, когда какая-то часть оборудования умрет, разберите его и посмотрите, как это исправить. Есть несколько причин, по которым большинство оборудования выходит из строя.

  • Повреждение водой - ›соскребите ржавчину и помолитесь.
  • Мертвый компонент - ›сравните напряжение, которое вы получаете, с тем, что указано в паспорте оборудования. У чипов есть бирка с именем, которая позволяет легко гуглить их листы и узнавать, как они работают.

Электронные мозги

Если вы не можете найти замену мертвому чипу, вы можете разобрать большую часть электроники на полезные запчасти.

Вам понадобится простой в программировании микроконтроллер, на котором можно будет запускать управляющее программное обеспечение, и здесь есть два очевидных кандидата. Arduino и Raspberry Pi.

Вы можете выяснить, что делает каждый компонент, используя аннотированное изображение Flickr от westfw. Все это с открытым исходным кодом, так что вы можете скачать таблицы и быстро во всем разобраться.

Arduino имеет различные экраны, которые помогают со всеми видами сигналов управления и датчиков низкого уровня.

Код, который вы напишете на Arduino, находится на низком уровне C.

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

Существуют тонны вдохновляющих проектов с подробными схемами и кодом на

Станьте профессионалом с электроникой

Работа с электроникой для новичков может быть пугающей, потому что вы можете убить себя электрическим током или сжечь свое оборудование. Так что вам действительно нужны специалисты, которые покажут вам основы, чтобы вы могли более уверенно приступить к работе. Все эти каналы Youtube были для меня невероятным ресурсом.

  • ElectroBOOM - веселый мазохист, который научит вас схемотехнике и физике низкого уровня.
  • BenEater даст вам хорошее представление о том, как проектировать логические схемы, поэтому подумайте о создании процессора или графического процессора с использованием компонентов схемы и Arduinos.
  • TronixFix ремонтирует различное электронное оборудование. Мне особенно понравились его разборки игровых приставок.

В конце концов вам, вероятно, понадобится полностью оборудованная лаборатория электроники, в том числе

  • Вытяжной шкаф, чтобы не заболеть раком легких
  • Микроскоп, чтобы вы могли перепроектировать ИС (это на профессиональном уровне)
  • Осциллограф, источник питания и цифровой логический анализатор, такой как Salae, вы МОЖЕТЕ создать дешевые заменители, используя Arduino и макетную плату, но крайне маловероятно, что вы создадите что-то лучше с первой попытки.

Если вы хотите в конечном итоге начать массовое производство своего робота, вам понадобится более дешевый микроконтроллер, чем Arduino / Pi, и распечатать схему на печатной плате. Вам не нужны особые отношения с начальником завода, и вы можете использовать такой инструмент, как JLCPCB, для дешевого производства печатных плат. Вы просто импортируете файл Gerber, который вы создали бы в любой программе САПР.

Но, честно говоря, вы можете продвинуться довольно далеко, просто почистив все, что можно найти в своей квартире, и время от времени заказывая электронную часть на Amazon или AliExpress. У тебя должен быть образ мышления Безумного Макса.

Программное обеспечение + математика

Создайте свой настольный компьютер для моделирования и обучения

Большинство алгоритмов, которые вам нужно будет запустить, потребляют много ресурсов ЦП и ГП, поэтому вам действительно нужно собрать свой собственный компьютер в качестве первого шага.

Существует множество веб-сайтов, которые позволяют создавать свои собственные записные книжки практически без каких-либо настроек, где вы можете экспериментировать с различными алгоритмами управления. Однако у всех этих сервисов очень дорогие настройки графического процессора.

Даже такие сервисы, как AWS / Azure / GCP, не будут того стоить, пока вы не запустите крупную распределенную операцию, в которой в ближайшее время не будет необходимости.

Итак, вам нужно собрать свой компьютер, и это никогда не было проще, если вы присоединитесь к правильным онлайн-сообществам, которые будут держать вас за руку в процессе.

Оба этих форума помогут вам собрать свой первый компьютер. Сборка ПК во многом схожа со сборкой Лего, не столько схемотехникой, так что для заказа деталей обязательно используйте https://pcpartpicker.com/, который составляет хороший дешевый контрольный список. Купите оборудование, которому 1-2 года, и вы получите невероятную машину. Не нужно тратить 3000 долларов на Titan X_666_GAMER_999.

(И) намеревался? Следствием этого является то, что вы также случайно создаете себе игровой автомат и поднимаетесь. У ваших рогаликов не будет узкого места в процессоре, ваши 120 кадров в секунду означают, что вы не будете увеличивать количество кадров и сможете увидеть каждый волосок на великолепной бороде Джеральдо.

Вернемся к роботам.

Постройте симуляцию

Ваши алгоритмы должны сначала работать в компьютерном моделировании, прежде чем вы даже попытаетесь заставить их работать на реальном оборудовании. Лучше всего это сделать с помощью агентов Unity ML, в которых вы можете запрограммировать симуляцию вашего робота. Unity, пожалуй, самый удобный игровой движок на сегодняшний день.

Узнайте, как создавать симуляции из лучших

Вы можете запрограммировать любую симуляцию, которую хотите, с глубоким пониманием Unity, которое вы можете получить с помощью осмоса

  • просмотр сеансов программирования типа Mix and Jam.
  • Другой вариант - разобрать несколько полных игр, которыми вы владеете, через ILSpy.net, который надежно работает для большинства игр, созданных на Unity. (Пожалуйста, никому не говорите, что я вам это сказал, и из любви к играм не выкладывайте дизассемблированный код в Интернет)
  • Археология Github.com - Google ‹fav_game_genre› ‹fav_language›, чтобы получить представление о том, как создать любую игру

Узнайте, как работают тренажеры

Также важно потратить некоторое время на основы и стать лучше в компьютерной графике и проекционной геометрии, чтобы вы могли создавать на экране все, что захотите. Набор навыков будет переведен и позволит вам взламывать проекты AR / VR. Мои любимые ссылки:

Обучение с подкреплением для обучения

Как только правила моделирования определены и ваша цель четко определена, вы можете обучать алгоритмы обучения с подкреплением, чтобы добиться желаемого поведения. Агенты машинного обучения делают это тривиальным, если вы следите за их интерфейсом и можете экспериментировать с чрезвычайно сложной средой роботов почти тривиально.

Обучение с подкреплением - это яркая и активная область исследований, в которой многие алгоритмические достижения появляются, казалось бы, каждый день, поэтому стоит изучить базовую структуру. Агент зацикливается, пробуя разные действия и наблюдая разные награды за эти действия с учетом состояния окружающей среды.

Затем агент пытается максимизировать свое вознаграждение. Обещание обучения с подкреплением заключается в том, что программирование роботов можно превратить в декларативное упражнение (это работает из-за автоматического дифференцирования), поэтому теоретически программирование роботов должно быть таким же простым, как SQL-запрос без объединений.

Это базовая структура, но ее можно изменить разными способами, см., Например, Долгий взгляд на обучение с подкреплением. Но если вы действительно хотите попробовать это, я настоятельно рекомендую вам купить себе книгу Глубокое обучение и игра в го, которая недавно стала моим любимым введением как в обучение с учителем, так и в обучение с подкреплением.

Обобщение от моделирования к реальному миру

Наконец, вам нужно убедиться, что ваши алгоритмы стабильны в реальном физическом мире. Ваш робот не может метаться и пугать вашу кошку.

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

Кроме того, создание новых обучающих сред по существу бесплатное: вы можете моделировать агента в множестве различных сред и помочь ему лучше обобщить его поведение в реальном мире.

Как только все это будет сделано, импорт вашей модели с настольного ПК на Arduino и Pi должен быть тривиальным. Такие проекты, как Tensorflow Lite, со временем станут более удобными для пользователей.

Что дальше?

Вот и все! Вы должны быть в состоянии создать свою армию роботов-терминаторов прямо сейчас или просто построить что-то, что поможет вам складывать футболки. Тем не менее, я надеюсь, что вам понравилось это читать, и дайте мне знать, если вы нашли это полезным.

Создавать роботов сложно, но не так сложно, как вы думаете.

Я пишу книгу по математике и программному обеспечению «The Robot Overlord Manual», которая выходит в конце этого года. По его окончании вы почувствуете себя комфортно, решая сложные программные проблемы в робототехнике.

Я буду освещать самые разные темы от

  • Прикладная алгебраическая топология для решения трехмерных движений роботов
  • Формирование контролируемого обучения на языке теории категорий
  • Обучение с подкреплением
  • Распределенное принятие решений с динамическими системами, теорией игр и теорией азартных игр

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