Я разрабатываю роботов и меня часто спрашивают — «как сделать робота», «где ты находишь информацию, какие ресурсы используешь»?
Если вы не знаете с чего начать и хотите сделать собственного робота — эта статья для вас — в ней я постараюсь объяснить процесс, а также расскажу какие должны быть первые шаги.
Чуть-чуть обо мне
Долгое время я работал на различных предприятиях инженером-конструктором, занимался проектированием механической части устройств. Там я овладел специализированными программами 3Д-проектирования. Также занимался обучением учеников старших классов в ЦМИТе (3Д-печать, САПР, ЧПУ).
Несколько лет назад я перешел в другую профессиональную сферу и стал фронтенд девелопером.
Также с детства я увлекался робототехникой, данная тема меня всегда интересовала. Стартовой точкой идеи создания своего робота у меня стала покупка робот-пылесоса, мне понравилась идея управления устройством через приложение на телефоне.
Что такое робот?
При анализе задачи создания собственного робота, я для себя выделил основные части:
Механическая часть - это непосредственно тело робота: корпус, двигатели, прочие механизмы.
Электрическая часть - это то, с помощью чего осуществляется контроль механической части: вращение двигателей, управление другими механизмами. Сюда можно отнести мини-ПК, платы управления двигателями, ультразвуковые датчики, гироскопы и прочее.
Программная часть - эта часть, включающая в себя всю логику робота - движения, выполнение команд, интерфейс взаимодействия человека - робота. Это может быть приложение, сайт, терминал.
С чего начать
Предлагаю вам ответить на следующие вопросы:
-
Что вы хотите? - Вы хотите создать все три части робота с нуля, или взять готового и написать только программную часть?
Существует много готовых решений как для механической части, так и для электрической, причем все они довольно доступны в цене и продаются на таких платформах как amazon или aliexpress. Также есть полностью готовые роботы, которые нужно только собрать и написать свой собственный софт.
Если вас интересует создание робота полностью с нуля, в данном случае вы можете закупить необходимые детали и полностью спаять всю электронику самостоятельно. Особенные энтузиасты создают все модули сами, начиная с редукторов и заканчивая электроникой. Также различные детали можно изготавливать на 3Д принтерах или на ЧПУ станках.
Что будет делать ваш робот? - Здесь надо определиться с основным функционалом — будет ли это шагающий робот, робот на колесах, робот — манипулятор и т. п. В процессе никто не мешает нам добавлять новые функции, но без базы это будет сложно. Не обязательно создавать робота с какой-то полезной нагрузкой - быть социально значимым и делать общество лучше. Пусть он просто передвигается или крутит головой, этого вполне достаточно на первом этапе.
Что вы уже умеете? Насколько вы владеете тем или иным языком программирования. Мой выбор пал на JavaScript (тут понятно почему), но можно и на C++, Python. Перед началом создания робота желательно иметь какие-нибудь навыки программирования.
Как съесть слона?
Ответ очень простой - надо разбить сложную задачу на подзадачи того размера, с которыми вы можете справиться.
Иным словами, я предлагаю начинать с чего‑то простого, например управлением светодиодом или обычным вращением двигателем. Так, постепенно усложняя задачи и двигаясь по спирали, вы будете добавлять необходимый функционал на каждой итерации и в итоге устройство превратится в полноценного робота. Нет ничего страшного в том, если придется откатиться назад и переделать какую‑либо часть, созданную раннее — это обычный подход при проектировании.
Мой личный опыт. Небольшой экскурс.
У меня была идея сделать робота, управляемого через интернет. Корпус я решил спроектировать сам и распечатать его на 3Д принтере. Различные электрические устройства приобрел на китайском маркетплейсе - это двигатели, мини-компьютер, драйвера управления двигателями, гироскоп и ультразвуковые датчики, аккумуляторы. На самом первом этапе была цель - заставить двигатель вращаться, светодиод - светиться.
Далее приступил к проектированию корпуса. Перед этим закрепил электронику на алюминиевых профилях, таким образом можно было уже тестировать управление. Среди знакомых оказался владелец 3Д принтера, и он распечатал мне детали.
Параллельно занимался разработкой приложения для управления роботом - веб интерфейса и аппаратной части. Для веб интерфейса использовался React, аппаратная и серверная части были написаны на Node.js.
В итоге был создан робот и протестирован на улице. Весь процесс занял у меня около года - с момента первого мигания светодиода до полноценного устройства.
Далее я приступил к разработке шагающего робота, но это совсем другая история.
Заключение
Если вами интересна данная тема, я напишу более подробно детали реализации. Помните, самое сложное - это начать, проверено на себе.
Комментарии (12)
oleg_rico
03.07.2023 15:13+2А буду немножко занудой-изначально под роботами подразумевались устройства, которые могут самостоятельно что-то выполнять и не нуждаются в постоянном внешнем управлении.
Короче, хочу работа Ваську, которому можно было бы сказать: "Вась, приберись в доме и пловчик приготовь."
На крайний случай годятся роботы как в XXI век возвращение Стругацких которые работали дворниками и превращали мусор и упавшие деревья в солнечный свет и кислород. Вот как бы таких сделать:)
PuerteMuerte
03.07.2023 15:13-3А буду немножко занудой-изначально под роботами подразумевались устройства, которые могут самостоятельно что-то выполнять и не нуждаются в постоянном внешнем управлении.
Изначально под роботами подразумевались металлические ящики с ногами-трубами на колёсиках, с телескопическими клешнями, с круглой металлической башкой, лампочкой вместо носа или глаз и антеннами вместо ушей. Ах да, и со стрелочным вольтметром где-то в районе пупка.
oleg_rico
03.07.2023 15:13+2Изначально роботами назывались механические работники на заводах придуманные Карлом Чапеком.
Которые были полностью автономны.
И более-менее человекоподобные.
Раньше фантастике встречались ещё киберы от слова кибернетика сейчас правда таких уже не осталось
PuerteMuerte
03.07.2023 15:13РУР не считается, то фантастика. А ящики - в каждом втором кружке юных техников были :)
don_alex_88 Автор
03.07.2023 15:13Похоже уже на алхимию :) На самом деле хороший вопрос "Что такое робот" - автономное устройство и насколько оно должно быть автономным.
oleg_rico
03.07.2023 15:13+1Если брать фантастическое определение то робот практически всегда полностью автономный.
Начиная с первых роботов, которых придумал Чапек и продолжая роботами из фантастических произведений Азимова.
Роботы, те которые в виде манипуляторов или подобных, на современных заводах тоже выполняют все работы автономно.
Просто в какой-то момент роботами стали называть и дистанционно управляемые механизмы хотя это неправильно если исходить из духа самого определения.
DashBerlin
03.07.2023 15:13В начале 90-х 20 века из определения станков с ЧПУ убрали букву "Ч" и они стали станками с программным, а в 20-х годах 21 века буква "Ч" снова нарисовалась, это на тренды такие?
sepetov
Мой путь "к технике" тоже начался с декомпозиции проекта на части. Правда, начинать пришлось не с робота, а обычного ленточного транспортёра. Для начинающего меня этот этап простым тогда не казался. Это сильно отличалось от написания кода в моей работе :-)
Затем к транспортёру добавил сканер, считывающий штрихкоды с проезжающего товара. А теперь возникла потребность в фотодатчике. Потом, подозреваю, нужно будет пневмоцилиндр к транспортёрной ленте приспособить, чтобы сталкивал с неё товар, который не удалось прочитать. Для кого-то это работы на полдня, наверное. Зато интересно!
don_alex_88 Автор
Главное чтобы самому нравилось :)