РОССИЙСКАЯ АКАДЕМИЯ НАУК Институт проблем машиноведенияСерия «Шагивкибернетику» С А Филиппов Робототехника для детей и родителей Под редакцией д - ра техн наук , проф А Л Фрадкова Издание 3- е , дополненное и исправленное Санкт - Петербург « НАУКА » 2013 УДК 621.86/.87 ББК 32.816 Ф53 Филиппов С.А. Робототехника для детей и родителей. – СПб.: Наука, 2013. 319 с. ISBN 978-5-02-038-200-8 Уже много лет мы читаем в книгах и газетах, слышим по радио и из телеви- зора, что скоро нас будут окружать умные, добрые и интересные роботы. Однако в реальной жизни роботов все нет и нет. Лишь несколько лет назад знаменитая дат- ская компания Lego сделала роскошный подарок любителям мехатроники, роботов и других кибернетических игр и игрушек: выпустила робототехнический конст- руктор Lego Mindstorms NXT, который с успехом используется как дома, так и в учебе. Эта книга одна из первых на русском языке поможет не только самому стро- ить и программировать разнообразных роботов из Lego, но и научить этому дру- гих школьников, студентов. В ней рассматриваются основы конструирования, программирования на языках NXT-G, Robolab и RobotC, а также элементы теории автоматического управления. В третьем издании добавлены описания усовершенствованых конструкций роботов, а также рассмотрены новые задачи: прохождение лабиринта, роботы- манипуляторы, инверсная линия и др. По-прежнему большое внимание уделено алгоритмам управления: от П- и ПД-регулятора для движения по линии до ПИД- регулятора для балансирующего робота-сигвея. Предназначена для преподавателей кружков робототехники школ и вузов, для широкого круга читателей. Р еце нз ент д-р техн. наук, проф. Б. Р. Андриевский ISBN 978-5-02-038-200-8 © С.А. Филиппов, 2013 © Издательство «Наука», 2013 3 ОГЛАВЛЕНИЕ Предисловие..............................................................................................................8 Предисловие автора к третьему изданию............................................................10 Глава 1. Знакомство с конструктором ................................................................11 Введение...............................................................................................................11 Как он может попасть к Вам в руки.....................................................................12 Наборы для школы и дома ...................................................................................14 Основной состав набора: что мы купили? ...........................................................15 Электроника ................................................................................................................15 Детали для конструирования .....................................................................................18 Что потребуется еще? .................................................................................................18 Обзор дополнительных возможностей ................................................................19 Программное обеспечение...................................................................................20 Зарубежные разработки..............................................................................................20 Отечественные разработки.........................................................................................23 Глава 2. Конструирование....................................................................................24 Способы крепления деталей ................................................................................24 Различия принципов конструирования RIS и NXT..................................................24 Первая игра: фантастическое животное....................................................................25 Высокая башня ............................................................................................................26 Механический манипулятор ......................................................................................26 Механическая передача .......................................................................................28 Передаточное отношение ...........................................................................................29 Волчок..........................................................................................................................33 Редуктор.......................................................................................................................36 Глава 3. Первые модели........................................................................................38 Моторы вперед!....................................................................................................38 NXT Program................................................................................................................38 NXT-G ..........................................................................................................................39 Robolab 2.9...................................................................................................................40 RobotC ..........................................................................................................................40 Тележки ................................................................................................................41 Одномоторная тележка...............................................................................................41 Полноприводная тележка ...........................................................................................44 Тележка с автономным управлением ........................................................................45 Тележка с изменением передаточного отношения...................................................50 Робот-тягач ..................................................................................................................52
4 Шагающие роботы ...............................................................................................57 Введение ......................................................................................................................57 Четвероногий пешеход ...............................................................................................59 Универсальный ходок для NXT 2.0...........................................................................66 Маятник Капицы ..................................................................................................73 Двухмоторная тележка.........................................................................................75 Трехточечная схема ....................................................................................................75 Простейшая тележка...................................................................................................76 Программирование без компьютера..........................................................................82 Компактная тележка ...................................................................................................89 Полный привод............................................................................................................91 Глава 4. Программирование в NXT-G ................................................................93 Введение...............................................................................................................93 Знакомство с NXT-G ............................................................................................93 Новая программа.........................................................................................................94 Интерфейс NXT-G ......................................................................................................95 Ветвления.....................................................................................................................97 Циклы...........................................................................................................................98 Переменные .................................................................................................................98 Robo Center...........................................................................................................99 TriBot..........................................................................................................................100 RoboArm.....................................................................................................................101 Spike ...........................................................................................................................103 Alpha Rex ...................................................................................................................104 Глава 5. Программирование в Robolab............................................................. 107 Введение............................................................................................................. 107 Режим «Администратор» ................................................................................... 108 Режим «Программист»....................................................................................... 109 Основные окна ..........................................................................................................110 Готовые примеры программ.....................................................................................111 Взаимодействие с NXT.............................................................................................112 Типы команд ...................................................................................................... 113 Команды действия.............................................................................................. 114 Базовые команды.......................................................................................................115 Продвинутое управление моторами ........................................................................116 Моторы NXT .............................................................................................................119 Команды ожидания ............................................................................................ 120 Ожидание интервала времени..................................................................................120 Ожидание показаний датчика ..................................................................................122 Ожидание значения контейнера ..............................................................................123 Ожидание значения таймера ....................................................................................123
5 Управляющие структуры ................................................................................... 124 Задачи и подпрограммы ...........................................................................................125 Ветвления...................................................................................................................126 Прыжки ......................................................................................................................130 Циклы.........................................................................................................................131 События .....................................................................................................................135 Модификаторы ................................................................................................... 135 Модификаторы-константы.......................................................................................137 Контейнеры ........................................................................................................ 138 Операции с выражениями ........................................................................................143 Интерфейс NXT.................................................................................................. 145 Библиотеки пользователя................................................................................... 147 Глава 6. Программирование в RobotC.............................................................. 148 Введение............................................................................................................. 148 Firmware.....................................................................................................................148 Hello, world! ...............................................................................................................149 Структура программы...............................................................................................150 Управление моторами........................................................................................ 150 Состояние моторов ...................................................................................................150 Встроенный датчик оборотов ..................................................................................151 Синхронизация моторов...........................................................................................152 Режим импульсной модуляции ................................................................................153 Зеркальное направление ...........................................................................................154 Датчики .............................................................................................................. 154 Настройка моторов и датчиков ................................................................................154 Тип датчика ...............................................................................................................156 Задержки и таймеры........................................................................................... 157 Задержки ....................................................................................................................157 Таймеры .....................................................................................................................157 Параллельные задачи......................................................................................... 158 Управление задачами................................................................................................158 Работа с датчиком в параллельных задачах............................................................160 Параллельное управление моторами.......................................................................160 Графика на экране NXT............................................................................................162 Массивы.....................................................................................................................165 Операции с файлами.................................................................................................167 Глава 7. Алгоритмы управления....................................................................... 170 Релейный регулятор ........................................................................................... 170 Управление мотором ................................................................................................171 Движение с одним датчиком освещенности...........................................................172 Движение с двумя датчиками освещенности .........................................................174 Пропорциональный регулятор........................................................................... 176
6 Описание....................................................................................................................176 Управление мотором ................................................................................................176 Синхронизация моторов...........................................................................................180 Взять азимут ..............................................................................................................181 Следование за инфракрасным мячом ......................................................................184 Движение по линии...................................................................................................185 Движение по линии с двумя датчиками..................................................................187 Движение вдоль стенки ............................................................................................188 Пропорционально-дифференциальный регулятор ............................................ 190 Движение вдоль стенки на ПД-регуляторе.............................................................190 Движение по линии...................................................................................................193 Кубическая составляющая ................................................................................. 194 Плавающий коэффициент.................................................................................. 195 ПИД-регулятор................................................................................................... 196 Формат RAW.............................................................................................................198 Элементы теории автоматического управления в школе.................................. 200 Глава 8. Задачи для робота................................................................................. 204 Управление без обратной связи ......................................................................... 204 Движение в течение заданного времени вперед и назад .......................................204 Повороты ...................................................................................................................207 Движение по квадрату..............................................................................................208 Управление с обратной связью.......................................................................... 209 Обратная связь...........................................................................................................209 Точные перемещения................................................................................................209 Кегельринг.......................................................................................................... 210 Танец в круге .............................................................................................................210 Не упасть со стола.....................................................................................................212 Вытолкнуть все банки...............................................................................................212 Не делать лишних движений....................................................................................215 Движение по спирали ...............................................................................................220 Движение вдоль линии....................................................................................... 224 Один датчик...............................................................................................................224 Два датчика................................................................................................................232 Слалом........................................................................................................................247 Инверсная линия .......................................................................................................248 Путешествие по комнате.................................................................................... 250 Маленький исследователь ........................................................................................250 Защита от застреваний..............................................................................................251 Дополнительный датчик...........................................................................................253 Объезд предметов .............................................................................................. 256 Новая конструкция....................................................................................................256 Поворот за угол .........................................................................................................257 Фильтрация данных ..................................................................................................260
7 Роботы-барабанщики ......................................................................................... 262 Предыстория..............................................................................................................262 Калибровка и удар.....................................................................................................263 Управление с помощью датчика..............................................................................265 Создаем свой ритм ....................................................................................................266 Барабанщик с двумя палочками...............................................................................268 Барабанщик на П-регуляторе ...................................................................................269 Запоминание ритма ...................................................................................................270 Лабиринт ............................................................................................................ 272 Виртуальные исполнители .......................................................................................272 Полигон......................................................................................................................272 Робот для лабиринта .................................................................................................273 Известный лабиринт .................................................................................................276 Правило правой руки ................................................................................................279 Удаленное управление ....................................................................................... 281 Передача данных.......................................................................................................281 Кодирование при передаче.......................................................................................286 Дополнительный режим джойстика ........................................................................292 Передача данных в RobotC.......................................................................................295 Роботы-манипуляторы ....................................................................................... 296 Стрела манипулятора................................................................................................296 Манипулятор с захватом ..........................................................................................298 Три степени свободы ................................................................................................300 Шестиногий робот ............................................................................................. 304 Заключение ........................................................................................................... 309 Литература ............................................................................................................ 310 Приложения .......................................................................................................... 311 П.1. Названия деталей ...................................................................................... 311 П.2. Правила состязаний .................................................................................. 312 Регламент соревнований роботов «Кегельринг»....................................................312 П.3. Интернет-ресурсы по Lego Mindstorms NXT............................................ 314 Языки и среды программирования для Lego Mindstorms NXT.............................314 Правила состязаний роботов....................................................................................314 Неофициальный гид изобретателя Lego Mindstorms NXT ....................................315
8 ПредисловиеУже много лет мы читаем в книгах и газетах, слышим по радио и из телевизора, что скоро нас будут окружать умные, добрые и интерес- ные роботы. Однако в реальной жизни роботов все нет и нет. И так же часто в научно-технических журналах мы читаем о мехатронике — удивительной науке на стыке механики, электроники, компьютеров и теории управления (кибернетики). Однако и мехатронными устройст- вами ученые тоже что-то не торопятся нас окружить. И вот несколько лет назад знаменитая датская компания Lego сде- лала роскошный подарок любителям мехатроники, роботов и других кибернетических игр и игрушек: выпустила робототехнический конст- руктор Lego Mindstorms. Из него можно собрать не только фантастиче- ские человекоподобные и другие роботы, не только разнообразные ме- хатронные устройства, но и приборы для измерения, связи, контроля и т.п. Главное же, этот конструктор позволяет легко и с удовольствием научиться самому строить такие штуковины и учить этому молодежь, начиная с возраста 8—10 лет. Следующее поколение киберконструкто- ра, Lego Mindstorms NXT, обладает новыми возможностями: общение по протоколу Bluetooth, богатый набор бортовых датчиков, включая видеокамеры. Неужели скоро мы сами сможем окружить себя киберне- тическими помощниками? Проблема только в одном: нет пока на русском языке подходящих учебников для такого обучения. Однако предлагаемая вниманию чита- теля книга позволяет, кажется, решить и эту проблему. Из ее названия как раз и ясно, что она предназначена научить практической робототех- нике детей и родителей. Причем учить этому, пользуясь советами опытного наставника, который сам прошел все этапы кибертворчества. Сергей Александрович Филиппов имеет опыт руководства круж- ками робототехники в нескольких школах Санкт-Петербурга. Ведет се- минары и мастер-классы для школьных учителей, методистов, для чле- нов команд города на олимпиадах по роботам. Сам ездит на олимпиады и конференции со своими замечательными учениками 1 . Наверное, по- этому книга получилась и увлекательной, и поучительной, и доступной. Поучительной не только для детей и родителей, купивших конструктор, но и для учителей школ, руководителей кружков и преподавателей ву- зов, стремящихся помочь своим ученикам сделать первые шаги в мир техники будущего, в мир робототехники и мехатроники. 1 В ноябре 2012 г. команда из Санкт-Петербурга Hand-Friend под руково- дством С. А. Филиппова в составе сборной России завоевала золотую медаль на Всемирной олимпиаде роботов в г. Куала-Лумпур, Малайзия, с проектом «Грета играет в ладушки». Вот имена чемпионов: Мария Муретова, Денис Никитин, Анд- рей Свечинский. 9 Удовольствие от чтения получат даже те, у кого еще пока нет ки- берконструктора: книга, как золотой ключик, откроет дверь в фантасти- ческую страну кибернетических игр и игрушек, удивительно похожих на многие серьезные автоматические приборы и системы. Мне особенно приятно, что часть описанных в книге идей и прие- мов родилась в ходе нашего совместного проекта «Киберфизическая лаборатория», начатого в 2008 г. физико-математическим лицеем №239 и кафедрой теоретической кибернетики математико-механического фа- культета СПбГУ под эгидой института проблем машиноведения Рос- сийской академии наук (ИПМаш РАН) и поддержанного программой президиума РАН «Поддержка молодых ученых» и федеральной целевой программой «Научные и научно-педагогические кадры инновационной России». Среди других проектов отмечу Санкт-Петербургские олимпиады по кибернетике, проводимые с 1999 г. ведущими вузами города под эгидой ИПМаш РАН. Дальнейшую информацию об олимпиадах, книгах и других наших проектах можно найти на сайте www.cyber-net.spb.ru. Желая книге С. А. Филиппова успеха у читателей, отмечу и то, что за ней должны последовать другие, поскольку она открывает серию на- учно-популярных книг и учебных пособий «Шаги в кибернетику», предназначенную как для школьников и студентов, так и для родителей и преподавателей. Книги серии помогут выбрать будущую профессию, а тем, кто уже сделал свой выбор, помогут сделать первые шаги на пути к профессионализму, познакомиться «изнутри» с современной киберне- тикой: роботами и киборгами, оптимизацией и адаптацией, искусствен- ным интеллектом и управлением хаосом. Девиз серии «Учись играя» означает, что книги будут нацелены не только на обучение, но и на раз- влечение, на воспитание новых поклонников и фанатов увлекательной науки кибернетики, которой так много предстоит сделать в XXI веке. В серии « Шаги в кибернетику » в 2011 — 2013 гг. вышли сле- дующие книги: ¾ В. Г. Быков «От маятника к роботу. Введение в компьютерное моделирование управляемых механических систем», ¾ Р. М. Лучин «Программирование встроенных систем. От модели к роботу», ¾ С. А. Филиппов «Робототехника для детей и родителей», 2-е и 3-е издания, ¾ «Санкт-Петербургские олимпиады по кибернетике 1999—2012». Зав. лабораторией «Управление сложными системами» Института проблем машиноведения РАН доктор технических наук, профессор А. Л. Фрадков 10 ПредисловиеавторактретьемуизданиюВо третьем издании книги добавлено несколько тем, которые могут быть полезны начинающим робототехникам, улучшены иллюстрации, перейти в каталог файлов |