Эта история о том, как я строил мобильного робота платформу и о дальнейшей судьбе моего «NanoBot-a»…



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

И родил я вот такой прототип:



Рама из профильной трубы квадратного сечения 25х25мм. А её габаритные размеры 500х500х300 мм. Ну да, мыслил я тогда масштабно… Двигать эту штуку должны были два мотор-редуктора от стеклоочистителя автомобиля УАЗ, ведущие колеса от маленького детского велосипеда, а спереди стояли два флюгерных колеса. И строился этот гигант в квартире.

В виду того, что планы по алгоритмам поведения были «наполеоновские», на борту робота должен был стоять полноценный компьютер, на mini-ITX денег не было, и я нашел обыкновенный PC на маме ATX. Все это вкарячил во внутрь и до кучи еще два гелиевых аккумулятора, обшил все трехмиллиметровым орг. стеклом и в общем и целом штуковина получилась отчасти хоть и красивая, но уж очень большая и тяжелая. Привести в движение у меня ее так и не получилось, так как с электроникой возникли сложности, да и проект я периодически то забрасывал, то вновь начинал заниматься…



В конце концов, я осознал, что данная конструкция сильно громоздка, и так как главная идея все еще оставалась в голове — то было решено начать все заново…

Почти через год я начал конструирование. Тогда я как раз интересовался САПР и пытался самостоятельно их изучать, в итоге сделал чертежи сначала в AutoCAD а уже чуть позже перевел их в 3D ( когда начал изучать КОМПАС 3D). Чертежи и модель выложу в свободный доступ, мало ли кому пригодится или будет интересно.



Чертежи я отдал на один знакомый завод, там мне за пару бутылок водки изготовили раму (Россия – за что и дорога). По габаритам она была уже меньше предыдущей 300х300х200, и изготавливалась из двадцатого уголка. Дополнительно были вырезаны ЧПУ лазером пластины для крепления двигателей и контейнер под укладку двух 12 вольтовых аккумуляторов.



Так как все это делалось достаточно долго, рама успела заржаветь, в последствии, я отдал ее на порошковую покраску. К двигателям напрямую через дополнительные полуоси, установленные в шарикоподшипниках, крепились колеса диаметром 125мм. Спереди установил одно маленькое флюгерное колесо. Обшить раму решил железом, тогда это казалось более технологичным, чем вырезать из орг. стекла, так как я знал контору где резали сталь на ЧПУ, да и покрасить потом можно было бы в любой цвет…









С рамой вроде все понятно, перейдем к электронике. Управлять роботом планировалось удаленно с PC, и на борту робота тоже планировал поставить что-то из мелких компов. К тому времени я уже умудрился подрезать у родственника старенький нетбук ASUS, по размерам он идеально вписывался в верхнюю часть робота над аккумуляторами. Но для управления роботом одного нетбука недостаточно, для этого потребовалось купить еще три платы от «Open Robotics», плата на основе микроконтроллера AVR для управления и сбора данных OR-AVR-M128-DS, плата для связи с нетбуком OR-USB-UART и силовая плата драйвер OR-MD2-10A-12V-X, сейчас бы я конечно сделал все на ардуино, но тогда это было не настолько популярно, да и эти модули были разработаны специально для роботов-тележек. К управляющей плате планировалось подключить несколько датчиков дальномеров, пару энкодеров, планировал управлять несколькими сервомашинками для изменения угла сканирования дальномеров. Хотел сделать дальномер на основе лазерной указки и видео камеры. Но до этого так и не дошло, все ограничилось подключением электроники и написанием простенькой программки для управления. Управлял удалённо используя программу TeamViewer. В моей программке было простое соединение с портом, окно приема передачи данных, строка ввода скорости (ШИМ в процентах), и несколько кнопок направления движения.




В итоге из-за непоняток с электроникой проект остался без должного внимания, занимался им раз в крайне редко. Со временем понял, что разработку жалко выкидывать или убирать в гараж. Решил продать за символическую стоимость. Подумал, что наверное есть люди которым это тоже интересно, которые лучше владеют электроникой и программированием, может кто то занимается отработкой каких то алгоритмов поведения/ движения, ну или кому-то просто нужна рекламная платформа в выставочный павильон или магазин (ноги конечно он поломать мог).

Продал целиком вместе с электроникой, аккумулятором, нетбуком, дальномерами, сервами (прямоугольные вырезы с двумя отверстиями в нижней и верхней круглой крышке под сервы MG996r), дисплеем 16х2, и парой светодиодных матриц (квадратные вырезы в листе передней облицовки как раз под них).



Как я понял, человек купивший мою платформу робота, дал ей вторую жизнь.Я был рад, что эта железяка будет жить. Это было в 2016 году, и путешествие началось из славного города Иваново, в город-герой Тулу.

Однако буквально недавно со мной связался третий хозяин и сообщил, что теперь платформа у него (Калининградская область). Видимо у первого покупателя что-то пошло не так… Связавшийся со мной человек меня не разочаровал, но платформу ему передали без некоторых сопутствующих компонентов, ну а в остальном вроде все цело, ха не мудрено, так как обшивка робота сделана из металла 1,5 мм толщины, ему в пору в боях роботов участвовать…

Робот получил некоторый апгрейд, и вот что написал про это новый обладатель:
«Приехала ко мне платформа. Путем некоторых манипуляций был поставлен 10 Ач 12В аккумулятор, добавлен роутер TL-MR3020 с кастомной прошивкой OpenRobotisc, вебка Логитек С270 на кронтейней с сервой, микрохаб на 4 порта и конвертер DC-DC для питания роутера. Потом все это было прикручено стяжками, изолентой и прочими подручными средствами. „Он ОЖИЛ!(с) Робоцип“ Адская железная 18 кг дура мечущаяся по маленькой комнате как ошпаренная и способная в лучшем случае сбить с ног, а в худшем переломать ноги… Надо менять колеса на нормальные, менять опорное колесо, нормально закреплять электронику и окультуривать провода. И после всех доделок и доработок этот чудо-ящик сможет гонять по двору пугая кошку и соседа-алкаша. А если поставить китайский манипулятор на 6 сервах — то и лапать предметы можно дистанционно.».





А это уже из самого свежего, последние новости:



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

Что касается названия «NanoBot», то все достаточно просто. Наверное многие помнят огромное количество рекламы (по зомбо-ящику), в которой присутствовала настолько популярная приставка «нано», что и я решил добавить эту приставку в название своего робота, тем более она в полной мере охарактеризовывала его физические параметры.

Комментарии (19)


  1. CybSys Автор
    23.02.2019 16:00

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


  1. maxpivovar
    23.02.2019 16:32

    Солнечные панели, AI и на Марс


  1. VT100
    23.02.2019 16:39
    +1

    1. Пожалуйста проверьте орфографию.
    2. Текст ни о чём.


    1. CybSys Автор
      23.02.2019 18:03

      1. поправил.
      2. не завидуйте :)


      1. FForth
        23.02.2019 18:11

        2. Действительно ни о чём!

        Краткое содержание статьи:

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

        Профит! :)

        P.S. STM32, например, не рассматривали как замену Ардуин подходу?


  1. conopus
    23.02.2019 17:36

    "Гелиевые" аккумуляторы?


    1. CybSys Автор
      23.02.2019 18:03

      поправил :)


  1. rPman
    23.02.2019 21:32

    Почему зачастую роботостроители стараются делать свои машины полностью автономными?

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


    1. vasimv
      24.02.2019 08:41

      А нет вариантов для доступных каналов связи для подобных систем. Там нужен какой-никакой реал-тайм, да еще и довольно развитые и не шибко медленные протоколы. Bluetooth просто медленный и на малом расстоянии только, у wifi латентность прыгает в больших пределах, а из протоколов есть только ROS, который, прямо скажем, сильно перегружен и крайне неоптимален во многих местах.


      1. rPman
        24.02.2019 11:15

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

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

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


        1. vasimv
          24.02.2019 21:09

          Ну, вот берем IMU — нужно данные компаса/акселерометра/гироскопа передавать модулю навигации несколько десятков (а лучше сотен) раз в секунду. Коррекция PWM моторов — тоже минимум 10-50 раз в секунду. А это, в общем-то, почти 90% от всех задач езды. Так и получаем, что либо локально все обрабатываем и считаем (да еще придумываем свой протокол для выдачи команд), либо нужен поток с гарантированным временем доставки и протокол соответствующий, что гораздо сложнее. Возьмите тот же ROS, где все пытаются считать «удаленно» — сложность во многих местах просто зашкаливает, спасает только то что благодаря открытости — многое уже в готовом виде есть.


          1. rPman
            24.02.2019 22:12

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

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

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

            То же самое для манипуляторов, вы передаете, например, последовательность векторов углов для сервомоторов с ограничениями (время, возможно ответы от датчиков, например концевики и прочее) а локально процессор последовательно исполняет эти векторы углов для всех указанных сервомоторов одновременно.

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


            1. vasimv
              25.02.2019 03:13

              Ха. Выяснить текущие координаты робота — это вообще 99.5% от всего процесса. Помимо того, что большинство простых самоделок этого просто не умеют (нечем физически обычно), чтобы их посчитать — как раз и нужно все обрабатывать на роботе, так как даже просто видеопоток от камер по wifi прогнать с приемлимой задержкой (хотя бы не больше 100-200 мс) — это серьезная проблема.


              1. rPman
                25.02.2019 06:33

                А вы не ставьте камеру на робота ;) это худшее место для этой задачи, ее сильно трясет, малый обзор и сложность анализа.

                Координаты и положение.
                Расставьте камеры в помещении, чтобы они покрывали всю область, в идеале по две камеры на каждую точку. Например это qr-код на спинке робота и 3-4 отражателя выставленных в углах куба (для точного определения угла поворота) и внешние камеры, после калибровки можно вычислять координаты с точностью меньше сантиметра, и не важно что лаг будет до секунды, у каждой координаты будет временная метка, передаете их поток на робота, где на их основе корректируется вычисление координат на основе акселемометра и гироскопа.


  1. Guronn
    24.02.2019 18:04

    почему вы не используете мотор колеса от гироскутера? Получается же компактней, за счет что мотор уже в колесе (стоят 900р, или купить убитый гироскутер.)


  1. aslepov78
    25.02.2019 11:18

    Мда… ни я один с ума схожу. Мне кажется это какая то болезнь… синдром ДаВинчи… все пацаны хотят своего робота, своего маааленького терминатора )


  1. Ranburu
    25.02.2019 19:39

    Жесткий у тебя НАНОбот, с пропорциями метр на метр


  1. dlinyj
    26.02.2019 12:31

    Я думал, что я один такими глупостями занимался в молодости :)


  1. igorkozinov
    26.02.2019 13:13

    А потом он подъедет и скажет — «Мне нужна твоя одежда и твой мотоцикл»…