Робот, который поедет за вашей улыбкой. Делаем дешевую тележку для изучения ROS.Часть 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, но со значительными доработками. Кроме того, базовый проект, судя по информации с сайта, был заброшен, поэтому придется все доводить до ума самим.

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

cnvhrsqcd3cqzb0sns1zcdsv2kg.jpeg

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

yfcboa5cz6uah-rnquuckijldaw.jpeg

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

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

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

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

_04knjv6zwrwetnh3llkks4ksws.jpeg

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

f-y_oeetzxxnxiglymrohbxxjkq.jpeg

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

qunytwj8v9j4a-zfc553nfyet_a.jpeg

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

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


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

-oadsxkqd12cxtf6a2p0bupwh0u.jpeg

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

cfidtwhzpbbwud6nuxnbylr9cyi.jpeg

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

5obcm1kyke5pjf3m1ezzj_sn29k.jpeg

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

sa8mm5zpfjts3vygdbiqxejg2ii.jpeg

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

6034v6-gfljt3gydd2bfsq3zkj4.jpeg

*Немного о powerbank:

a4axrys9t9ykwisdh0kdc-cfrx0.jpeg

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

ejaerxjt8sg5fghnd02graprxem.jpeg

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

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

© Habrahabr.ru