Однажды фанера, atmega, да малина

Введение.


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


С готовыми тележками есть ряд существенных проблем:

  1. Сложно установить необходимое для выполнения целевой задачи оборудование. Зачастую в процессе работы может измениться номенклатура используемого оборудования и его место расположения. Сверлить, пилить и видоизменять металлический корпус весьма трудоемкий процесс. Скотч обычный и двухсторонний — «наше всё», со всеми вытекающими последствиями.
  2. Каждая тележка имеет свою систему управления, что привязывает разработчика к аппаратной части и системе управления и занимает значительную часть драгоценного времени программиста.
  3. Дороговизна тележек и их комплектующих. Невозможность быстрой закупки готовых решений и запчастей.

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

Концепция.


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

  1. Колесная формула 6 колес, все ведущие. Для упрощение конструкции активная подвеска не требуется. При этом все двигатели борта соединены параллельно, что позволит в будущем делать тележки с меньшим количеством колес используя единую систему управления.
  2. Корпус тележки из материала легкого в обработке, позволяющего относительно быстро установить необходимое оборудование и провести коммуникации.
  3. Управление тележкой по UART или по USB (виртуальный компорт) — можно подключить ноутбук, одноплатную ЭВМ, радиомодуль.
  4. Мотор-редукторы, колеса, электроника, элементы питания из ближайшего подходящего магазина.


Отдельно хочется упомянуть готовую платформу от POLOLU Dagu Wild Thumper All-Terrain Chassis.

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



Основная нагрузка приходится на подшипник скольжения в котором вращается выходной вал мотор-редуктора и при длительном использовании и интенсивных нагрузках этот узел гарантированно выйдет из строя.



Второй момент — это адаптер вал-колесо, данный элемент выполнен из латуни и сидит на валу с большим люфтом, не редко при тестах, одно из колес слетало с вала в процессе движения.

В качестве резюме хочу сказать, что как платформа для решения наших задач Dagu Wild Thumper не подходит.

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

Платформа.


Моторколесо.

Подшипниковый блок изготавливали на производственной базе института.



Два подшипника запресованны в корпус блока, ось с кольцевым фиксатором, адаптер мотор-редуктора.









Колесо и мотор-редуктор от тележки родителя Dagu Wild Thumper.

Блок получился весьма надежным узлом способным выдерживать серьезные нагрузки. Единственное и наверно весьма существенное но: изготовление данного узла требует наличия фрезерного станка с ЧПУ и квалифицированного специалиста. На фотографиях двигатель имеет на валу инкрементный энкодер.

Корпус.

Оптимальным материалом для корпуса, после недолгих раздумий, оказалась (сюрприз, сюрприз) фанера. Чертеж, обильно снабженный ребрами жесткости, спустя некоторое время обрел материальный облик.





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

Платформа в сборе.



Корпус покрашен краской из баллончика. Средние двигатели имеют в составе инкрементные энкодеры для подсчета количества оборотов. Разъемы двигателей стандартные для радиоуправляемых моделей.

Система управления нижнего уровня.


К системе управления предъявляются те же требования, что и к тележке: доступность компонентов и простота изготовления. Готовых решений по управлению коллекторными моторами масса. У того же POLOLU есть много подходящих вариантов, но есть важный момент — нужен один «USB шнурок» на всю систему.

С контроллерами ATMEL и ассемблером я дружу давно, изготовление небольшой печатной платы тоже не проблема. Для упрощения проектирования и изготовления платы я использую готовые микропроцессорные модули. В качестве модуля был использован ARDUINO Nano Atmega328. Модуль имеет небольшие размеры и на его борту помимо процессора имеется микросхема FT232RL, которая обеспечивает связь по USB, так называемый виртуальный ком-порт. Из внутренностей стерто все что его связывало с прежней жизнью (да простят меня ардуинщики) и изготовлена печатная плата с необходимой обвязкой и залита новая прошивка.



В схему включены:

  1. Микропроцессорный модуль ARDUINO Mini Atmega328 c USB интерфейсом.
  2. Два Н-моста на силовых транзисторах с ШИМ управлением.
  3. Датчик тока и датчик напряжения для контроля разряда Li-Po аккумуляторов.
  4. Светодиоды для индикации режимов работы системы.
  5. Разъемы для подключения внешнего питания и двигателей.
  6. Разъемы для инкрементных энкодеров двигателей.
  7. Разъемы для подключения аналоговых датчиков соединенные со входами АЦП контроллера.
  8. Разъем UART интерфейса.

Прошивка написана на ассемблере и представляет из себя командный процессор, т. е. по UART (USB) приходит текстовая команда с параметрами, контроллер её обрабатывает и выполняет (например: дать напряжение на двигатели правого борта 25% от номинала), в обратном направлении контроллер отправляет значения энкодеров, напряжение АКБ, показания АЦП и т.д.

В результате имеем UART (USB) канал управления тележкой по которому посылаются текстовые команды управления и получаем ответные строчки, включающие телеметрию и служебные данные. С данным интерфейсом стыкуется широкий спектр устройств, начиная от радио-модемов (X-Bee) и заканчивая планшетными компьютерами. Более подробно на системе управления я останавливаться не буду, т. к. это тема отдельной статьи. А вот об одном из устройств подключаемых по UART в качестве системы управления верхнего уровня, я расскажу далее.

Малина, она же система управления верхнего уровня.


Конечно же речь о Raspberry Pi. Доступно, недорого, компактно, Linux же. На борту есть все, а чего нет подключается по USB.

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

Стыкуем малину и ардуину.

На GPIO разъеме малины есть UART, I2C, SPI, питание +5В и просто ноги.



К UART пинам малины подключаем нашу Arduino систему управления нижнего уровня. Единственное но: малина 3.3 вольта, а микроконтроллер выдает логику 5 вольт, без переходника с согласованием логических уровней не обойтись. А раз надо городить некую плату-переходник, то есть смысл задействовать и другие пины GPIO.
Шину i2c оставлять на свободе верх расточительства, когда в природе существует огромное количество датчиков с подключением по данной шине. В результате на плату переходника установлен замечательный девайс с гироскопом и акселерометром — полноценный навигационный модуль. Питание малины осуществляется через разъем Micro USB, что не совсем удобно, т. к. сам разъем хлипковат и не всегда есть под рукой, как следствие на переходник выведен разъем внешнего питания +5в.





Плата переходника выполнена таким образом, чтобы все помещалось в пластиковый корпус, а наружу выведены пины UART и питания +5в



Отдельно хочу упомянуть про питание малины, оно жестко ограничено 5-ю вольтами поступающими от USB разъема, решение спорное, но ничего не поделаешь. Я для этой цели использую стабилизатор BEC применяемый в любительских радиомоделях, он имеет небольшой размер, мощности (3А) хватает с большим запасом и полностью отвечает нашим требованиям.



Полный обвес.




  1. Система управления нижнего уровня на базе контроллера Atmega328.
  2. Мотор-редукторы с инкрементными энкодерами (левый и правый борт)
  3. ИК-датчики расстояния SHARP GP2Y0A02YK0F с аналоговым выходом
  4. Li-Po аккумулятор 7.4В
  5. Стабилизатор питания 5В.
  6. Система управления верхнего уровня на базе Raspberry Pi
  7. UART переходник и i2c навигационный модуль в составе Raspberry Pi.
  8. USB Wi-Fi модуль.
  9. USB WEB камера.


Рассказ о том какая наступает свобода для творчества имея Wi-Fi тележку с линуксом на борту и кучей всевозможных плюшек явно выходит за рамки данной статьи. С этой частью я думаю все понятно.

Результат.




В завершение хочу сказать, что поставленная задача была решена. Имеем тележку с корпусом который «не жалко» из недорогих комплектующих. Единственное исключение — это подшипниковый блок, но это цена за надежность и грузоподъемность, телега может таскать весьма тяжелое оборудование. Система управления нижнего уровня легко масштабируется по количеству двигателей и номенклатуре подключаемых датчиков, а так же легко интегрируется с высокоуровневой системой: Raspberry Pi (UART) или ноутбук (USB). Raspberry Pi может все в качестве системы управления верхнего уровня позволяет подключать целую кучу полезного оборудования и реально может все с этим оборудованием работать, компилятор языка Си и графическая оболочка для гурманов в комплекте.
Share post

Comments 69

    +5
    Видео?
      +1
      Будет чуть позже.
      +2
      Замечательная статья! Спасибо! Хотелось бы больше узнать о Ваших проектах и конструкциях для отработки алгоритмов.
      А Вы не делаете универсальные «коробки» или для каждых конкретных задач разрабатываете с нуля?
        +2
        Институт ЦНИИ РТК можно зайти на сайт. Данная тележка первый прототип. По сути нужна подвижная платформа с открытым и простым интерфейсом и в дальнейшем будет использоваться несколько таких тележек. Именно и хотелось уйти от разработки с нуля.
          0
          Увидел заглавную картинку — сразу ностальгия по ЦНИИ РТК нахлынула. Спасибо за статью, привет от выпуска 2010=)
            +1
            Студентов сейчас много работает есть интересные задачи.
        0
        Круто! Но всё же любопытны задачки для которых используется такая платформа. Выглядит она всё же по игрушечному, не понятно что за серьёзные задачки. Или она для обучения студентов?
          0
          Небольшой недостаток — низкая дальность wifi. Интересно как будут решать. Ведь подход крайне серьезный, такое не для студентов делают, а для военных (?).
            0
            Данный Wi-Fi работает через несколько стенок, для помещения вполне хватает, в дальнейшем будет другая точка доступа. В качестве экспериментальной платформы она подходит и для студентов и для военных.
              0
              На одном форуме писали как решали проблему квадрокоптера с управлением через WiFi — вешали дополнительные квадрокоптеры с wi-fi точками, но уже автономные, которые просто зависали на месте. Было бы круто такую армию собрать с вашей платформой.
                0
                Это задачи по групповому управлению. В институте ведется такая работа и данная платфома из этой серии.
              0
              Можно, чтобы «платформа» сбрасывала по ходу движения мини-модули, репитеры.
                0
                Так можно просто передающую антенну «большой земли» усилить и все — я думаю этого более чем достаточно будет с учетом размеров устройства маловероятно, что оно на километр ездит. А на самой машинке мощную антенну ставить не очень — она же и энергию есть будет быстрее.
                0
                Распознавание образов, групповое управление несколькими платформами, навигация, SLAM… студенты тоже с ней работают.
                  0
                  А есть ли у вас какие то статьи по мультиагентной навигации, некий гибрид инерциальной в мультиагнетных системах. Пишу диисер на тему инерциальной навигации, и для обзора хочется чего-то почитать
                    0
                    Я занимаюсь макетами, мат. обработкой занимаются мои коллеги, со статьей вряд ли помогу.
                      0
                      Ок, спасибо. Будем искать
                        0
                        еще вопрос, а смотрели ли в сторону 32 битных микропроцессоров?
                          0
                          Пока atmega отвечает всем запросам, для нижнего уровня вполне хватает.
                  0
                  Спасибо за статью!

                  Крайне интересно было бы узнать цели, для чего разрабатываются подобные роботы, что за алгоритмы вы обкатываете и т.п.
                    0
                    Ответил выше. Основная цель — это унифицированная подвижная платформа для разработчика, что бы каждый раз не изобретать новый велосипед.
                      0
                      Это я прочитал в статье, я достаточно внимательно читаю. Разработчики ваши, или вы планируете продавать это устройство? Если ваше (что значительно интереснее), то чем занимаются ваши разработчики, раз им требуется такая унифицированная платформа?
                        0
                        Это для внутреннего потребления, разработчики наши, только у каждого своя тележка, что не удобно.
                        Проекты где будет применяться: SLAM, групповое управление, навигация.
                          0
                          Прочитал в комментариях выше про ЦНИИ РТК, вопрос снимается. Но однако стало в тройне интереснее, чем вы занимаетесь. И жаль, что я не живу в Питере…
                      +6
                      Я так понял, пружины вы убрали? Блин, это ж самая вкусная фича у тележки (у меня такая же), в итоге она может делать вот так (видео не моё, я так погонять ещё не пробовал)



                      А вообще ваша доработка неплохая, особенно про подшипниковый блок понравилось. У меня вот нет возможности такое сделать (руки не оттуда растут). Тележка тоже специально под отладочные цели (виртурилку обкатывать), стараюсь без ардуины обойтись а всё своими силами реализовать, вроде получается :-)
                        0
                        На данный момент задача несколько часов таскать большой и тяжелый прибор, Dagu Wild Thumper развалится. Пришлось пожертвовать проходимостью. И это уже скорее не доработка, там только мотор-редукторы и колеса от неё.
                          0
                          Эх, а я лето жду чтоб по пересечённой местности погонять :-)
                            0
                            Хотя для нормального погонять по пересечённой местности скорей что-то типа такого нужно

                              +1
                              Это все прекрасно вписывается в понятие «погонять». У нас как правило это НИР с последующей сдачей этапа заказчику. Нужна тупо надежность всей системы, дымящийся и разваливающийся на показе робот это ни куда не годится со всеми вытекающими. Плюс ко всему сверху стоит оборудование, как правило, многократно превышающее стоимость самой телеги.
                                0
                                Ну это я уже понял. У вас это научная работа, у меня это развлекуха :-) Заодно и проверка железки в экстремальных условиях. Недавно вот в -20 тестили железку на улице, даже ничего не сдохло.
                                  0
                                  Видел, очень многообещающе, если руки дойдут до статьи есть переоборудованный четырехколесный электро скутер обвешанный камерами… правда пока без удаленного управления но все к этому идет.
                                0

                                Ой, не туда. Это надо было к видео с лестницей
                          –1
                          Красиво. Уважаю!
                            +2
                            Переместить все решение на одну заказную плату не планируете? Ну, кроме Pi, конечно.
                            То есть мосты, мегу, акселерометр, согласователь уровней, конвертер? То есть все то, что можно без особых проблем собрать самим.
                              +1
                              Это версия платы 1.0. Уже вскрылись небольшие недоработки, в дальнейшем скорее всего будет дорабатываться. Но в целом не принципиально — это макет.
                                0
                                Я понимаю, что это макет, поэтому и спросил — есть в планах изготовить единую плату для платформы?
                              +1
                              Если накопится некоторое количество критических доработок, то скорее всего будет создана единая плата с контроллером. Возможно перейдем на другой контроллер, т.к. у атмеги уже заняты все ноги.
                                0
                                Можно свои три копейки вставить? :-) К сожалению, тиража ещё нет, ждём вот-вот. Специально под такие задачи и проектировали (малина всё-таки костыль для такого), сейчас как раз на тележках и обкатываю.
                                  0
                                  На этапе мозгового штурма рассматривали Ваше решение в качестве вычислителя на телегу. Ждем тиража.
                                0
                                а чем не понравился корпус модели POLOLU Dagu Wild Thumper All-Terrain Chassis??? грязь собирает?
                                  +1
                                  Подвеска очень хлипкая в плане исполнения. Таскать несколько часов тяжелое оборудование без риска развалиться, он не способен.
                                    0
                                    а шасси от раллийных машинок с амортизаторами дорогие для подобной платформы?
                                    они прочные? или в бюджет начинают не укладываться?
                                      0
                                      Задачи по повышенной проходимости не стояло, соответственно от активной подвески отказались.
                                  –2
                                  Спасибо за такое подробное описание.
                                  3G модем добавьте к WiFi, и ограничение по дальности уйдет. Хотя зависимость от качества связи усилится.
                                    +2
                                    Военные 3G модем не поймут и скорее всего потоковое видео врядли удастся запихнуть в канал.
                                      0
                                      Лично проверял мегафоновский 3G для этой цели. Видеопоток (640х480) 600 кбит/сек отлично прёт (RTP UDP H264), лаг конечно поболее чем по вайфаю, но терпимо.
                                        0
                                        3G не используем в принципе, т.к. в поле (Чернобыль, последствия аварии, военные действия)… 3G точно никаким боком.
                                          0
                                          В поле удобнее мощный направленный вайфай соорудить, так что согласен на все сто. Но иногда 3G тоже выручает.
                                        –3
                                        Военные эту поделку вообще не примут. Ни один военный приемщик не разрешит применение зарубежной номенклатуры(ардуина, малина, шилды, моторы) в том случае, если есть отечественная альтернатива, и тем более, если это откровенный ширпотреб.
                                          +1
                                          Это МАКЕТ для отработки математического обеспечения, а не конечное изделие.
                                            –3
                                            Если это «МАКЕТ», то не болтай про то, что военные не согласны с использованием 3G.
                                            Второе — отрабатывать(читай — оптимизировать) алгоритмы нужно на том железе, которое будет использоваться в продакшне, потому что (сюрприз!) низкоуровневая оптимизация аппаратно-зависимая.
                                            Третье — «МАКЕТ» нехило было бы делать один сразу для проверки и математики, и потребления и еще много чего. Т.к. в продакшне окажется, что наши компоненты с приемкой 5 во-первых, жрут больше, во-вторых, по габаритам больше.
                                            Четвертое — шасси без подвески это дурдом. На любой приличной кочке весь макет с дорогостоящим оборудованием навернется на камешек, и гг. Неужели так сложно воткнуть рессорную или торсионную подвеску? Вариантов уйма.
                                              +1
                                              Уважаемый Lerk, Вы статью прочитали? Я достаточно понятно изложил концепцию и её обоснование в самом начале статьи. Под данную концепцию разработан макет описанный в статье.
                                      0
                                      На одной из первых картинок (красное двухколесное шасси) камера очень похожа на Polycom-овскую камеру от видеоконференцстанции. Если это она, могли бы Вы подробнее рассказать про ее подключение? Есть такая же, но руки не доходят поиграться с ней.
                                        0
                                        К сожалению не помогу — это картинки просто для иллюстрации к данным проектам я не имею отношения.
                                          +3
                                          А чего бы сразу мегу от 3.3 вольт не запитать? К чему эти соглассования?
                                            +1
                                            На меге крутится RTOS вашей разработки, за что, пользуясь случаем, большое спасибо. Вместо малины может стоять все что угодно ноутбук, радиомодуль в зависимости от решаемой задачи, возможно что то с 5-ти вольтовой логикой. Малина в данном случае — это один из вариантов решения.
                                              0
                                              Внимательней за атомарностью доступа к очереди следите. Есть там ряд недоработок в диспетчере. В частности вызов задачи из прерывания может устроить армагедец если пересечется с доступом к очереди в фоне/службе таймера. У себя то я за этим слежу, а вот в выложенных сорцах сея бага может быть.
                                            0
                                            Жду продолжения
                                              +1
                                              Уточните, колеса полые или цельно литые? Был у меня опыт использования таких «дутых» колес, мне кажется они не выдерживают нагрузку значительную. А ездить на полуспущенных плохо…

                                              И уточните какие габариты получаются. И радиус разворота, соответственно.
                                                0
                                                Колеса не разбирал, по моему полые и внутри поролон. Разворот на месте танковый. Габариды тележки 42х35 см
                                                +1
                                                Это Arduino nano, а не mini
                                                  0
                                                  Да точно. Поправлю.
                                                  0
                                                  Отличная работа!

                                                  1.>> Мотор-редукторы с инкрементными энкодерами (левый и правый борт)
                                                  Это, я так понял, для одометрии? Как собираетесь бороться с проскальзыванием при 6-колесной системе?
                                                  Или же просто контроль скорости вращения?

                                                  2. Довольно необычно расположены инфракрасные датчики. Чем обусловлено «схождение» их осей, а не расхождение?

                                                  3. Вы случайно курс Control of Mobile Robots by Magnus Egerstedt на Courcera недавно не проходили? )))
                                                    0
                                                    1. С проскальзыванием борьбы никакой, пока только кнтроль вращения и приблизительная оценка пройденного пути.
                                                    2. В реальности такая схема еще не работала, телега только собрана, «ждет» своих алгоритмов управления. Схема расположения датчиков — это пока что наше видиние, в дальнейшем будем отрабатывать.
                                                    3. Нет не проходил.
                                                      0
                                                      «ждет» своих алгоритмов управления.

                                                      Алгоритмами тоже Вы будете заниматься?
                                                      Могу поделится начальной инфой по уклонениям от препятствий, езде вдоль стены итд итп.
                                                      С практическими примерами кода (Matlab).

                                                      Очень интересно дальнейшее развитие проекта!
                                                        0
                                                        Нет, я занимаюсь изготовлением подобных макетов, алгоритмы управления разрабатывают мои коллеги из института.
                                                    0
                                                    Ах да, и еще:

                                                    4. Оправдано ли «висение» навигационного модуля в воздухе? Не обернется ли это дополнительными помехами?

                                                    Заранее благодарю за ответы!
                                                      0
                                                      «Висит» он достаточно жестко, работает неплохо. Сейчас разрабатывается мат. обеспечение под данную схему. В дальнейшем возможны существенные доработки.
                                                      0
                                                      А не поделитесь схемотехникой модуля согласования с RPi и схемой H мостов?

                                                      Only users with full accounts can post comments. Log in, please.