Обзор и детальная инструкция по сборке робота Hexapod Lobot CR-6 на примере. Плюсы и минусы изделия.
При выборе робота домой для изучения - ради общего развития, разбора способов управления и создания программ для самостоятельного движения робота я смотрел на решения, которые можно условно бесконечно дополнять и изменять. Основным из критериев был размер: робот должен иметь возможность залезть на ступеньки в стандартной девятиэтажке. Я также рассматривал вариант проектирования, изготовления корпуса с нуля, заказа отдельно компонентов, но тут победила жадность: цена вопроса выходила сразу сильно за 100 тыс рублей.
В итоге взвесив все "За" и "Против" я заказал именно такого робота на AliExpress в самой полной комплектации за 38 800 рублей. Робот ехал тремя посылками: до получения в Москве две из Сингапура ехали по 12 суток, а одна из Китая ехала 18 суток.
В коробках из Сингапура приезжает вся электроника, включая аккумулятор, но без зарядного устройства и Bluetooth модуля. В коробке из Китая приезжает всё остальное, включая отвертку для сборки. Из дополнительного инструмента мне понадобились только бокорезы и еще я использовал 4 капроновых стяжки не из набора. На последнем фото изображено все обилие деталей, которые приехали. Из минусов: DVD диск сразу не работал, но замученный мной китаец прислал несколько разных ссылок с разным набором материалов. Ссылка на все полезное, что я смог собрать или дописать на текущий момент.
Работа с сервоприводами
Итак, казалось бы приступаем к сборке, но нет. Самое первое, что нужно сделать - выставить все сервоприводы в положение 1500, чтобы потом не было мучительно больно, когда при первом запуске окажется, что все они смотрели в разные стороны.
Есть несколько вариантов для работы с контроллером сервоприводов, но мы пойдем по предлагаемому производителем пути: два варианта приложения LSC-20 для работы с контроллером доступны по ссылке. Они мало отличаются друг от друга по функционалу, однако сильно отличаются по удобству:
1. Версия 1.2 умещается на экране имеющегося у меня ноутбука под Windows с расширением 1366 на 768, а версия 1.3 не умещается и адаптироваться не умеет.
2. Версия 1.2 не устанавливается, а запускается сразу, в отличие от 1.3
3. Версия 1.2 загорающимися зелеными глазками показывает, что робот подключен.
4. Версия 1.2 позволяет включить два дополнительных канала сервоприводов (для камеры, сонаров и т.п.)
Ввиду вышеописанного я использовал версию 1.2, однако по ссылке доступны обе.
Чтобы привести сервоприводы в нужное положение нужно:
1. все сервоприводы подключить к контроллеру к входам от 1 до 18
2. подключить контроллер к компьютеру прилагаемым mini-USB кабелем
3. подать на контроллер питание от приложенного в комплекте аккумулятора
4. включить контроллер
5. запустить выбранную вами версию LSC-20, убедиться, что контроллер подключился
6. нажать Open Action Group
7. выбрать группу Pre Assembly Setup.rob
8. убедиться, что группа загрузилась (должна появиться строка с численной позицией для каждого контроллера)
9. нажать на Run Online.
В этот момент все сервоприводы повернутся в положение 1500 и замрут. После вышеописанного все ранее собранное нужно разобрать назад.
В дальнейшем нам понадобится загружать Action Gorup непосредственно в контроллер. Для этого после пункта 8 (в котором кстати строк может быть уже бесконечно много) нужно будет выбрать номер загружаемой Action Group, после чего нажать Download.
Сборка базовой модели
Не смотря на очень небольшие отличия в "теле" очень понятная инструкция по сборке корпуса доступна у LewanSoul тут, однако если вы приобрели версию с джойстиком (а-ля PlayStation), то перед тем как клеить аккумулятор нужно прикрутить на место приемник для джойстика и сервопривод для ультразвукового датчика (глазок), иначе для их установки потом придется и аккумулятор двигать и корпус разбирать.
На фото ниже я показал место размещения приемника и способ крепления.
Для сервопривода место размещения единственное, крепится он длинными, самыми тонкими винтами и гайками. Навешивать на него голову на этом этапе не нужно. Подключается он в порт 19 - кабель можно сразу воткнуть, чтобы не мешал.
В остальном можно действовать по инструкции.
При прикручивали винтов в колечки от сервоприводов не следует применять сверхусилия - они очень легко проворачиваются.
Питание аккумулятора и приемник для джойстика можно сразу после действий из видео подключать к контроллеру.
Следующее достаточно муторное действие и при этом не приведенное ни в одной из найденных мной инструкций это подключение проводов сервоприводов к контроллеру непосредственно на роботе. Для этого используются тройные кабели разной длины. Я распределил их соответственно: от дальних сервоприводов к ближним от длинных к коротким.
Метод протягивания и места стяжек показаны на фото ниже. На фото приведены лапы с левой стороны. Справа прокладывается симметрично.
Сначала прокладываем кабели, подключаем их, следом натягиваем оплетку, затем закрепляем стяжками, следя, чтобы в максимально вытягивающих кабель положениях кабеля хватало на каждом отрезке. Сервоприводы можно аккуратно крутить руками в тот момент, когда питание робота не включено!
Номера портов подключения можно посмотреть на фото из программы LSC-20, учитывая, что там робот повернут к нам лицом. То есть для передней правой лапы номера портов от дальнего к телу к ближнему: 18, 17, 16, а задняя левая от дальнего к телу сервоприводу к ближнему: 3, 2, 1.
Первый боевой запуск
После вышеописанного робота уже можно запускать. Для этого нужно добавить в контроллер сервоприводов каждую action group по инструкции выше и включить джойстик.
На видео показано то, что робот уже будет делать, только он не будет у вас светиться датчиками, которые пока отсутствуют.
Добавление датчиков
В отличие от примера в демо-видео в начале статья я задался целью разместить сразу все датчики на роботе одновременно, чтобы в дальнейшем написать программу, которая будет работать с учетом показаний со всех. Поэтому управления руками сзади - не будет, так как для него используются те же самые датчики, что и для предупреждения падения.
Итого что мне удалось одновременно закрепить и инструкции к этому:
1. Устанавливаем Arduino UNO и плату расширения на нее сверху. Эта плата делает удобным доступ к функциям Arduino с использованием готовых шлейфов. Инструкция.
2. Устанавливаем ультразвуковой датчик и радуемся тому, что сервопривод поставили заранее. Инструкция.
3. Устанавливаем датчик звука. Инструкция.
4. Устанавливаем мини дисплей на борт. Инструкция.
5. Устанавливаем инфракрасный приемник для пульта управления. Инструкция.
6. Устанавливаем акселерометр и гироскоп в одном флаконе. Инструкция.
7. Устанавливаем датчики на лапы для предотвращения падений. Инструкция. От инструкции нужно отступить! Переднюю левую лапу нужно подключить в D8-D9, так как все остальные цифровые порты пойдут на другие датчики.
8. Устанавливаем датчики цвета и светочувствительный датчик не совсем по инструкциям, чтобы оба влезли спереди, как на фото ниже. Инструкция.
Запуск "Мозгов" и примеры
Вот мы и добрались до момента, когда можем загружать в Arduino код и изучать получившийся результат. Ниже приведены видео только по тем примерам "из коробки", которые запустились сразу.
Для загрузки скетчей в Arduino я использую стандартную Arduino IDE, которую можно скачать по ссылке.
Все библиотеки, специфические для данного робота лежат тут.
1. Пример управления звуком.
--- Код
2. Мотание головой. Академическое упражнение: простой код, наглядный результат.
--- Код
3. Сопровождение объекта. Один из наиболее интеллектуальных режимов, доступных "от производителя".
--- Код
4. Cross fire. "Подныривание под препятствия" - как назвал бы это я по-русски.
--- Код
5. Обход препятствий и использование мини дисплея
--- Код
6. Управление инфракрасным пультом
--- Код
7. Шаги на ступеньку
--- Код
Так как в квартире у меня ступеней нет, то роботу были подсунуты мягкие подушки с дивана. До конца он с ними так и не справился, но понятно, что программа работает.
8. Хождение вверх ногами
--- Код
9. Совсем не завелись или имеют непонятный результат скетчи 9, 10, 12, 13, 14, 16 из этой папки.
Итого
Плюсы:
- качественно сделанная конструкция: детали подходят друг к другу, набор деталей полный, решения адекватные
- огромный потенциал для творчества
- расширяемая конструкция (можно купить датчики другого типа)
Минусы:
- нежный пластик на приводных дисках сервоприводов
- отсутствие нормальной полноценной инструкции
- частично неработающий код от производителя
Планы:
- Заставить работать весь прилагающийся код
- После всех, проведенных на текущий момент испытаний, и начала продумывания логики, например для залезания на ступени различной высоты, я озадачился вопросом необходимости дополнительных датчиков на каждую лапу, сообщающих о "наступании" на твердую поверхность. Возможно нужно заменить "пятки" на что-то с контактом внутри.
- Докупить на робота руку, чтобы он мог брать и приносить предметы