четверг, 18 ноября 2010 г.

Трехзвенный ползающий робот (немного о механике)

Продолжим описание нашего замечательного робота!:)
Как мы уже говорили, этот робот попал нам уже с готовой механикой - поэтому ни с редукторами, ни с корпусом мы не мучились (ну почти). Однако, при изучении движения возник следующий вопрос: за счет чего должен двигаться робот? Мнения разошлись - более несведущая часть считала, что он будет двигаться за счет переменных асимметричных сил инерции (т.е. внутренних сил), более сведущая сказала, что это не по Ньютону и робот двигается всегда за счет внешней силы трения.. на этом и остановимся. Сила трения, как известно, пропорциональна коэффициенту трения, который зависит от свойств соприкасающихся поверхностей. На роботе установлены пластиковые "лапы", которые скользят по полу.

Так как в нашей лаборатории пол неровный, как и в суровой реальной обстановке, то часто возникала ситуация, что при движении робот цеплялся лапами за выступы и впадины и двигался не так хорошо как надо..мы решили устранить этот недостаток, установив "оригинальную систему подрессоривания и адаптации коэффициента трения". В качестве нее выступил поролоновый утеплитель, покрытый фольгой снизу:
  Мы наклеили эти кругляшочки на лапы робота с помощью Андрея и универсального супер-клея:

Данное техническое решение значительно улучшило тактико-технические характеристики робота в условиях нашей суровой курской лаборатории - скорость и траектория стабилизировались.
Также было решено установить систему охлаждения на микросхемы системы управления - все таки коммутируемая мощность составляет 150 Вт. Для этого в корпусе для плат был сделан разъем для охлаждения:

Несмотря на сложности компоновки, система была успешно собрана, а компьютерный кулер должен решить все возможные проблемы перегрева. Так выглядит робот в сборе:
Колеса на краях не несут прямой функциональной нагрузки - они предназначены для изучения влияния различных масс на параметры движения робота, а также предохраняют лабораторию от повреждений при случайном контакте.
Скоро это все оживет и будет ездить!

понедельник, 15 ноября 2010 г.

Трехзвенный ползающий робот (энкодер vs потенциометр)

Всем привет!
Продолжение эпопеи не заставило себя долго ждать. Вкратце, напомним, что нужно было научить робота двигать лапами. Для этого необходимо осуществить регулирование скоростью и перемещением выходного звена. При этом в качестве датчика можно использовать либо, уже установленный инкрементный энкодер, либо аналоговый потенциометр. Оба этих решения имеют свои недостатки.
Энкодер плох тем, что он не дает сведений о положении звена, а еще энкодер подобран высокоточный - 500 импульсов за оборот, и того при частоте 8000 оборотв в минуту, и того 67000 импульсов в секунду. При этом хотелось бы напомнить что с энкодера идет два канала(ну чтобы определять направление вращения) и того в два раза больше, а вообще энкодера 2, и того получили почти 268КГц, ну то есть требуется очень много ресурсов контроллера чтобы просто получить значение перемещения, а ведь контроллеру нужно еще генерировать ШИМ, общаться с компом, мигать лампочками и т.д.С потенциометром тоже много проблем, во первых даже в дорогих резистивных датчиках погрешность достигает 10%, а те что мы купили стоили 15 рублей штука:) Также потенциометр это контактный датчик, следовательно имеет место износ, всякие неточности дребезг и т.д. А еще аналоговому датчику нужно АЦП. Еще хочу обратить внимание на то что датчик нужно установить на оси вращения и связать с выходным звеном (лапой), а это требует каких-то оригинальных механических решений, и т.д.

А теперь немного любопытных графиков. Мы подключили оба датчика к нашей замечательной платке управления, и покрутили лапой вручную, получилось вот так:
Как видим, данные отличаются, при этом видно, что потенциометр дает значительную ошибку показаний, это связано с его значительной нелинейностью, при этом ошибка достигает 25%. Далее попробуем отработать синус с помощью систему управления, снимая показания с датчиков:
Как видно из графиков, наблюдается смещение друг относительно друга, как по времени, так и по значению. Отставание по времени обусловлено временем обработки сигнала. Смещение графиков по значению, как и в предыдущем графике обусловлено нелинейностью резистивных датчиков. И казалось бы решение очевидно, выкинуть аналоговые датчики и делать все на энкодерах, пытаясь программно решить проблемы связанные с их "не абсолютностью". Но вот еще один график:Если кто нет понял сразу, объясню. При отработке синуса по энкодерам, происходит закономерное накопление ошибки, шаг за шагом "лапы" робота сдвигаются все ближе и ближе. Наиболее вероятное объяснение этого явления - нехватка производительности., о чем и говорилось еще при первичном анализе датчиков. В итоге, энкодеры использовать нельзя, так как системе управления не хватает производительных ресурсов, для обработки высокочастотного сигнала с двух датчиков одновременно, а потенциометры не достаточно точны.
Какие можно сделать выводы? Ну наверно нужно было подумать, когда выбирались такие высокоточные энкодеры на мотор редуктор, когда за проход выходным звеном 180 градусов, на САУ поступает 25 000 импульсов!!! И того точность составляет 0.0072 градуса, для динамической системы, которая должна отрабатывать два положения с разной скоростью, ну а если еще учесть, что мертвый ход, даже самого навороченного редуктора, без спец. приспособлений при таком передаточном отношении будет... ну пол градуса минимум, то в итоге становится грустно.
Но мы нашли решение, о нем в следующих сообщениях.
Продолжение следует...

четверг, 4 ноября 2010 г.

Трехзвенный ползающий робот(введение)

Всем большой привет!

Пришло время рассказать нашим читателям про одну очень интересную вещь. Про трехзвенного ползающего робота. У этого робота очень длинная история, родился он беспомощным набором железок в Германии, после этого обрел идею в славном ИПМехе РАН, и наконец закончить путь своего славного становления прибыл к нам, в лабораторию 221, кафедры ТМиМ (http://mechatronics.kursk.ru/), где мы уверены приобретет новую жизнь!
Вот фотка этого замечательного робота:
Как видим робот состоит из трех звеньев соединенных между собой посредством мотор-редукторов, на каждом моторе стоит инкрементный энкодер. Робот размахивает "лапами" и передвигается. Про алгоритмы движения расскажем как-нибудь в другой раз, а сейчас поговорим о системе управления. Для удобства прочтения разобьем рассказ на несколько частей.