Как сделать робота с нуля. С чего начать

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Я разрабатываю роботов и меня часто спрашивают — «как сделать робота», «где ты находишь информацию, какие ресурсы используешь»?

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

Шагающий робот - корпус распечатан на 3Д принтере
Шагающий робот - корпус распечатан на 3Д принтере

Чуть-чуть обо мне

Долгое время я работал на различных предприятиях инженером-конструктором, занимался проектированием механической части устройств. Там я овладел специализированными программами 3Д-проектирования. Также занимался обучением учеников старших классов в ЦМИТе (3Д-печать, САПР, ЧПУ).

Несколько лет назад я перешел в другую профессиональную сферу и стал фронтенд девелопером.

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

Что такое робот?

При анализе задачи создания собственного робота, я для себя выделил основные части:

  • Механическая часть - это непосредственно тело робота: корпус, двигатели, прочие механизмы.

  • Электрическая часть - это то, с помощью чего осуществляется контроль механической части: вращение двигателей, управление другими механизмами. Сюда можно отнести мини-ПК, платы управления двигателями, ультразвуковые датчики, гироскопы и прочее.

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

С чего начать

Предлагаю вам ответить на следующие вопросы:

  • Что вы хотите? - Вы хотите создать все три части робота с нуля, или взять готового и написать только программную часть?

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

    Если вас интересует создание робота полностью с нуля, в данном случае вы можете закупить необходимые детали и полностью спаять всю электронику самостоятельно. Особенные энтузиасты создают все модули сами, начиная с редукторов и заканчивая электроникой. Также различные детали можно изготавливать на 3Д принтерах или на ЧПУ станках.

  • Что будет делать ваш робот? - Здесь надо определиться с основным функционалом — будет ли это шагающий робот, робот на колесах, робот — манипулятор и т. п. В процессе никто не мешает нам добавлять новые функции, но без базы это будет сложно. Не обязательно создавать робота с какой-то полезной нагрузкой - быть социально значимым и делать общество лучше. Пусть он просто передвигается или крутит головой, этого вполне достаточно на первом этапе.

  • Что вы уже умеете? Насколько вы владеете тем или иным языком программирования. Мой выбор пал на JavaScript (тут понятно почему), но можно и на C++, Python. Перед началом создания робота желательно иметь какие-нибудь навыки программирования.

Как съесть слона?

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

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

Мой личный опыт. Небольшой экскурс.

У меня была идея сделать робота, управляемого через интернет. Корпус я решил спроектировать сам и распечатать его на 3Д принтере. Различные электрические устройства приобрел на китайском маркетплейсе - это двигатели, мини-компьютер, драйвера управления двигателями, гироскоп и ультразвуковые датчики, аккумуляторы. На самом первом этапе была цель - заставить двигатель вращаться, светодиод - светиться.

Первый тест работы двигателя
Первый тест работы двигателя

Далее приступил к проектированию корпуса. Перед этим закрепил электронику на алюминиевых профилях, таким образом можно было уже тестировать управление. Среди знакомых оказался владелец 3Д принтера, и он распечатал мне детали.

Один из начальных этапов - собранная рама с электроникойРазработка сайта для управления роботом
Один из начальных этапов - собранная рама с электроникой

Параллельно занимался разработкой приложения для управления роботом - веб интерфейса и аппаратной части. Для веб интерфейса использовался React, аппаратная и серверная части были написаны на Node.js.

Разработка сайта управления роботом
Разработка сайта управления роботом

В итоге был создан робот и протестирован на улице. Весь процесс занял у меня около года - с момента первого мигания светодиода до полноценного устройства.

Далее я приступил к разработке шагающего робота, но это совсем другая история.

Заключение

Если вами интересна данная тема, я напишу более подробно детали реализации. Помните, самое сложное - это начать, проверено на себе.

Источник: https://habr.com/ru/articles/745608/


Интересные статьи

Интересные статьи

Конечно, обычно такие статьи пишут эйчары. Но в этой выражается мнение из другого лагеря – потерявшая берега от конских зарплат в отрасли избалованная общественность (в моем лице инженера техподдержки...
Так бывает, что надо команду передать от одного скрам-мастеру другому (например, в ситуации с переводом, увольнением или уходом в декрет). Я в таких ситуациях была дважды, когда уходила и возвращалась...
Давайте поговорим про Apache NiFi. Этот ETL-инструмент все чаще используют при загрузке данных в хранилище, правда, не всегда по назначению. Об одном из таких сценариев я рассказывал на конференции Sm...
Об IaC под Windows пишут мало, потому что DevOps/SRE ассоциируется в основном c Linux и Kubernetes. Мы решили исправить эту ситуацию и сравнить инструменты, которыми можно управлять IaC н...
Angular — это достаточно большой фреймворк. Задокументировать и написать примеры использования для каждого кейса просто невозможно. И механизм внедрения зависимостей не исключение. В...