Comments 52
Супер проект! Спасибо за рассказ
Есть ли аналогичные решения на рынке? Конечно есть. Но дорого.Сколько стоит ваш? При условии предзаказа когда планируете начать рассылку комплектов или роботов?
Демо (видео) бы вам с хорошим освещением и чистым полом не помешало совершенно точно.
Или хотя бы набор качественных фото для прессы.
MIRO – это не только робот. Это развитые средства […] обучения.Планируется ли приведение «уроков» в готовый для применения вид? Сейчас у вас есть набор «методичек» для самостоятельного изучения, но не готовые разработки школьных уроков.
Про видео на чистом полу — всему свое время). А на робозайца мы наткнулись совсем недавно. И знаете — да и ладно. Название менять не планируем. Привыкли. Злого умысла никакого не было (потому как имя придумали еще несколько лет назад).
Ссылка на сайт есть в тексте. Но на всякий случай: mirorobot.ru
А как из этого собрать конкретный курс под свои задачи — пусть решают пользователи из числа педагогов и методистов.Как вы думаете почему множество проектов, подобных вышему, не добирается до стадии применения в школах?
Вы, возможно совершенно искренне полагаете, что создали решение, на самом же деле вы продаёте набор проблем (речь не программных и технических недоработках), которые ещё предстоит решить, потратив определённое количество времени. Да, всё это кажется «само собой разумеющимся», но увы, не в реалиях школьного образования (не кружков).
При всех ограничениях, недостатках (в том числе стоимости) Lego Mindstorms EV3 альтернатив ему пока, увы, не много.
Присоединюсь к вопросу. Какова получается примерная себестоимость робота включая и не включая 3d-печать. Для печати можно взять средние цены в fab-lab'ах.
Не думали адаптировать свою платформу под что-то утилитарное, вроде пылесоса. Уж очень форм-фактор располагает.
Отвечая на второй вопрос. Любая такая адаптация сразу удорожит робота. Смысл проекта в том, чтобы каждый смог быстро собрать макет (программный и аппаратный) для своего утилитарного применения, будь то робот пылесос или мойщик окон. Ну и обучился по ходу некоторым технологиям с этим связанным.
Раз уж вы не слабо так заморочились на стандартизации модулей, что, в общем-то, имеет смысл, наверно полезно было бы найти подходящую симуляционную платформу и сделать для неё модель вашего робота для отладки алгоритмов, так сказать, in vitro.
Если удастся сделать достаточно адекватную модель, то к развитию программной составляющей проекта сможет подключиться гораздо больше народу.
Можно даже организовать своеобразные соревнования алгоритмов на вашей платформе. Разрабатывается несложная полоса препятствий, публикуется её модель и полный SDK с симулятором в комплекте, разрабатывается регламент турнира и устраиваются отборочные соревнования с очным финалом на реальном полигоне в каком-нибудь спортзале.
Участвовать в таком мероприятии можно даже удалённо, если сделать процесс загрузки прошивки в робота максимально дружественным и автоматизированным.
Мне кажется это бы здорово позволило популяризировать как платформу, так и направление в целом. Может быть и спонсоры на такой замечательный проект подтянутся.
Ниша образования забита чуть более чем полностью во всём ценовом сегменте. А вот дешёвая автоматика для мануфактуры это интересно (хотя тут по всем фронтам работают). Пример такого проекта opentron который потеснил Текан и Бекман (там же и эппиндорф подтянулся) или теже UR-10 которые покупают когда нет денег на куку.
Если так, не проще их количество расширить через i2c?
Вот, кстати, задался тем же вопросом, но в статье не увидел внятного объяснения.
Почему бы вообще не задействовать GPIO RPi для подключения неосновной периферии, а на долю ESP оставить только контроль аккумулятора, управления драйверами двигателей, одометры и самые базовые неотключаемые сенсоры, плюс низкоуровневый веб-интерфейс и канал для связи.
Вообще эволюционный процесс более менее угадывается, если учесть, что RPi изначально не было. Всё таки сделать on-board самопрошивку ESP по вайфай — это, видимо, очень непростая задача, если вообще возможная.
Прошивку esp по воздуху сделать можно. Изначально она и была в прошивке, от которой мы делали fork. Но чтобы сделать telnet сервер, который выступает беспроводным мостом с uart atmega, пришлось выпилить эту возможность — конфликт получался. Но если заморочиться, то думаю это возможно — чтобы и telnet остался и прошивка беспроводная. На esp и так хотим посадить контроль аккумулятора. А вот с одометрами врядли получиться — esp это китайский черный ящик. И как оно там работает по прерываниям, с учетом того, что надо еще и wifi обрабатывать — я лично не знаю.
Что касается gpio на малине, то как расширение каждый волен использовать эту возможность. Но нужно понимать, что это не реалтайм и это накладно (с точки зрения процессорного времени мощного soc, которому лучше бы чем то умным заниматься, а не ногами дергать).
Каждый такой компромисс сам по себе, возможно, оправдан и, наверно, не критичен, но в целом привлекательность и универсальность платформы понижает, а порог вхождения чуточку повышает.
На тех же соревнованиях наличие автоматизированной или вовсе автоматической прошивки по воздуху — это большое дело. В таких вопросах любая автоматизация деплоя бортового ПО и его обновлений — это, иногда, вопрос жизнеспособности проекта, если речь идёт об обучении неопытных и еще не до конца определившихся в своём энтузиазме юниоров. Не Rocket Science прошивка по воздуху. Такие вещи и отличают серьёзные платформы от кустарных поделок.
Да точно так же можно пробрасывать UART через малинку. Какая разница? Просто указываться будет IP малинки, а один из её портов будет перенаправлен на ногу GPIO чтобы дёргать Мегу.
PS Забыл, что в Arduino IDE нет post-build step, тогда пользователю может быть неочевидно.
все коммуникации есть (usb, bluetooth+BLE, WiFi), подключить все те же датчики можно, прошивать по воздуху тоже можно. Модуль двухпроцессорный, ресурсов хватает.
Почему не упоминаете?
Что касается esp32, то тут все не так очевидно. Мы сами долго ломались в этом выборе. Но в итоге остановились на старой доброй Arduino. Причина, которая перевесела в итоге банальна — юзеров ARDUINO наверное на два порядка больше, чем esp32. И в конечном итоге, оправдали свой грех еще и тем, что при желании, мы сами или пользователи, смогут довольно быстро переписать часть arduino и esp8266 под esp32. Все-таки и то и другое живет в одной экосистеме — переписать уровень, назовем его hal, и все.
А каких то существенных преимуществ для проекта от esp32 мы не увидели. Возможно со временем и сделаем какуюто ветку. Но пока не в планах.
Та же платформа Arduino портирована на ESP32.
Хотя, с другой стороны выбор железа не так критичен. Особенно если это собрано как одно целое.
В целом проект хороший. Удачи. Сам как раз нечто похожее сейчас делаю, но у меня немного цели другие.
но ведь связку atmega-esp8266-rapsbery заменит с лихвой один esp32.
плюсы?
-в три раза упрощается схемотехника
-соответственно в три раза упрощается задача «научиться» и «разобраться»
-уменьшается цена конечного устройства
-повышается надежность
-программировать esp32 можно на чем угодно, включая Arduino IDE
считаю, что основной проблемой комплектов для обучения является как раз их сложность и высокий порог вхождения в тему.
родители могут детям купить набор, но не всегда смогут подсказать, как с ним дальше быть…
с такой сложной штукой разве что в спец кружках получится разобраться )
Через пару лет основное ваше занятие будет объяснение семиметровых костылей для поддержания старого кода и старого железа. А потом кровавый апгрейд на нормальное железо с потерей всей истории разработок.
И да, нормальные платформы с ROS в комплекте за деньги вдвое ниже ваших в целом доступны. Вы изобретаете велосипед. Ладно бы велосипед, кто, как говорится, не городил в своё время робота стиля «тазик» с ардуиной?! Но сейчас то какой смысл делать это на столь древнем и маломощном железе, когда железо за гроши есть любое до 64 бит включительно. И если захочется, то и с поддержкой arduino IDE. У вас же даже примитивный робот будет состоять из аж трёх не очень-то связанных процессоров, и основная тяжесть в его жизни будет подружить всех троих друг с другом. Пробовали задать себе вопрос «зачем такие грабли продолжать за собой таскать»?
А так-то, на ум сразу приходят камни от TI, где и ARM в качестве основного мозга, не 8 как у 328й, а целых 32 бита, не 20МГц а целых 1000МГц, и пара сопроцессоров реального времени, документация на это всё, видеокарта худо бедно даже 3D умеющая, дистрибутивы последних версий и не только Linux, и ROS работает из коробки.
И платы за 5к рублей на этом есть с блютузом, wifi, драйверами движков, сервомашинок и энкодеров встроенными уже на плату, ну и зарядкой лития 2S тоже не обделены. Акселерометр, гироскоп, магнитометр, барометр и все возможные интерфейсы на GPIO тоже имеются. 5к рублей, повторю. А есть и подешевле но чего-то не будет из вышеперечисленного.
А если страсть к arduino IDE, то куча же плат от ста рублей и до сотен баксов на STM имеется. Хочешь с wifi, хочешь с драйверами движков или ещё чем. Сотни их. Правда про ROS тут придётся забыть. Зато по цене от ста рублей вы получите камень на порядок если не более мощнее чем сейчас у вас есть. Ну или чудесная teensy 4.0 вышла с камнем Cortex M7 на 600МГц! Чуть дороже тысячи рублей. Вот её хватит даже видеопоток на хост засылать и ещё колёсиками двигать останется. ArduinoIDE для любителей к ней тоже прилагается.
Вы вообще обозревали рынок железа перед тем как госфинансы начинать осваивать?
Спускаемся на уровень ниже. Там у нас atmega328. Старая, ограниченная, но опять же с огромным сообществом, есть в каждой дыре. Там не нужны мегагерцы и мегабайты, чтобы ножками дергать и прерывания от энкодеров обрабатывать. Но там настоящий микроконтроллерный реалтайм (ну потому что ОС там очевидно вообще нет). И ESP для всего этого дела, чтобы обеспечивать удобную беспроводную прошивку и отладку куска с Atmega328.
Вы говорите, что есть прям платформы под ROS вдвое дешевле, но в пример приводите плату. Одну только плату. Я же называл цену и себестоимость на робота целиком. Покажите робота с софтом и ROS дешевле.
Ну и самое главное. Если бы мы разрабатывали микропроцессорную плату новую, то безусловно бы размышляли в вашей логике — выбирали бы камни. Но мы делаем платформу на базе плат и размышляем в логике «чтобы нашлись последователи — платы должны быть популярны, распространены». Ничто на сегодня не способно конкурировать с этой троицей по этому параметру. Разве что stm поставить в место atmega. Но как верно заметил nochkin — при необходимости переписать там все легко. Там весь код, опять же, из этих же соображений — весь на уровне платформы arduino — там скрыты в подвале все aппаратные особенности (исключение лишь пожалуй прерывания — вызовы прийдется переписать).
А вот уровнем ниже у вас абсолютно поперечная малине мега. Со своими клопами. Т.е. чтоб ваш робот освоить надо будет и в малине разобраться досконально и мегу поднять, а шить её вы предлагаете вообще третьим камнем который по сути только для этого и воткнут, не находите весь зоопарк излишним?
Дальше, мегой хорошо управлять парой моторчиков да и то, сложные алгоритмы придётся откинуть на малину, мега их не потянет, а ей ещё датчики держать в тонусе. Добавите пару серв и всё, мега захлёбывается, агрегат виснет. А у вас уже под неё весь софт и куча железа сверху уровнем висит. Да, давайте весь стек из трёх плат заново пересобирать и дружить. нормально? Это только кажется что ножками дёргать и энкодеры обрабатывать ничего не надо, как только режим работы будет чуть сложнее чем прямо медленно ехать — сразу поймёте что сил меге не хватает даже шимить прилично в пару движков.
Да я привёл плату, но не в двое, а втрое дешевле. На ней есть и кит сразу ездящий и имеющий ROS на борту, а так же всю ту кучу железа что я перечислил в подарок, у вас эти датчики отсутствуют и будут за доп деньги, т.е. их не будет почти ни у кого. По сегодняшнему курсу кит стоит 8к рублей. Оно ещё и само балансирует, т.е. явно посерьёзнее выглядит. И аккумулятор к нему приложен. И моторы. всё в той сумме. И это только один вариант, явно есть и ещё, мне просто не интересно было копать, я же не собирался с нуля разрабатывать «своё уникальное лучше всех».
Не надо разрабатывать платы, сейчас их реально сотни. Вы выбрали «троицу» и решили все три в кучу собрать. Ничего что ваш робот сразу втрое сложнее стал, надо быть крепким энтузиастом чтоб сразу в трёх абсолютно разных платах с разным софтом разбираться.
Успехов вам с «переписать всё легко». Вам надо поддерживать вместо одной версии софта — три разных прошивки трёх плат. И ещё следить чтоб разные версии друг друга любили, все втроём. Замена любой из этой троицы будет отличным квестом в будущем.
Данные с датчиков будут загадочно путешествовать сначала на мегу, где и без них сил впритык моторами крутить, с неё на ESP? оттуда по воздуху в роутер если я правильно уловил суть вашей задумки, а с него на малину и там уже попадать в ROS. Обратные указания сервомеханизмам пойдут такой же дорогой. Куча мест где всё это будет глючить, задержка данных тоже получится отменная.
При этом от датчика до малины по прямой пару сантиметров. Инженерный дизайн устройства — так себе.
какой смысл написанный для 8 бит с жёсткой экономией всего чего можно (потому что ресурсов в меге прямо скажем мало было даже по меркам десятилетней давности) код вообще переносить, он весь будет из компромиссов и завязан на AVR если там сложнее чем помигать диодиком.
Получив в распоряжение несколько сот или тысяч МГц в новом проце, память мегабайтами, а то и гигабайтами или божественные счётчики от STM или сопроцессоры реального времени от TI, какой вообще смысл старый код от 328 даже пытаться переносить? Придётся всё писать с нуля так тупо быстрее будет и заработает сразу, а не когда-нибудь. Ну так вот уже можно начинать, 328 мега была отличная лет 20 назад, лет 10 назад была уже так себе, лет 5 назад только по привычке можно было использовать, а сейчас уже только под принуждением. И вся кодовая база написанная для неё увы помрёт вместе с ней. Как у Интела, который тянет x86 от динозавров, тут не выйдет, некому тянуть, Atmel отмучалась, а Microchip-у это не впилось никуда чужую баржу с ненужным хламом тащить забесплатно.
Там у них от кода требований как кот наплакал изначально. Почти любого популярного контроллера хватит.
То есть, один и тот же код можно сделать так, что бы он работал одинаково хоть на меге, хоть на ESP. Не надо будет с нуля писать.
Кстати, на многие Microchip МК тоже Arduino перенесли. Там тоже код особо менять не надо.
Потому Arduino и хорошо, что можно в некоторых случаях достаточно легко абстрагироваться от железа. Тут вполне можно сделать как раз этот случай.
Они же не используют GPIO на Pi. Тогда вообще Arduino не нужно, но если взять другой SoC, то надо будет почти с нуля переписывать.
Будет здорово, если мы с авторами воплотим их результаты на MIRO.
Спасибо, что позвали. Воспользуюсь, чтобы добавить свои 5 копеек.
Выглядит красиво, на ощупь, наверно, тоже хорош. Безусловно, в текущих реалиях, когда покупатель гонится за внешним видом, но не начинкой, будет иметь определенный успех.
Теперь 5 копеек.
Попытка охватить слишком широкую аудиторию, с маркетинговой точки зрения, может плачевно закончиться. Для школьников связка esp+arduino+raspberry может оказаться тяжелой ношей, для энтузиастов, к которым скромно отношусь, пока слабовато.
Почему слабовато?
Конструктив.
Многократно приходится что-то выпаивать-впаивать, подключать-отключать — постоянно лезть в корпус с жалом неудобно. Даже если он модульный. Куда вешать доп датчики? Лидар куда прикрутить? Крепежи raspberry и держателей аккумуляторов под болт m3 не так длинны для пластика на картинке. Куда положить повербанки для raspberry? На кронах для движков можно разориться — лучше 18650, с защитой от переразряда. Колеса с датчиками Холла (они?) (Кстати, почему никто не производит колеса !?) хороши, но надо предупреждать, что там два вывода вместо одного и энкодеры отлично горят, если их повесить на 5V ардуино вместо 3,3. Клиренс днища надо поднять, а то даже ковер не по силам будет. Как поменять колеса на omni-wheels? Это уже следующее слово. Дифференциал, видите ли, медленно разворачивается.
*Вообще, в этом плане хорош советский конструктор, из которого можно все, что угодно слепить, только успевай изолентой обматывать металлические части.
esp8266, которых целое семейство, очень активно развивается. В связке (raspberry+arduinо) он не нужен. Шить arduino можно удаленно с raspberry.
Многие здесь критикуют ардуино. Захлебывается, мол. Со всей ответственностью заявляю — не захлебывается ) А если серьезно, то линейка активно развивается store.arduino.cc/usa и для старта весьма неплохой вариант. Кроме того, спалить ардуино, это спалить 300 руб., не более.
*вряд ли стоит гнаться за производительностью на самом роботе. Практика показывает, что без связки робот-desktop(laptop) сложно.
**хочется что-то еще. Давайте продумаем превращение его в паука, робокота, руку сверху ему поставим, telepresence из него сделаем. только не робот-пылесос.
Документация.
Хотелось бы, чтобы образы под raspberry, прошивки под arduino, lessons лежали в одном месте в будущих релизах (как и ссылки на них в посте). В lessons побольше бы картинок. А сами lessons хороши бы с вау-эффектом. Как у Adriana (специалист по opencv) — смотрите, можно сделать так, сделаем! Вряд ли кто-то вдохновится сборкой opencv, которая на raspberry без make -j4 (у вас make) может занять несколько часов.
Поддержка.
Если робот на руках и пользователь застрял на этапе Unit 4… предположим. Куда и кому он пишет? В той же Robot Ignite Academy сидят товарищи, которые худо-бедно, с задержкой день-два, но отвечают на вопросы. Поддержка первостепенна. Не каждый готов перепахивать stackoverflow, а уж тем более выправлять чьи-то мануалы (это вам, Robot Ignite Academy).
Не стоит всем этим сразу загружаться. Это практический взгляд со стороны, который, надеюсь, поможет.
Просто не бросайте проект, зная, что роботдинамекс уже выпустил собаку.
*Путаница с miro из ROS может помочь с продвижением, но и оказать медвежью услугу в перспективе.
Акум там сейчас как раз спаренный 18650. Но есть место добить до Li-Po примерно на 2500 мАч. Не густо, но все же.
Уроки по малине там уже outdated, готовим обновление — этой всей сборки там не будет. Ман по приготовлению образа будет отдельным документом для тех, кто захочет узнать как этот образ готовить. Для всех остальных будет готовый образ.
Что касается поддержки, то наша поддержка в ближайшей перспективе будет опираться на очевидный факт: это в первую очередь pet-проект, тут не понятна до конца ни ценность, ни бизнес модель. Со временем это все наверное устаканится, мы соберем обратную связь, посмотрим на потребности пользователей, присоединившихся разрабов. и тогда что-то станет более понятно. Кастомер дизайн, кароче. Неспешный. Но проект бросать точно не собираюсь. Он мне в удовольствие. И уже довольно давно.
Про Robot Ignite Academy я вообще первый раз слышу. Как это работает?
«Давайте продумаем превращение его в паука, робокота...» — есть желание на робокота. Несмелый план. Но не хочу всех дергать и себя пока не получу из того что есть некоторый более или менее законченный девайс. А потом можно и робокота. В команде один из ребят имеет опыт в пауках и мы с ним обсудили по поводу робокота. Т.е. оставить ту же примерно программно-аппаратную модель, но сделать другого робота. С учетом уже большого количества наработок — время разработки должно сильно сократиться. Симпатичен opencat в первой, неопубликованной версии, но хочется еще круче.
Adrian, ода, он крут. Я в блокнотик себе записал «написать ему письмо». Мы ему даже робота готовы выслать).
*вряд ли стоит гнаться за производительностью на самом роботе. Практика показывает, что без связки робот-desktop(laptop) сложно. — это мы уже тоже проходили. rviz все-равно на десктопе, как не извращайся.
«Кстати, почему никто не производит колеса !?» — особенно огорчает отсутствие нормальных опорных омни колесиков. Мы даже свое изобрели, но пока в качестве эддона.
«Шить arduino можно удаленно с raspberry» — компромисс, дело вкуса. Мы в малине вообще X-ы не ставили, а заморачиваться командной строкой ну такое себе для пользователя.
Вообще, спасибо гигантское за такой комментарий!
*Присоединяйтесь к российскому ROS сообществу. В телеграм — rosrussia meetup 2019.
Мы в малине вообще X-ы не ставили
Так и правильно. На кой леший роботу на борту GUI?
а заморачиваться командной строкой ну такое себе для пользователя.
А вот тут вы совершенно напрасно пренебрегаете командной строкой.
С ней новичку даже проще, поскольку легко явно описать набор команд и ожидаемый результат. С GUI придётся что. скринкаст записывать? Легко промахнуться или что-то забыть.
Прелесть командной строки в том что можно сделать скрипты для всего и всё сведётся к запуску пары команд.
огорчает отсутствие нормальных опорных омни колесиковИ на Али нет? Мне казалось, там есть все. Вот недавно даже про целого Cheetah писали: habr.com/ru/news/t/472370.
Не посоветуете, есть ли такое устройство (ну или в каком направлении вести разработку)? Пока самое близкое, что нашёл, это набирать конструкцию из Лего, для входа — Lego Technic. Ну или советский конструктор из планок с дырками. Очень лениво печатать или гнуть-резать-сверлить для быстрой проверки идеи.
MIRO — открытая платформа indoor-робота