Робот-тележка на ROS.Часть 1. Железо

  • Tutorial
Посты серии:
8. Управляем с телефона-ROS Control, GPS-нода
7. Локализация робота: gmapping, AMCL, реперные точки на карте помещения
6. Одометрия с энкодеров колес, карта помещения, лидар
5. Работаем в rviz и gazebo: xacro, новые сенсоры.
4. Создаем симуляцию робота, используя редакторы rviz и gazebo.
3. Ускоряемся, меняем камеру, исправляем походку
2. Софт
1. Железо

Начав изучать ROS (Robotic operation system), сначала поражаешься, как тут «все сложно», от количества информации про топики, ноды,actions голова идет кругом. И, первое желание — вернуться в управлении роботом на старые добрые скрипты. Но нет. Каждый взрослый мужчина должен собрать для мужчины поменьше что-то, что бы ездило, мигало, пищало. В качестве платформы была выбрана ROS, так как все же это следующий шаг в развитии роботов в мире бездушных ардуино. Предлагается собрать ROS «тележку», которая будет не только дешевая, но и функциональная: сможет поехать по линии на полу, вашим котом, вашим телом :) Первые шаги будут такие:


Еще немного лирики


Второе, что поражает при изучении ROS — стоимость платформ на рынке. Комплект turtlebot burger (как один из доступных по цене) — 549 $ (34500 р.). Все остальное еще дороже. Здесь можно возразить, что львиную долю цены составляет lidar, устройство для определения положения робота в пространстве. Который сам по себе стоит под 15к р. Однако, все остальные компоненты также не дешевы.

Посчитаем, во сколько обойдется нам наша «тележка»:


Итого: 8000 р.

Цена также велика, но на порядок дешевле turtlebotа. При желании, машинки можно напечатать на 3d принтере или взять кусок фанеры. Тогда останется только DC моторы взять. Аккумулятор для raspberry также можно заменить более дешевым аналогом, главное, чтобы он выдавал 5V 3А.

Собираем

За основу проекта был взять ранее существующий проект — www.rosbots.com/build_it, но со значительными доработками. Кроме того, базовый проект, судя по информации с сайта, был заброшен, поэтому придется все доводить до ума самим.

Начало сборки и крепеж моторов аналогичен вышеуказанной инструкции:



Здесь надо обратить внимание на энкодеры, которые монтируются таким образом, чтобы они «накрывали» диски с прорезями, одетыми на моторы:



*Вообще энкодеры не сильны полезны и можно их не крепить. Оптические энкодеры позволяют определять пройденное расстояние, но к сожалению, не позволяют определить направление движения.

После монтажа двигателей и энкодеров (по желанию), соединяем провода с с ардуино uno, драйвером двигателя, батарейным отсеком из 2-х аккумуляторов 18650. Схема соединения аналогична, размещенной на сайте базового проекта за одним исключением:


5V для энкодеров можно взять с arduino (VCC от Right speed sensor и Left speed sensor на 5V arduino).

Крепим arduino и драйвер двигателя, питание для драйвера:



Лапша поближе:



Драйвер двигателей. На клеммы зеленого цвета — пары проводов от двигателей:



Arduino у нас не будет питаться от батареек, она будет в дальнейшем соединена по usb с raspberry.

Ставим второй слой машинки


Здесь будет располагаться батарейный отсек, raspberry pi, камера на деталях из советского конструктора:



Не забываем правильно воткнуть шлейф от камеры в raspberry:



Советский конструктор в деле:



Закрываем бургер, третий слой «тележки».



Здесь будет ездить powerbank для raspberry:



*Немного о powerbank для питания raspberry pi:
картинка

:

Все, машина готова!



В следующих постах поговорим уже непосредственно о ROS, линиях, теле, котах и улыбках.

Советы и беспощадная критика приветствуется!

*уточнена электросхема.
Поделиться публикацией

Похожие публикации

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 38

    0
    Ваш КЭП! По линии робот так и не поехал.
      0
      позднее поехал точнее, это раннее видео. просто этот вариант забавней, «воспоминания о линии».
      0
      на видео значительная задержка сигнала
        0
        это кривой монтаж при наложении двух окон, рассинхрон.
        0
        Подобное и я делал. Остановился на чём-то подобном, полностью разочаровавшись в машинках без рулевой рейки и не найдя какого-нибудь готового варианта платформы «с рулением» (гусеницы изначально не планировались, а всякие колёса-мекарумы уж больно недешёвы).
        Вот ROS, если вы будете толком объяснять что к чему — это будет очень интересно.
          0
          Читал вашу статью ранее, спасибо. Из нее мне было интересно в частности про защиту аккумуляторов. Аккумуляторы дохли по неясным причинам. Теперь я нашел более простое решение (без пайки) на али — ru.aliexpress.com/item/32919634014.html.
          Однако, собирать только на ардуино, в моем случае не совсем то, что нужно. Хотя под ROS и только ардуино есть хороший проект из «ROS for Absolute Beginners». Если все собрать правильно, то получится вот такой zoldaten на arduino mega —

            0
            С аккумуляторами интересное решение. Можно в параллель набрать такими ячейками нужную мощность, особо не заботясь о контроле при заряде/разряде. Только при разряде такой батареи, когда «закончится» аккумулятор с самой маленькой ёмкостью (а при интенсивной эксплуатации он рано или поздно появится), нагрузка на остальные возрастёт ступенькой — как только отключится одна ячейка. Возможно в каких-то случаях это надо учитывать (заботливый китаец предупредил нас о том, что всё это для питания устройств не более 5 Вт, но если сделано на совесть, то конструктивно думаю без проблем больше в 2-3 раза можно снимать, вопрос только в том, сколько может отдать преобразователь), например, заведя телеметрию о работе ячеек на контроллер. Кстати, контакты не пружинные, а пластинами — это хорошо, т.к. позволит снимать приличные токи. А то бывали случаи, когда тоненькие пружинки нагревались, проплавляли пластик и батарея самоотключалась)

            Думаю читателям про ROS будет интересно. У меня-то у самого руки до неё так и не дошли.
            0
            > не найдя какого-нибудь готового варианта платформы «с рулением»

            А машинки на радиоуправлении чем не устраивают?

            > мекарумы

            Это вообще что? Гугель и яндекс выдают либо упоминания в вашем же исполнении, либо вот такое из разряда НЕ КАЧАЙТЕ ПОСОНЫ ТАМ ВИРУС: retro-kontrastnyj.begcom.ru/suhoy/robot-mashina-s-338.html
              0
              Машинки сбалансированы по весу, на них много чего не поставишь. А хочется такую хорошую суровую платформу. Мы собирались свою сделать, но там не заладилось с механикой, а потом и вообще всё заглохло.

              Извините, я опять написал «мекарум» ( Меканум же конечно. Они же омни, колесо Илона.
            0
            На робофоруме можно посмотреть о вариантах энкодеров, которые указывают и расстояние и даже примерный угол поворота
              0
              Да, это отличная информация! И я здесь в группе поддержки датчиков Холла, но другие цены и базовый проект использовал стартовые обыкновенные оптические датчики.
              0
              сможет поехать по линии на полу, вашим котом, вашим телом


              Не совсем понятно, что имеется в виду — телега едет по полу, по коту и по телу?

              *Вообще энкодеры не сильны полезны и можно их не крепить. Оптические энкодеры позволяют определять пройденное расстояние, но к сожалению, не позволяют определить направление движения.


              У вас энкодеры не те. Надо было взять квадратурные энкодеры, они и направление определяют. Вообще, какую-то локализацию робота серьезнее, чем при езде по линии или вдоль стенки, можно только с энкодерами сделать (и еще какими-нибудь датчиками, типа IMU)

              А вообще спасибо за статью. Интересно, какая производительность у малины в задаче анализа видео для поиска линии и улыбки, и можно ли это в реальном времени использовать.
                0
                Сохраним небольшую интригу до след. поста.
                +1
                Есть очень хороший вариант робота с шаговиками вместо DC-шек + энкодеров, ещё и дешевле получается (степперы цепляются прямо на малинку): github.com/Rhoeby/mini-turty/tree/master/mini_turty3

                У меня есть форк с небольшими доработками. Базовая платформа выглядит как Raspberry, два драйвера на LV8729 и DC-DC на 5 вольт. В расширенном виде добавляется IMU, лидар от популярного пылесоса или от Seeed ($100 ровно в обоих случаях) и платка контроллера питания.

                Если интересно, могу статейку накидать
                  0
                  А как обстоят дела с пропуском шагов шаговыми двигателями при возрастании нагрузки?
                  Энкодеры — они для надёжного получения информации хороши. :)
                    +1
                    У 8729 никак. С другой стороны, это платформа для того, чтобы люди сделали свои первые шаги с ROS, научились работать с ускорениями, TF и прочими базовыми понятиями.
                    У TMC2130 есть обратная связь, в том числе по пропускам шагов.

                    Ну и кроме пропуска шагов, вероятно проскальзывание колёс по поверхности (у omniwheel это вообще штатный режим работы), энкодеры здесь не помогут, нужно либо optical flow (датчик от мыши ставить), либо работать по другим источникам позиционирования (IMU/лидар; у меня на платформе они есть, кстати).

                    Вообще в ROS самое интересное как раз сведение одометрии из разных источников :)
                    +1
                    Обязательно напишите! Если не для машины, то для руки пригодится. Там mg966 разочаровали.
                    +1
                    Ещё момент — у вас используется оптический концевик, который ничего не знает о направлении движения. Если разориться и сходить в антикварный магазин за мышью с шаром, в ней будут оптические (если мышь из первой половины 80-х — есть шанс, что механические) энкодеры с одним свето- и двумя фотодиодами. Получается оптический квадратурный энкодер, позволяющий также получить направление движения.
                      +1

                      Мы на моторы подаём напряжения разной полярности через драйверы и без квадратурных детекторов не знаем направление движения? Это как? :)

                        0
                        При постоянной скорости — конечно, знаем. А вот при активном торможении и смене направления уже сложнее. Естественно, можно находить наиболее длинный импульс и считать его точкой смены направления вращения, но пятицентовый двойной фотодиод решает эту проблему ещё проще :)
                        0
                        Интересно, нельзя ли применить для той же цели датчик из оптической мыши, чтобы по движению поверхности под машинкой понимать реальное направление, куда она движется?
                      0
                      Энкодеры нужны для поддержания постоянной скорости при помощи pid, а не для того чтобы узнать пройденный путь.
                        +1
                        И это тоже, но ROS в значительной степени построен вокруг одометрии, и если ТС не отправляет эти данные в систему — это очень странно
                          0

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

                        +1
                        А зачем в бутерброде одновременно нужны и малинка и ардуинка? Разве одна raspberry pi 3b+ не потянула бы всё целиком?
                          0
                          Да, потянула бы. И такой проект есть www.youtube.com/watch?v=D4gQgi8j4VY
                          Ирония в том, что шапка для raspberry стоит дороже uno ) www.amazon.es/gp/product/B071FWNBXG
                            0
                            Если под «шапкой» вы имеете в виду мотор-драйвер — думается под код из указанного видео любой H-бридж подойдёт, например дешевый HG7881
                            Например здесь на 20-21 шагах нарисованы разные платы для диф-движения (и в комментах про отличие пинов на разных мотор-драйверах)
                            www.instructables.com/id/Another-cardboard-robot-vacuum-cleaner-controlled-
                            Или я что-то неправильно понял?
                              +1
                              HG7881 уже есть в схеме. Вопрос, как я его понял, был — можно ли без arduino обойтись. Да, можно.
                          0
                          а почему не www.renaissancerobotics.com/eduMIP.html

                          те же 8к рублей. но правда плюс доставка ещё и камера нужна. зато всё выглядит ок, работает изкаропки ну и бегает прикольно.
                          камеру я на авито С920 с кодеком внутри за пару тыщ купил. убунта 18.04 накатывается легко, ROS распоследний на ней взлетает.
                          обработку видео правда не тянет, зато может видеопоток сдавать куда-то по воздуху на обработку.
                          здесь и пара статей была, правда заброшено уже.
                            0
                            Здесь ключевое слово — «заброшено». В сети полно подобных проектов, где есть анонсы, а потом все затихает. Также и с rosbots, тот проект, на базе которого построена текущая тележка. Только все купил, собрал, а потом — плыви как хочешь. Моя попытка — довести все до ума, показать, куда двигаться дальше и как. Кроме того, в eduMIP конструкция self-balanced robot, вещь интересная, но тут бы без балансировки пока поехать. Beaglebone — хороша, но raspberry pi ближе к телу. Кроме того, не представляю как туда камеру поставить и полезный груз, который робот повезет. А так, eduMIP выглядит презентабельно.
                            0
                            Заброшено не в смысле beaglebone и edumip. С ними всё нормально. Заброшен цикл статей тут.
                            А там уже новые версии вышли и ubuntы и ros и они даже без сильных костылей взлетают на этом железе, только вот писать об этом некому.
                            self балансед работает из коробки на нём. даже под ros. Причём американский профессор, изготовитель устройства, иногда в почту шлёт новые релизы софта. Телеметрия под ros вся доступна.
                            Что касается beaglebone — с одной стороны да, железо там слабое, своими мозгами не потянет ничего хорошего, но оно в целом и не надо, видеопоток с неё надо сдавать на мощный камень и там его обрабатывать. Что же касается железа робота то тут beaglebone особенно blue тема отличная, есть всё и с запасом, всё распаяно сразу и ничего больше не требуется, конструктив выполнен нормально без претензий, внешний вид не как убежавший сельский клозет, а как заводское изделие. И ценник вменяемый за всё это богатство. Ну где ещё встретишь магнитометр, акселерометр, wifi, Bluetooth, зарядку lipo, драйвера моторов, серв, энкодеров, полный букет интерфейсов и всё это под линуксом рабочее на последних релизах и без костылей и размером с половину малины?

                            PS на каком-то видео создателей этого бегунка видел, что у них есть экземпляр вполне заводского вида и он под малиной бегает, но китов таких не продают, а жаль.
                              0
                              убежавший сельский клозет

                              это отлично )))

                              Согласен, иногда подмывает купить все готовое, где за тебя все продумали вплоть до того, какого цвета кабель. Но в чем тогда творчество? Созерцание, как плотно прилегают детали?
                                0
                                зато можно сразу перейти к умственному труду. не собирая из соплей и палок каркас. Я правда по лени кроме как накатить всё новое и заставить его бегать куда хочется по свистку так дальше и не двинулся. даже камеру ещё не вкрячил а год прошёл уже!

                                отдельно радует что оно даже с грошового аккума комплектного может стоять настороже 5 часов покачиваясь. А с закупленых самсунгов делает это 10 часов. Вот думаю ему на спину плюсом четвёртую малину с камерой и мощными аккумами повесить и освоить таки сложные алгоритмы поведения. Так четвёртой малины не дают сволочи пока нигде нормальной.
                                Вам кстати проще, поменять на четвёртую малину можно с пол пинка. А ума у него сразу прибавится втрое, сможет голосом мясные мешки по имени называть и жрать просить.
                                  0
                                  Пока рановато на 4-ю малину. Многие пакеты ROS под Buster не портированы. Малина 4 греется и ест питание как паровоз. Да и эти, как их, мини-hdmi…
                                    0
                                    ROS да и Buster на четвёртую малину всё никак не накачу (а малину купил и не дорого, подвернулась на ebay месяца два назад). А про остальное ну не так же. греется оно в меру, если хотя бы что-то налепить на камень то и норм работает у меня по два дня без проблем висела без охлаждений при низкой правда загрузке. Питалово тоже, если заменить вон те варикоры на какой-нибудь самсунг 35Е с того же nkon (меньше 200 рублей за банку, кстати, там, и фирменные), который тащит до 30 ватт на банку на отдачу, то и не сильно то малина напряжёт своим потреблением. Да и жрёт эта малина без периферии ватт 7-8 обычно даже нагруженная, так что и варикоры смело потянут малину час-другой. переходник с mini стоит в любом dns 200 рублей.

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                          Самое читаемое