Однажды на просторах интернета я увидел вот такого робота: http://samodelniy.ru/samodelnyj-robot-inchworm-na-baze-arduino-nano. Идея мне понравилась, захотелось сделать своего робота с блэкджэком и ... датчиками. Простое радиоуправление мне не интересно, поэтому я задумал обучить его разным штукам. Но сперва о конструкции. Робот движется при помощи трех серв HXT900. Он спаян из фольгированного стеклотекстолита. Четыре восьмиугольных платы образуют ребра гусеницы, девять треугольников образуют сочленения, еще есть три держателя серв и пятнадцать треугольников жесткости. Питается все от четырех аккумуляторов никель-металл-гидридных размера ААА, разделенных на две группы. Передняя плата содержит AVR Tiny25, работает ИК-бампером и получает информацию от датчиков цвета поверхности, сливает информацию в последовательном коде в мозг гусеницы. Задняя плата содержит AVR Tiny25, принимает команды от ИК пульта (работа в ручном режиме, а также выбор модели поведения) и передает их в мозг параллельным кодом (3 бита). Вторая плата спереди является мозгом, мозг на AVR Mega8, туда сходятся все провода-нервы. Четвертая плата электроники не содержит. Сделав робота, я начал учить его разным штукам. Для начала научил его ходить, как ходил прототип (как гусеница, как краб, как перекати-поле). Вот результат:
Затем я стал учить робота лайнтрейсу. Это было непросто из-за дискретности шага, а также из-за того, что при повороте робот имеет отброс назад. Но все получилось, смотрим ролик.
Затем я стал учить робота кегельрингу. Это было самое сложное. А вся проблема в том, что глаз у робота один и конус зрения относительно большой. То есть цель видна при накрывании краем конуса, при этом робот по цели промажет. Пришлось изобретать хитрые алгоритмы. Тоже получилось, результат ниже. Кто досмотрит до конца - тот молодец. Вы увидите, что я кручу ринг - это потому, что робот видит и за рингом и упирается взглядом в шкаф. По регламенту вокруг ринга должно быть пусто. Поэтому сбитые кегли я убирал.
Ну и напоследок захотел продемонстрировать применение ИК-бампера в еще одном деле. Но по той же причине получилось не очень наглядно: робот ползет по столу и видит его край, соответственно заранее поворачивает. Видео вот:
Тоже об этом подумал, к тому же всё на ассемблере! Пора Radista "раскулачивать" , в смысле нужно его пытать на предмет алгоритмов. Вот ползанье я себе вроде представляю, ну и развороты тож примерно, а "покатушки" как? И ваще неплохо было бы подробнее узнать обо всём... Ну это уж если конечно он сам захочет делиться
Зарегистрирован: 15 сен 2007, 13:03 Сообщения: 6338 Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
Шикарное исполнение, присоединяюсь к комментариям Vovan на счет алгоритмов!
_________________ «Как сердцу выразить себя? … Мысль изреченная есть ложь!» В этом мире меня подводит доброта и порядочность... "двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
На самом деле сложно мне было не учить робота ходить по всякому, а именно лайнтрейсу и кегельрингу. Но это из-за специфики движения. А сами движения простые. С удовольствием про них расскажу. Шаг вперед: 0. перед ровно 1. Подогнуть чуть зад (зад приподнимется). 2. Подогнуть чуть перед (перед приподнялся - робот выровнялся) 3. Передом и задом одновременно, перед загнуть еще сильнее, зад выровнять. Переход на начало. Шаг назад - точно также, только в обратной последовательности. Поворот направо: 1. Голову поднять, зад ровно 2. Середину повернуть направо 3. Голову опустить, зад поднять. Переход на начало. Поворот налево аналогично. Ходьба боком: перед и зад поднять, середину согнуть в нужную сторону, перед и зад опустить так, чтоб середина поднялась, середину загнуть в другую сторону. Если сменить последовательность поворотов - пойдет в другую сторону. И на сладкое, как он катится колбаской: точно также как и ходьба боком, только надо середину сильнее загибать/разгибать, чтоб центр тяжести вышел из проекции опоры. Считать я ничего не считал, написал технологичку и опытным путем нашел числа, которые надо выдавать на сервы. так что проект не будет сложным даже для начинающих (как пишет автор прототипа - он сделал робота буквально за день).
т.е. задержки определялись, в основном, эксперементально, да? И ещё вопросик: на какой угол позволяет конструкция поднять перед\зад? (это я к тому, что возможно ли на небольшое препятствие забраться? например журнал, тонкая книга...)
Экспериментально определялись не задержки, а "ширины" управляющих импульсов серв. А задержки "на глазок" с запасом, чтобы серва гарантированно успела приехать на новое место. Угол поворота от среднего положения гарантированно плюс/минус 80 градусов (неохота рисковать пластмассовым редуктором). А вот насчет преодоления препятствий я сильно сомневаюсь - сцепление с полом очень плохое, он и по ровному ламинату проскальзывает. В другой комнате еще деревянный пол с линолеумом, естественная волнистость, а уже не дает ему ползать - на месте елозит. Так что если кто будет делать аналог - обратите внимание.
Про оси вопрос сперва не понял. Теперь понял, но не вижу смысла. Сейчас достаточно трех звеньев, а как там двигаться со смещением осей 120 градусов - даже не представляю.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения