В предыдущей статье мы настроили нашего робота-муравья. Он многое умеет: ходит во все стороны, поворачивает направо и налево, меняет положение и наклон своего туловища. В общем, проект создания гексапода подходит к концу, Давайте еще раз полюбуемся на нашего робота и устроим разбор полетов!
Конструкция
Это оказалось самым слабым местом. Весит мое чудовище аж 5 кг. Почему так вышло? Потому что хотел сэкономить на материалах. Если будете делать что-то подобное, то не пожалейте денег и закажите все механические детали конструкции на каком-нибудь заводе. Пусть сделают их из металла или другого прочного неупругого материала. Конечно же размеры при этом надо уменьшить раза в два. Детали делать не сплошными, а с вырезами и пазами для снижения массы всего изделия. Оси сервоприводов нужно снабдить подшипниками.
Из-за того, что мой механический муравей частично был из дерева, то многие соединения постепенно приобрели небольшие люфты. К тому же из-за большой массы нагрузка на изгиб на валы сервоприводов тоже была порядочная. Поэтому люфты появились и там. О ювелирной точности перемещения конечностей можно было позабыть. При ходьбе это не так заметно, но в тестовых режимах все неточности сразу бросаются в глаза.
Сервоприводы должны обладать высоким крутящим моментом. Ничего страшного если он будет с хорошим запасом. Во-первых, как говорят знающие люди, приведенные характеристики на сервоприводы могут быть существенно завышены, а в реальности мощность привода будет в 1.5-2 раза меньше. Во-вторых, вдруг вам захочется навесить на своего монстра дополнительное оборудование, голову, хвост, видеокамеру или что-нибудь еще. Люфты у сервоприводов должны быть минимальные, так как это все потом выльется в неточность выхода в точку конца ноги. Примененные мной сервоприводы имеют, к сожалению, большие люфты. Но в рамках данного проекта я с ними смирился. За все время работы на роботом из строя вышло 2 сервопривода: причина – заклинивание редуктора, скорее всего, из-за большой массы изделия.
А еще проще купить готовый набор для изготовления робота-паука на Ali Express. Стоит он на сегодняшний день порядка 50-100 долларов (это механическая часть без контроллера и сервоприводов).
Программное обеспечение (далее ПО)
Основной каркас ПО был уже написан в рамках этого проекта, поэтому его доработка в будущем будет осуществляться только при добавлении поддержки новых устройств. Перечислим основные возможности существующей прошивки:
- генерация ШИМ (кол-во каналов может быть легко увеличено);
- преобразование пространственных координат ноги в угловые;
- поддержка Bluetooth;
- возможность сохранения калибровочных данных в память контроллера;
- ходьба во все стороны с регулируемыми параметрами шага;
- повороты;
- смещение корпуса по 3 осям;
- наклоны корпуса вокруг двух осей.
Я бы еще усовершенствовал работу с радиоканалом (настройка МАС-адреса и других параметров), а также бы добавил ходьбу в произвольном направлении.
В процессе разработки ПО было много сложностей, всех их и не упомнишь. Кратко пройдемся по самому коварному и интересному.
Очень долго я не мог разобраться со следующим багом: периодически в процессе движения происходил сбой и все приводы как будто теряли мощность, ноги просто опускались не оказывая никакого давления на пол. В коде программы причины я никак не мог увидеть. Подцепившись к выходам осциллографом, я заметил, что частота ШИМ плавает, то 50 Гц, то 25Гц. Наконец, устав от злости на самого себя, я все-таки нашел причину.
В старом варианте терялись одинаковые или очень близкие по значению импульсы. Поясню на примере, имеются две близкие длительности 1500 и 1502. В регистр сравнения таймера заносится 1500, по прерыванию происходит обработка, в конце которой в таймер запишется следующая точка останова 1502 импульса, а текущее число импульсов счетчика уже 1504. Поэтому таймер достигнет максимального значения 19 999, потом перезагрузится и остановится 1502 импульсах. Но один период ШИМ длиной в 20 000мкс окажется потерян. Поэтому в коде условие изменено, и за один проход обрабатываются все близкие по значению длительности. Для большей ясности можно посмотреть каким образом в моей программе происходит генерация ШИМ.
Дальнейшие планы
Для меня было очень увлекательно и познавательно заниматься данным проектом. Робот-муравей получился на славу. Давайте еще раз вспомним все этапы создания робота и посмотрим, что же у нас получилось.
Конечно, же в нем полно косяков, ведь я еще начинающий создатель роботов))) Но я доволен своим творением, я получил бесценный опыт в робототехнике, а мои дети новую игрушку (думаю им хватит ненадолго)!
Куда же двигаться дальше? Мне бы хотелось, чтобы у робота появилось автономное питание, зрение, слух, реакция на препятствия, простые рефлексы, искусственный интеллект. Можно фантазировать до бесконечности.
Главное не бояться новых, даже сумасбродных идей, а просто брать и делать. Не за горами то время, когда роботы будут жить среди нас. Давайте к этому готовиться)))
Я все-таки заказал готовый набор из механических деталей для паука на Ali Express.
Поэтому следующий цикл статей будет посвящен созданию робота-паука из этого набора. Все новые фишки: автономное питание, поддержка видеокамеры и прочее, я буду реализовывать уже на нем. Всем спасибо, до новых встреч!