Моя история погружения в изучение робототехники и создание робота с помощью 3d принтера. Ошибки, с которыми я столкнулся и что хотел-бы получить в итоге
Предыстория
Лет 10 назад, на первых курсах университета, узнав о существовании Arduino и научившись заказывать товары из Китая, я заказал себе стартовый набор Arduino Mega и начал, как и все, учиться мигать светодиодом. Я получал дикий восторг от того что могу не только програмировать и получать какие-то решения на экране компьютера, а могу делать какие-то устройства, которыми могу облегчить быть. Начал думать о IOT до того как узнал о таком понятии и время от времени думал чтоб такого полезного реализовать. Первым проектом на Arduino, который я для себя считал оконченным, был контроллер для террариума с пауком. Экранчик, несколько кнопок для управления, датчик температуры и влажности DHT11, автоматизация подсветки, обогрев с помощью шнура для инкубатора и все. У меня уже был опыт работы с паскалем в школе, мне нравилось программирование но я не хотел связывать с ним жизнь напрямую, для меня это было скучно, и я заведома пошел учиться на инженерную специальность, если точнее то Информационные технологии проектирования в НТУ «ХПИ».
Обещали супер продвинутое направление, передовые технологии, рассказывали насколько востребованы такие специалисты и заманивали яркими картинками расчетов в Ansys, Solidworks и остальных программных комплексах. На самом деле, сейчас, через 6 лет после окончания ВУЗа, я могу сказать что ни капли не жалею что выбрал данное направление для себя. Много чего конечно было не так как описывалось при поступлении, но на 3 курсе я все-таки дождался предметов, которые мне нравились. Я увлекся изучением CAD систем, на одной из олимпиад получил сертификат CSWA от Solidworks, вообще не напрягаясь и не готовясь к этому. Но после окончания ВУЗа я получил офер без опыта и особо знаний в программировании на должность .NET разработчика под проекты связанные с интеграцией плагинов в Solidworks. Потом 6 лет работы с .NET в нескольких компаниях, с разными направлениями, попытка работы удаленно с криптовалютами и т.д. но мне это все не приносило удовольствия. Время от времени я понимал что мне нравится процесс автоматизации обыденных процессов, но никак не мог придумать что бы такого сделать, чтобы не просто поиграться, а что-то реальное и полезное. Годы шли, универ несколько лет как окончен, свободного времени так и не появлялось, но как-то в преддверии ремонта я решил что вот этот шанс применить свои знания и попробовать сделать что-то действительно полезное, и занялся разработкой умного дома. Немного освежил знания о нынешней ситуации в микроконтроллерах в мире, узнал о существовании ESP8066 с Wifi на борту, когда-то украинском стартапе Blynk, дающий возможность условно бесплатно получить приложения для управления устройством с телефона, без опыта и знаний о разработке софта под телефоны. Через нескольких месяцев я получил прототип, собранный на макетке, но стабильно работающий. На первое время для проверки так и оставил в виде модулей, прикрученных в распредкоробках. Хотел бы написать что после тестов в реальных условиях развел плату и собрал все нормально, но нет, третий год все работает стабильно поэтому и не лезу что-то переделывать. Из полезного для меня в этом всем я получил возможность экономить электроэнергию автоматически включая основные потребители такие как бойлер, посудомойку, стиралку по ночному тарифу. Мониторинг температуры в каждой комнате и соответственно управление обогревом в каждой комнате. Там-же реализовал контроллер теплого пола и освещение на улице. 3 года назад все это решение мне обошлось примерно в 50$ с учетом того что столько стоит только нормальный контроллер для теплого пола. 3 года работы этой всей системы дали мне уверенность того что микроконтроллеры действительно можно использовать для разработок и они могут стабильно работать.
Первые попытки построения робота
Несколько лет назад я все-таки решился и выделил себе бюджет на хобби, купив 3D принтер. Фанерный клон Ultimaker сразу же начал допиливаться руками, были доделаны дверцы и короб из акрила для печати ABS, и я стал понимать что с принтером уже можно разрабатывать что-то более серьёзное, движимое и интересное для меня. Помня еще из детства передачи по телевизору с боями роботов я решил, а почему б не сделать себе что-то интересное. Сходил на фестиваль робототехники, загорелся этой идеей еще больше. Начал смотреть проекты роботов на thingiverse и понимал что это все не то, чужие разработки в основном скучные и обычные, отсутствие исходников и все-таки «ЯЖИНЖЕНЕР». Хотелось что-то с необычной механикой, а не просто колесная база. Захотелось реализовать механику подобную роботу при загрузке Solidworks.
Тот самый робот, который стал одним из вдохновителей
Посмотрел подобные конструкции, понял принцип работы и держал в голове мысль сделать что-то похожее. Первой главной ошибкой было решение что все просто, буду постепенно моделировать, печатать и проверять готовую конструкцию, не имея полного представления что и как будет устроенно, как будет управляться, какие модули будут использоваться. Как-же сильно я ошибался. Изначально, я понимал что робот будет делаться «на вырост», планировал на этом роботе использовать всякие распознавания объектов с помощью OpenCV, какая-то навигация, автоматический паркинг на зарядку, одним ESP там не обойдешься. Изначально закладывалась идея использовать ESP32 для работы с механикой и RaspberryPi3 для работы с логикой, камерой, звуком и т.д. Одним из необходимых для меня условием была автоматическая подзарядка, соответственно нужно было придумать как реализовать питание. Так-как с электроникой/электротехникой опыта особо у меня не было, сначала я пытался использовать подобие Powerbank с возможностью работы в режиме ИБП. Работа от АКБ (в моем случае 8 элементов 18650) когда нет внешнего питания и подзарядка этих-же элементов и работа от сети когда робот паркуется на зарядку. Вобщем было много попыток собрать все вместе и заставить работать, но я понял что нужно или учить матчасть или обращаться за помощью. Из-за постоянных изменений всяких модулей и плат все уже не помещалось в корпус робота и в какой-то момент я понял, что пора все переделывать.
Первый вариант конструкции с напечатанными гусеницами одним ремнем и сервой для проворота передней части гусениц
Первые работы над ошибками
После участия в вебинаре по робототехнике я познакомился с человеком, который занимается разработкой плат и для себя решил что мне проще набросать какое-то ТЗ и получить какое-то решение от человека, который разбирается в проектировании плат и разработке устройств. Параллельно я начал работу над новым корпусом примерно посмотрев на свои косяки в прошлый раз. И тут я очередной раз наступаю на те-же грабли до конца не понимая как будет выглядеть вся электроника, какие у нее будут размеры и как я это все буду размещать. Мы обсудили о том что это будет модульное решение, у меня были некоторые платы, например драйверов двигателей, батареи и я начал заново моделировать проект, но уже полностью вырисовывая каждую плату с посадочными отверстиями, выходами проводов, радиаторами и т.д. чтоб опять не столкнуться с проблемой нехватки места. На самом деле я был ограничен размерами области печати в 200*200*200мм и этот вариант корпуса я пытался сделать вообще из одной детали, на печать которой уходило около 400г пластика и несколько суток печати.
После нескольких попыток с появляющимися на вторые сутки трещинами, отлипаниями от стола я понял что сборный корпус не такая уж и плохая идея. Процесс переделывания какой-то из деталей занимал бы намного меньше времени и мороки с принтером будет намного меньше. Получив через время комплект разведенных плат со всеми моими пожеланиями я научился работать со сдвиговыми регистрами, мультиплексорами и хоть как-то начал разбираться в непонятных для меня схемах и устройствах. К тому моменту я уже очередной раз полностью переделал механику. Изменил принцип вращения передних «лап» с сервопривода на двигатель с червячным редуктором, Ушел от идеи печатать из резиноподобного эластана ремни для гусениц и переделал их под обычные сборные пластиковые гусеницы, собранные на гвоздях и наклеенными на них протекторах из эластана. Изначально была продумана система вентиляции, которая забирала воздух сзади снизу робота, через систему вентиляции проходя через все платы, трубки, в которых прокинуты провода в «голову» и выдувая из нее горячий воздух. И эта система вентиляции в какой-то момент времени даже работала, но потом опять все перестраивалось поэтому мне проще было распечатать крышку с кучей прорезей и пассивной вентиляцией.
Что есть на данный момент
На выходных в Днепре прошел технический фестиваль Interpipe TechFest, на котором я решил показать людям то что сейчас есть у меня, послушать мнение других и пообщаться с однодумцами. Там я очередной раз услышал о том что можно было б и написать где-то например на Хабре и получить какой-то отзыв от людей.
По факту для меня это платформа, на которой я буду учиться работать с ROS, пытаться ориентироваться в пространстве, отстраивать кару, попробую поработать с твердотельным лидаром, который жду с кикстартера, хочу прикрутить что-то типа стереокамеры realsense. Я понимаю что мозгов малинки мне скорее всего не хватит и со временем я перейду на что-то более мощное.
Сейчас этот робот может использоваться в качестве «домашнего сторожа». Пока управление устроенно через все то-же приложение Blynk. Он оснащен купольным сенсором движения, камера с возможностью включения/выключения ИК фильтра, ИК подсветка. Активировав с телефона режим охраны, я получаю уведомление на телефон. Могу включить RaspberryPi 3, запустить стримминг, стримминг + запись видео, сделать фото, которые отправляются мне на почту. Могу поехать посмотреть что там происходит дома и вернуться на зарядку на докстанцию.
Самосборная батарея 4s2p из модулей 18650 на 3200mAh каждая дает мне примерно 8 часов езды без подзарядки с всем включенным оборудованием и передачей видео и без какой-либо оптимизации энергосбережения. Пока до этого руки не дошли. С помощью Google TextToSpeach написав в терминал этого приложения, робот озвучивает текст. И это все с любой точки мира где у меня есть подключение к интернету.
Немного «жести» внутри
Так выглядит UI управления на телефоне
Что дальше и зачем я это все пишу
Вообще, целью посещения выставки было найти новые знакомства с однодумцами, готовыми начать что-то делать связанное с робототехникой. Мне надоело работать просто программистом, писать десктопные приложения, это уже не так круто как казалось когда-то и я считаю что это направление постепенно загибается. Вместо того чтоб переучиваться на WEB разработку я решил кардинально поменять направление и связать свою жизнь с робототехникой и IOT, которые мне действительно нравятся. Для себя я решил что работая на работе, не связанной с этим направлением у меня не хватает на все времени. Я должен выбирать между тем что нужно и тем что нравится и хочется, подкопил немного денег, ушел с работы и начал все это изучать.
У меня есть несколько задумок на тему робототехники, основная из которых связана с сельским хозяйством, основанная на компьютерном зрении, картах глубины, распознавании объектов и т.д. Я понимаю что работы очень много и сейчас я только начал разбираться с ROS. У меня есть знания в инженерии, умения работать с CAD/CAE системами и в принципе все реально сделать и самому, но понимая сколько работы нужно сделать по механике, разработке, просчетам и полностью научиться работать с ROS, картами глубины, сенсорами, ориентировании в пространстве и довести это все до ума самому будет очень сложно. Поэтому я ищу несколько человек. которые готовы серьезно заняться работой над этим стартапом и стать одними из сооснователей. Само собой я не могу обещать, что все будет круто и через пол года наш стартап будет приносить нам кучу денег, но пока эта ниша не переполнена можно пробовать что-то реализовать на уровне первого прототипа и с ним уже выходить на акселераторы, краудфандинговые площадки и как-то рекламировать себя.
Также я готов к рассмотрению предложений в данном направлении. Готов работать с кем-то над чьим-то стартапом, или не обязательно стартапом а просто разработками какой-то компании но в интересном для меня направлении.
Поэтому хотелось бы услышать какие-либо комментарии по этому поводу. Возможно все-таки это кого-то заинтересует. Сам я территориально проживаю в г.Днепр, Украина. Соответственно было б правильней работать над одним проектом в относительной близости хотя б в сотнях километров а не тысячах, но рассматриваются все варианты.
Если есть какие-то вопросы об устройстве моего данного робота готов ответить и обсудить. Так-же на странице facebook есть несколько видео работы работа и его преодоление препятствий
Если что меня всегда можно найти здесь, на facebook или написать мне на почту marchenko.andrii@gmail.com
Автор: marchenko_andrii