О роботе

Исследования роботов, мысли и идеи на эту тему

Четырехногий робот

Неспособность первого варианта робота самостоятельно двигаться привело с созданию новой модели — робота с четырьмя ногами. Целью создания этого варианта — научить робота самостоятельно передвигаться в пространстве. Вот что получилось:

Характеристики:

  • Материал — 3 мм акрил (оргстекло).
  • Размеры — корпус: 200х200х56, нога бедро: 140, лодыжка: 160.
  • Общий вес — 1800 гр .
  • Сервоприводы TowerPro MG995, HXT12K. По три в каждой ноге.
  • Контроллер — OR-AVR-M128-S + модуль подключения по OR-USB-UART
  • Два блока питания TURNIGY 8-15A UBEC. Питание внешнее.
  • Гироскоп, акселерометр, компас, термометр Pololu MinIMU-9
  • Датчик тока, напряжения (спаян самостоятельно, ACS713).
  • Моделирование деталей Компас 3D
  • Управление роботом — с компьютера, собственной программой на hta + jsсript.

Видео движения робота:

Как видно из видео основная цель достигнута — робот умеет самостоятельно перемещаться. Причем может двигаться в любом указанном направлении. Однако, его движение далеко от оптимального. Это связано с тем, что центр тяжести робота находится точно посередине, поэтому, для того, что бы оторвать и переместить  любою ногу необходимо сместить центр тяжести в сторону, противоположную перемещаемой ноги, что бы робот сохранил равновесие и не упал. Из за смещения центра тяжести при перемещении каждой ноги робот движется медленно постоянно раскачиваясь и меняя центр тяжести.

Для движения этого робота пришлось перейти на вариант управления следующего поколения. Если первый вариант робота управлялся ручной установкой углов поворота сервоприводов, запоминание позиций и затем воспроизведение сохраненных позиций по порядку, то для этого робота такой вариант управления оказался слишком трудоемким. Поэтому пришлось создать сначала математическую модель одной ноги, затем системы из четырех ног. В этом варианте, достаточно задать смещение в координатах X и Y и робот самостоятельно выполнит все расчеты  последовательно переместив каждую ногу в нужное положение. В таком варианте управлять движением робота стало гораздо проще и удобнее.

Трудности:
Обнаружилась нелинейность угла поворота сервоприводов, особенно на углах больше 50 градусов.  Кроме того, у некоторых сервоприводов нелинейность есть и в районе углов близких к 0. Так же разные сервоприводы по разному меняют угол наклона под нагрузкой. Все эти факторы приводят к небольшим нарушениям геометрии движения робота. Отличным вариантом исправления этого было бы добавление сенсора поворота для каждого сервопривода (интересно попробовать, например, такой Magnetic Rotary Position Sensors), но это дополнительное усложнение и удорожание конструкции. Зато позволило бы создать обратную связь контроллирующую реальное положение сервопривода. Такая связь позволила бы вносить коррективы в положения сервоприводов, компенсирующие нелинейность и изменение положения под нагрузкой. Еще более интересным вариантом видятся сервоприводы с встроенным датчиком поворота, если не ошибаюсь такие существуют. Кроме того, есть еще вариант подключиться к резистору поворота в самом сервоприводе и снимать сигнал оттуда. В этом случае потребуется некоторая доработка привода, но весьма простая. Остается вопрос, можно ли снимать данные с резистора не нарушая работу электроники сервопривода? Если да, можно будет получить недорогой сервопривод с встроенным датчиком поворота. Хотя, сам сервопривод опирается на показания этого же резистора, поэтому обратная связь такого рода вроде как бессмысленна. Возможно нелинейность поворота связана как раз с нелинейностью резистора. Одним словом, интересно проверить эту идею.

Добавить комментарий