Текст книги "Создаем робота-андроида своими руками"
Автор книги: Джон Ловин
Жанр: Зарубежная образовательная литература, Наука и Образование
сообщить о неприемлемом содержимом
Текущая страница: 11 (всего у книги 22 страниц)
Робот-платформа, управляемый голосом, изображен на рис. 7.7. Плата управления немного отличается от изображенной на рис. 7.4. Причиной этого является то, что мне удалось достать прототип последней версии набора УРР.
Рис. 7.7. Модель автомобиля с голосовым управлением
Последняя версия упрощает построение интерфейса для УРР. Для удобства соединения в плате имеются 9 монтажных пистонов (8 отверстий под 2 полубайта двоично-десятичного кода и отверстие под землю), которые соединены с выходом ИС 74LS373, расположенной на плате. Старший полубайт выхода 74LS373 управляет работой ИС 4028. Запускающий сигнал можно снимать с выводов красного светодиода.
В дополнение к изменениям схемы интерфейса на плате имеется вход 3. В для обновления памяти. Такое включение делает статическую ОП энергонезависимой. Иными словами, вы можете подавать или снимать питание с платы без потери информации о ключевых словах, записанной в ОП. В оригинальной версии выключение питания приводило к потере информации, записанной в ОП.
Проект 3: общая схема интерфейса УРР
Интерфейс УРР для робота-передвижки является специализированной схемой, предназначенной для конкретной цели. Следующая схема интерфейса (см. рис. 7.8) представляет собой более универсальное устройство, дающее возможность управлять целым набором устройств, таких как роботы, электрические схемы и приборы.
Рис. 7.8. Общая схема интерфейса для УРР
Для того чтобы сильно не усложнять схему и в то же время повысить надежность и точность распознавания системы УРР, мы снова ограничимся списком из 10 управляющих команд. Если вы хотите расширить этот список до полных 40 команд, то можете спроектировать интерфейс на основе идей, изложенных в этой главе. Использование 10 ключей управления позволяет нам использовать для каждого ключа 4 возможных варианта распознавания, как мы уже делали выше. Каждый из четырех вариантов распознавания, связанный с ключевым словом, позволяет запоминать различные варианты произнесения ключевого слова. Понятно, что четыре варианта произношения для каждого ключевого управляющего слова позволят повысить надежность и точность распознавания УРР.
Мы будем нумеровать места команд, как мы это делали выше, поэтому все места, соответствующие одному и тому же ключевому слову, будут иметь соответственно одинаковый младший десятичный разряд. Принцип записи будет ясен из примера.
Предположим, что мы проектируем электрическое кресло-каталку с голосовым управлением. Для управления движением кресла мы будем использовать следующий список команд:
• Вперед
• Назад
• Направо
• Налево
• Стоп
• Выключить
• Включить
• Блокировать
• Разблокировать
• Стоп (Команда «стоп» является жизненно важной, поэтому требует дублирования)
Первой командой для обучения распознавания УРР является «вперед». Мы будем использовать номера ячеек 10, 20, 30 и 40. При исключении старшего десятичного разряда в каждом номере мы получим одинаковое значение младшего десятичного разряда, равное 0. Точно так же команда «назад» записывается в ячейки 01, 11, 21 и 31. После исключения старшего десятичного разряда мы получим номер команды равный 1.
Интерфейс должен опознавать коды ошибок и не смешивать их с командами под номерами 5, 6 и 7. Для этого используется схема, состоящая из двух ИС И-НЕ типа 4011, включенных по схеме логических И и ИЛИ (как показано на рис. 7.8), которая обнаруживает коды ошибок 55, 66 и 77.
Соединение с платой УРРПлата УРР имеет 9 отверстий под пайку, соединяющих ИС 74LS373 и 7448 для подключения схемы интерфейса (см. рис. 7.8). Восемь шин представляют 2 четырехбитных двоично-десятичных кода, девятая шина – земляная. Имеется контактная площадка красного светодиода. К этой площадке припаивается проводник, который является запускающим входом платы интерфейса.
Принцип работы устройстваПрежде всего интерфейс должен реагировать на любое слово, воспринятое УРР. Когда УРР «слышит» слово, оно пытается его распознать, что вызывает немедленное мигание светодиода.
Ток через светодиод используется для запуска интерфейса (реакция на слово). Для формирования импульса запуска используется компаратор, подключенный к катоду светодиода. Опорное напряжение составляет 3,64 В и формируется резистивным делителем 5,6 кОм и 15 кОм.
Выход компаратора имеет нормально высокий уровень. При поступлении импульса амплитудой 4,5 В с катода светодиода, на выходе компаратора формируется отрицательный импульс запуска. В качестве компаратора использован ОУ типа 741.
Процесс распознавания речи занимает до 300 мс. Во время этой задержки состояние двоично-десятичных выходов сохраняется неизменным. Если интерфейс работает слишком быстро, то он завершит обновление информации на выходе до появления входной информации, содержащейся в двоично-десятичных кодах.
Для предотвращения этого явления мы обеспечиваем задержку отрицательного импульса запуска, используя две ИС таймеров типа 555 (или одну ИС типа 556), включенных по схеме одновибратора. Отрицательный импульс с выхода компаратора запускает первый одновибратор, который выдает импульс длиной 470 мс, подаваемый на вход второго одновибратора. Второй одновибратор генерирует импульс длиной 220 мс.
Импульс длиной 470 мс предоставляет более чем достаточно времени для обновления выходов двоично-десятичного кода. Задний отрицательный фронт этого импульса запускает второй одновибратор, который выдает положительный импульс продолжительностью 220 мс. В это время происходит обновление выходов интерфейса при условии, что детектор кодов ошибок имеет высокий логический уровень на выходе.
Выход второго одновибратора (импульс 220 мс) соединен с одним из входов логического элемента И. Другой вход соединен с двумя другими логическими элементами (ИЛИ-НЕ и ИЛИ), которые образуют детектор кодов ошибок. Детектор кода ошибок соединен со старшим полубайтом двоично-десятичного кода. При наличии кода, соответствующего цифрам 5, 6 или 7 на входе детектора, он выдает низкий логический уровень на выходе. Для остальных цифр детектор имеет высокий выходной уровень. В этом случае позитивный импульс с выхода второго одновибратора запускает интерфейс для принятия младшего полубайта двоично-десятичного кода.
Высокий логический уровень на выходе детектора кода ошибок в комбинации с положительным импульсом с выхода второго одновибратора вызывает появление высокого уровня на выходе логического элемента И, что разблокирует ИС 74LS373. Когда ИС 74LS373 разблокирована, то код, содержащийся в младшем полубайте двоично-десятичного кода, поступает с ИС и записывается в ней. Четыре выхода ИС 74LS373 соединены с входами двоично-десятичного дешифратора 4028.
С другой стороны, если на выходе детектора кода ошибок присутствует сигнал низкого уровня, что происходит при наличии цифр 5, 6 или 7 в старшем разряде, то соответствующий выход элемента И имеет низкий уровень. В этом случае, при наличии положительного импульса от второго одновибратора на втором выводе логического элемента И, его выход по-прежнему имеет логически низкий уровень, тем самым ИС 74S373 блокируется, и информация младшего разряда не поступает на дешифратор 4028.
Таким путем, детектор кода ошибок отделяет числа 55, 66 и 77 от команд под номерами 5, 6 и 7.
При прохождении двоично-десятичного кода через ИС 74LS373, он поступает на вход дешифратора 4028. Дешифратор считывает данный код и выдает сигнал высокого уровня на соответствующей шине выхода (с номерами от 0 до 9).
Усовершенствование выхода интерфейсаВыходы высокого логического уровня ИС 4028 можно использовать для управления нагрузками переменного и постоянного тока. Однако лучшим вариантом является подключение выходов 4028 к триггерам. Дело в том, что в конкретный момент на выходе ИС 4028 присутствует единственный сигнал высокого уровня. По этой причине если в какой-то момент один из выходов включается, то сигнал на выходе, задействованном до того, пропадает, что представляет определенное неудобство. Наличие триггера позволяет решить эту проблему. При первом включении на выходе триггера появится сигнал высокого уровня, который сохранится до подачи на него следующего импульса. Такая схема позволит осуществлять двойное управление (включение и выключение) с помощью одной команды.
Первоначально имеется возможность активировать любое количество выходов без риска сброса уже включенных. Затем та же самая команда может быть использована для включения нагрузки (при первом произнесении) и затем ее выключения (при следующем произнесении). Таким образом, вместо использования пары команд для включения/выключения устройства (например: включить свет/выключить свет) возможно использование единственной команды, которая в «четный» раз выключает устройство (свет-свет). В некоторых случаях это позволяет удвоить список допустимых команд.
На рис. 7.9 показана схема триггера на ИС 4013. Каждая ИС содержит два триггера. Входы триггеров соединены непосредственно с выходами ИС 4028.
Рис. 7.9. Половина триггера 4013 для запоминания сигнала. Соединяется непосредственно с выходом ИС 4028, изображенной на рис. 7.8, и предназначена для сохранения включенного состояния схемы при включении следующей команды
На рис. 7.10 изображена одна схема и два фрагмента схем присоединения к выходу триггера для управления нагрузками различных типов. На части А изображен Дарлингтоновский NPN транзистор, управляющий резистивной нагрузкой в цепи постоянного тока. Подобная схема может быть использована для управления электромагнитным реле, как показано в В. Реле, соответственно, может управлять цепями постоянного или переменного тока. В части С выход 4013 соединен с оптопарой, управляющей симистором.
Рис. 7.10. Данные схемы могут быть подключены к интерфейсу, чтобы обеспечить управление схем с помощью УРР. В схеме на позиции А в качестве ключа используется триггер, управляющий Darlington транзистором. В позиции В транзистор заменен реле, что позволяет управлять сильноточными резистивными или индуктивными нагрузками постоянного и переменного тока. Схема на позиции С, объединенная с триггером позиции А позволяет осуществить гальваническую развязку между силовыми и управляющими цепями, управляя при этом включением нагрузки переменного тока
Работа устройстваСхема УРР первоначально «обучается», как описано выше. После соеди нения с интерфейсом, любая команда вызовет свечение светодиода или какую-то реакцию устройства в зависимости от того, что присоединено к вы ходам двоично-десятичного дешифратора 4028.
Улучшение процесса распознаванияСуществует набор приемов для улучшения и оптимизации процесса распознавания. Прежде всего это выбор слов-команд. Избегайте омонимов и сходно звучащих слов, например, таких как спать, брать, встать, класть. Для оптимизации распознавания используйте максимально различные по звучанию слова. Во многих случаях полезно использовать синонимы или слова, имеющие приблизительно тот же смысл. Например, вместо слова «спать» используйте «дремать» или «уснуть». Вместо «брать» используйте «захватить» или «поднять». Вместо «встать» – «подняться». Слово «класть» можно заменить на «положить». Небольшие филологические изыскания помогут справиться с этой проблемой.
Настройка и сопряжение оборудованияРасстояние. Расстояние ото рта говорящего до микрофона должно быть одинаковым при «обучении» системы и ее эксплуатации.
Стресс. Под действием стрессового состояния или волнения голос изменяется. Например, если вы используете джойстик с голосовым управлением для контроля полета вашего любимого тренажера военного самолета, то в момент жаркого воздушного боя ваш голос, выкрикивающий команды «Огонь! Огонь! Крен влево!», будет немного отличаться от голоса в ситуации, когда вы спокойно сидите за столом и программируете УРР. По этой причине во время процесса программирования звуковых команд вы должны имитировать состояние стресса или возбуждения, которое вы чувствуете во время игры.
Напряженное усилие. Физический стресс является еще одним фактором. Когда вы программируете тренажерное оборудование (беговую дорожку или велосипедный тренажер) для управления голосом, вы должны подражать людям с немного сбитым дыханием.
Окружающий шум. Окружающие шумы всегда представляют собой проблему. Как было отмечено выше, постоянный шум (например, от кондиционера) оказывает меньшее влияние, чем шум, носящий случайный характер (работающий телевизор).
Рука робота, управляемая УРРВ гл. 15 будет рассмотрен еще один вариант интерфейса, управляющий рукой робота.
Список деталей для УРР
• (1) ИС1 HM2007
• (1) ИС2 SRAM 8K x 8
• (1) ИС3 74LS373
• (2) ИС4 и ИС5 7448
• (1) резонатор кварцевый 3,57 МГц
• (1) печатная плата УРР
• (1) клавиатура 12-кнопочная
• (2) индикатор 7 сегментов
• (2) сборка резисторов 220 Ом, 0,25 Вт, 16 выводов
• (1) резистор 22 кОм 0,25 Вт
• (1) резистор 5,6 кОм 0,25 Вт
• (1) конденсатор 0,047 мкФ
• (1) С2 конденсатор 100 мкФ 16 В
• (1) С5 конденсатор 0,1 мкФ
• (1) регулятор напряжения 7805
• (1) микрофон
• (1) зажим батареи 9 В
• полный набор деталей УРР
Список деталей интерфейса
• (2) ИС 4011 2 элемента ИЛИ-НЕ
• (1) ИС 74LS373 8 D триггеров
• (1) ИС 4028 двоично-десятичный дешифратор
• (1) ИС таймер 555
• (1) ОУ LM741
• (1) резистор 5,6 кОм
• (1) резистор 15 кОм
• (1) резистор 330 Ом
• (2) резистор 10 кОм
• (10) резистор 470 Ом
• (1) конденсатор 47 мкФ
• (1) конденсатор 22 мкФ
• (2) конденсатор 0,01 мкФ
• (10) светодиод миниатюрный
• Дополнительно: ИС 4013 2 D-триггера, транзистор TIP 120 NPN Darlington
Детали можно заказать в:
Images Company
39 Seneca Loop
Staten Island, NY 10314
http://www.imagesco.com
Глава 8
Поведенчески ориентированные схемы роботов, нейронные сети, организация нервной системы и предикативная архитектура
В этой главе обсуждается класс роботов, не имеющих ЦПУ в основе схемы управления. Подобные роботы функционируют на принципах стимул-реакция, характерных для нейронных сетей.
Стимульно-реактивные механизмы, используемые в роботах, носят ряд названий, таких как нейронные сети, поведенчески ориентированные схемы, схемы нервной организации и системы предикативной архитектуры. Пионером данных работ является Вильям Грей Вальтер, создавший поведенчески ориентированные системы в конце 40-х годов. Независимо от работ Вальтера схемы реагирования роботов, построенные на принципах нейронных сетей, были научно разработаны и усовершенствованы Валентино Брайтенбергом в 80-х годах, что нашло отражение в его книге: Передвижные устройства: опыты синтетической психологии. Вдохновленный работами Вальтера профессор Массачусетского технологического института Родни Брукс разработал свою версию реагирования на стимулы, названную им «предикативной архитектурой». В свою очередь Марк Тилден, воодушевленный работой, проделанной Родни Бруксом, создал систему BEAM роботов, использующих «нервные сети».
Тема поведенчески ориентированных роботов является очень актуальной в настоящее время и, безусловно, окажется еще более важной в будущем. В системах подобной архитектуры механизмы типа «стимул-реакция» могут надстраиваться один над другим. Устройство с иерархически многослойным построением механизмов стимул-реакция может демонстрировать поразительно «разумное» поведение, как робот-охотник за «светом», описанный ниже.
До определенного времени для описания механизма «стимул-реакция» я буду использовать термин «поведенчески ориентированный». Поведенчески ориентированный подход явялется одним из двух основных подходов к снабжению роботов «интеллектом», как это было описано в гл. 6. Один из них называется интеллект «сверху вниз», а второй – интеллект «снизу вверх».
Для внесения «интеллекта» в устройство управления функциями передвижного робота (используя термин «функция» я ограничиваю для простоты возможную область обсуждения функциями движения и обследования окружающего пространства, но это является, несомненно, действительным ограничением для использования иных подходов) необходимо решить, какой из подходов окажется наиболее успешным для выполнения задания. Интеллект, управляющий функционированием устройства «сверху вниз», представляет собой экспертную систему или программу для осуществления заданного типа поиска и обнаружения. Подход «снизу вверх» опирается на создание системы искусственного поведения робота, которая обусловливает его поисковые действия.
На первый взгляд, между этими двумя подходами нет существенной разницы, однако имеется одно очень важное различие. Если экспертная система окажется в ситуации (или внешних обстоятельствах), не предусмотренных программой, то робот окажется в «нерешительности». С другой стороны, система поведения, не ориентированная на поиск шаблонных «запрограммированных» ситуаций для расчета вариантов реагирования, не придает «значения» окружающим обстоятельствам – она просто продолжает поиск.
Экспериментальная работа, проведенная в течение 30 лет, показала, что подобные системы с типом «интеллекта» «снизу вверх», т. е. поведенчески ориентированные, в ряде случаев успешно справлялись с заданиями, когда экспертные системы терпели поражение.
Пионеры в робототехнике
Как уже отмечалось, одним из пионеров в разработке поведенчески ориентированного подхода («снизу вверх») в робототехнике был Вильям Грей Вальтер. Он родился в Канзас Сити штат Миссури в 1910 году. Когда ему исполнилось пять лет, его семья переехала в Англию. Там он посещал школу и окончил Королевский колледж в Кембридже в 1931 году. После окончания он занялся фундаментальными исследованиями в области нейрофизиологии, которые проводил в госпиталях.
В начале своей карьеры Вальтер заинтересовался работами русского физиолога И.П. Павлова, знаменитого своими исследованиями механизмов «стимул-реакция», проводимых на собаках. В своих экспериментах Павлов звонил в звонок непосредственно перед тем, как дать пищу подопытным собакам. Через некоторое время собаки реагировали слюноотделением на сам звонок.
Другой современник Вальтера Ганс Бергер изобрел электроэнцефалографический аппарат. Во время визита Вальтера в лабораторию Бергера он предложил некоторые усовершенствования электроэнцефалографа. После переделки чувствительность прибора возросла, и в человеческом мозгу были обнаружены ЭЭГ кривые с частотами ниже 10 Гц.
Изучение Вальтером работы человеческого мозга привело его к изучению нейронных сетей мозга. В силу их исключительной сложности биологические нейронные сети оказалась недоступными для точной топологической картины или воспроизводства. По этой причине он выбрал объектом изучения отдельный нейрон и его электрический аналог. Он стремился узнать, какой тип поведения может быть получен в системе, состоящей из нескольких нейронов.
Для ответа на этот вопрос в 1948 году Вальтер построил трехколесный робот, имеющий вид черепахи. Размеры робота составляли 12" в высоту и около 18" в длину. Что оказалось удивительным – этот робот использовал только два электрических нейрона и при этом демонстрировал достаточно сложное и интересное поведение. Первые два робота были нежно названы Элмер и Элси (ЭЛектро МЕханический Робот и Electro Sensitive (Светочувствительный)). После наблюдений за сложным типом поведения, который демонстрировали роботы, Вальтер переименовал их в Machina Speculatrix (рассуждающая машина).
Помните, что в 40-годы транзистор еще не был изобретен, поэтому в электронных нейронах робота были использованы электронные лампы. Поскольку электронные лампы потребляют значительно большую мощность, чем транзисторы, оригинальная конструкция содержала аккумуляторы большого размера.
Нервная система или система рефлексов робота состояла из двух датчиков, соединенных с двумя нейронами. Один из датчиков представлял собой фотосопротивление, а другой – контактный выключатель, соединенный с внешней оболочкой робота.
Три колеса робота были расположены в виде треугольника. Переднее направляющее колесо было снабжено рулевым приводом и при этом могло вращаться на 360° в одном направлении. Кроме того, с этим же колесом был соединен ходовой двигатель, обеспечивающий поступательное движение робота. Поскольку рулевой механизм мог поворачиваться на полные 360°, питание ходового двигателя осуществлялось через два контактных кольца, установленных на оси привода.
Фоторезистор был также закреплен на оси привода рулевого механизма колеса. Это позволило автоматически совместить ось «взгляда» фоторезистора и направление движения робота.
Правообладателям!
Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.