Шагающие роботы
В представлении любителей фантастики робот - человекоподобное создание. Конечно, сейчас уже существует множество технологически сложных роботов, которые даже отдаленно не похожи на людей. Тем не менее, человек придуман достаточно хорошо для нашего мира, и в будущем неоднократно возникнет потребность заменить его в таких ситуациях, где потребуются качества, пока не востребованные в промышленности. Одно из них - умение ходить. Создать двуногого робота и заставить его эффективно перемещаться - задачка, над которой трудятся тысячи специалистов по всему миру. Уже сделан бегающий робот-андроид Asimo и множество его аналогов. Робот Alpha Rex, рекламируемый компанией Lego, тоже может перемещаться на двух ногах, но ходьбой это можно назвать с натяжкой. Однако даже его конструкция довольно сложна (ее можно найти на компакт- диске, прилагающемся к наборам 8527 и 8547, в электронном учебнике, встроенном в среду программирования Lego Minstorms NXT).
Тема шагающих роботов очень обширна. Мы коснемся лишь малой ее части. Однако и это небольшое знакомство, как правило, вызывает восторг детей и удивление взрослых. Простота базовых конструкций и минимальное количество деталей позволяют собрать NXT «на ножках» практически из любого набора. Но кажущаяся легкость требует высокой точности, что многим не сразу дается. Вместо движения вперед робот начинает прихрамывать или «танцевать рок-н-ролл». В чем ошибка? Для того чтобы разобраться, пройдем весь путь.
Наиболее подходящим для начального изучения представляется четвероногий робот. Двуногому потребуется увеличивать площадь стопы, как у Alpha Rex, или вовремя переносить центр тяжести, что является сложной инженерной задачей. Большее количество ног (8, 12, 16) может придать роботу маневренности, но значительно усложнит проект.
Робот на четырех ногах устойчив, как табурет. При правильном соединении он будет двигаться по прямой линии, притоптывая подобно маленькому слонику. Как и у тележки, его первая задача проста: идти вперед.
Сформулируем требования к конструкции:
- механизм должен стоять на поверхности, упираясь только на четыре конечности, каждая из которых не может совершать вращательное движение вокруг одного центра;
- движение конечностей должно быть возвратно-поступательным;
- в конструкции робота запрещено использование колес, соприкасающихся с поверхностью земли;
- конечности робота приводятся в движение одним мотором с помощью механической передачи;
- мотор подсоединен к источнику питания;
- центр тяжести робота должен быть смещен вперед по ходу движения.
Последнее требование нетрудно понять, если понаблюдать за тем, как мы ходим: каждый шаг - это падение. Раз падение, значит, центр тяжести смещен вперед. Главное, вовремя выставить ногу.
О расположении центра тяжести стоит позаботиться заранее, чтобы не приходилось потом навешивать дополнительные грузы. Важно правильно (относительно расположения шестеренок) прикрепить микроконтроллер, в котором сосредоточена основная масса - «тело» робота.
Немного странным может показаться выбор длины осей: потребуется 5- и 6-мо- дульная ось. Они вставляются в мотор с двух сторон так, чтобы из соответствующих балок выступали части осей длиной ровно 1 модуль.
На эти оси надеваются 24-зубые шестеренки (рис. 7), остальные устанавливаются на светлые штифты-полуоси: серые или бежевые. Синие для этой
На ведущие оси насаживаются 24-зубые шестерни цели не подойдут, поскольку создают очень большое трение.
Наиболее сложная задача - выравнивание шестеренок. Все четыре основные шестерни (24 зуба) должны быть расположены так, чтобы пары отверстий в них были строго параллельны друг другу. Расположение 40-зубых центральных шестеренок не играет роли.
Когда шестерни повернуты правильно, можно приступать к установке штифтов, на которые будут крепиться «ноги».
Часть из восьми гладких штифтов вставляются в 24-зубые шестеренки симметрично относительно центра большой шестерни. И ровно наоборот с другой стороны: то есть если справа от NXT они были ближе к центру, то слева должны быть дальше от центра.
Кроме того, по два штифта с каждой стороны устанавливаются в NXT в точности в соответствии с рисунком.
Вращательное движение, преобразуемое в поступательное, совершается с помощью системы из двух коленец (балок), скрепленных гладкими штифтами (рис. 13). По сути, нам придется построить криво- шипно-шатунный механизм, который используется, например, в двигателе внутреннего сгорания.
Все коленца одинаковы. Остается их правильно подсоединить. Балки к шестеренкам следует крепить по принципу: диагонально-противоположные конечности движутся одинаково, а соседние отличаются от них на пол-оборота. При этом следует использовать гладкие штифты, они обычно имеют светло-серый цвет.
Для поддержания равновесия конечности робота могут быть немного расставлены вперед-назад. Для этого каждый «сустав» должен находиться над осью вращения соответствующей шестерни, немного смещенной к центральной. В соответствии с этим правилом, надо подобрать длину коленца, а также точку его крепления к микроконтроллеру.
Для запуска шагающего робота потребуется довольно простая программа: «мотор B назад». Рассмотрим ее варианты для нескольких сред программирования.
Во встроенной оболочке NXT есть возможность включить моторы B и C с мощностью 75%, не прибегая к компьютеру. При этом в некоторых версиях оболочки (Firmware) по умолчанию требуется, чтобы были подсоединены обязательно оба мотора. В случае если хотя бы одного из них не хватает, выдается ошибка. Однако вращение так или иначе происходит. В частности, в оригинальной прошивке Lego Mindstorms NXT такое движение будет прерывистым. Избавиться от этого можно подсоединением второго мотора.
Итак, в квадратных ячейках требуется разместить всего 5 команд:
Backward
Empty
Backward
Empty
Loop
Созданную программу можно сохранить, и она появится в меню NXT Files, расположенном в разделе My Files.
В этой среде программа, запускающая мотор A вперед, выглядит так:
Создайте цикл, который будет выполняться постоянно, а в него поместите пиктограмму «Движение». В окне свойств установите галочку напротив мотора A, задайте максимальную мощность и установите продолжительность «Без ограничения».
Загрузить программу в NXT можно, щелкнув мышкой кнопку «Загрузка» на командном центре, предварительно соединив NXT с компьютером и включив его.
Программа появится в памяти NXT в меню My Files ® Software Files с именем, которое вы ей дадите в среде при сохранении файла. По умолчанию, это Untitled-1.
В среде Robolab включить мотор B можно аналогичным способом.
В разделе «Программист» кликните дважды Inventor 4 и на белом поле создайте программу, показанную на рисунке.
Для загрузки программы в NXT необходимо кликнуть по белой стрелочке в левом верхнем углу экрана. Если NXT ответил звуковым сигналом, значит, все прошло успешно. Программа появится в меню My Files ® Software Files с именем «rbl».
Вот почти самая короткая программа на этом замечательном языке:
Для загрузки программы нажмите F5, после чего, не дожидаясь звукового сигнала, ищите ее в меню NXT My Files ® Software Files.
Еще раз следует обратить внимание на то, что в предложенной конструкции мотор должен вращаться не вперед, а назад (рис. 20). Если запустить его вперед, робот будет пританцовывать на месте, почти не перемещаясь.
Итак, робот пошел. Теперь вам представляется свобода творчества. Варьируя длину конечностей, размер «плеча» и «колена», смещение центра тяжести, можно получить самые неожиданные эффекты в «походке» робота. Можно нацепить «башмачки» или даже колесики с храповым механизмом.
Если есть два набора, стоит провести небольшой конкурс «Гонки шагающих роботов». Правила просты: пройти по коридорчику шириной 20-40 см расстояние в 1-2 м. Для эффективного прохождения этой дистанции потребуется небольшая доработка конструкции, которую можно сделать самостоятельно.
Используя полученный опыт, можно построить «шагоход» с любым количеством конечностей. Например, шестиногий двухмоторный робот при правильном алгоритме сможет не только довольно быстро передвигаться, но и поворачиваться на месте, меняя траекторию движения.
Составляя ЭЭ-модель шагающего робота в среде LDD, автор был вынужден прибегнуть к некоторым хитростям для крепления конечностей к шестеренкам. Обычным способом точно повернуть сразу две балки довольно сложно. К счастью, в новой версии программы как на заказ появилась система автоматического позиционирования соединяемых отверстий - инструмент Hingle Aligh Tool (Shift-H).
Достаточно указать специальным курсором два отверстия - и с конструкцией начинают происходить интересные метаморфозы, которые при успешном исходе приводят к тому, что отверстия располагаются в точности одно напротив другого.
После применения инструмента Hingle Aligh Tool можно брать ось или штифт и быть уверенным, что он без проблем встанет на место.