Рис. 8.146. Удар по мячу роботом с третьим мотором. Для управления третьим мотором используется параллельная зада- ча, вход в которую контролируется контейнером-семафором udar. На время выполнения удара семафор «запрещает» повторный вызов задачи и обеспечивает корректную работу программы. Пример робота с ударным механизмом изображен на рис. 8.147. Его разработал ученик физико-математического лицея № 239 Илья Бал- ташов. Игра в футбол с такими роботами происходит в формате 3 ´ 3 или 5 ´ 5 на поле размером 4 ´ 6 м. В качестве покрытия используется ковролин. Мяч для гольфа оказался наиболее подходящим для такого размера роботов, хотя можно использовать и мячик из набора 9797. Рис. 8.147. Робот с ударным механизмом для игры в футбол. Существует множество приложений для ноутбуков и мобильных телефонов, с помощью которых можно управлять таким роботом (на- пример, nxtremote). Их преимущество — высокое быстродействие. Их недостаток — отсутствие возможности развития алгоритма. Если же составлять программу самостоятельно, то, используя методы кодирова- ния, можно достичь интересных результатов во взаимодействии чело- века с роботом.
296 ClearMessage(); // Можетнеработатьв RobotC 3.0 temp = message; } if (message!=0) { k=message-1; // Сообщениеприходитна 1 больше v=messageParm[1]; u=messageParm[2]; motor[motorA]=v+u; motor[motorB]=v-u; nxtDisplayTextLine(0, "k=%d", k); nxtDisplayTextLine(1, "v=%d", v); nxtDisplayTextLine(2, "u=%d", u); wait1Msec(10); } } } В среде RobotC реализованы команды подключения к другому уст- ройству в программном режиме, а также ряд других возможностей Bluetooth, позволяющих повысить стабильность работы. Примеры на- ходятся в папке Sample Programs\NXT\Bluetooth Communication. Роботы-манипуляторыИспользование манипуляторов стало обыденным явлением еще в 20-м веке. На сегодняшний день ни одно крупное промышленное про- изводство не обходится без них. Кроме того, манипуляторы устанавли- вают и на мобильных роботах, чтобы расширить возможности управле- ния в труднодоступных для человека местах. При однообразных и мо- нотонных действиях робот также может заменить человека, например раскладывать пирожные по коробочкам. Итак, определим манипулятор как управляемое устройство, пред- назначенное для выполнения сложных действий, аналогичных движе- ниям руки человека. В том числе, это механизм для управления поло- жением предметов. Стрела манипулятора Для освоения управления манипулятором следует вернуться к кон- тролю положения двигателя с помощью П-регулятора, которое описано в главе «Алгоритмы управления». Только конструкция будет несколько отличаться от описанной (рис. 8.148 ¾8.149). 297 Рис. 8.148. Крепление мотора к корпусу NXT горизонтально на уровне по- верхности. Штифт-полуось вствляется в вал мотора снизу. Рис. 8.149. Первое колено манипулятора. Стрела манипулятора расположена горизонтально. Алгоритм управления состоит из двух параллельных задач. В первой работает П-регулятор, который удерживает мотор в положении alpha. Во второй положение alpha изменяется со временем (рис. 8.150). Рис. 8.150. Управление горизонтальным положением стрелы манипулятора. Учитывая, что нулевое положение определяется на старте, задайте отрицательный угол во второй параллельной задаче и осуществите по- следовательный переход через нуль. Если все получается, следует при- ступить к установке второго мотора с захватом.
298 Манипулятор с захватом Рис. 8.151. Установка захвата на второй мотор. Рис. 8.152. Мотор с захватом закрепляется на диске первого мотора. Программирование робота с двумя степенями свободы (рис. 8.151 ¾8.152) осуществляется аналогично. Новая переменная beta будет определять положение второго мотора. Расширьте вторую задачу, по- добрав подходящие значения для открывания и закрывания захвата (рис. 8.153). Не забывайте, что стартовое положение определяет все. Рис. 8.153. Заготовка для управления двумя моторами на основе П-регуля- торов. Необходимо продолжить цикл в параллельной задаче.
309 ЗаключениеЕсли читатель добрался до Заключения, проделав все опыты, изло- женные в этой книге, можно быть уверенным, что впереди у него мно- жество собственных находок и изобретений. Мы коснулись лишь малой части замечательной науки, которая все больше становится современ- ной реальностью. Не останавливайтесь на достигнутом, находите новые задачи и ре- шения, создавайте своих оригинальных роботов. Быть может, эти не- большие открытия сослужат хорошую службу и нашей стране, и всему человечеству. Ваши вопросы и предложения автору отправляйте по адресу robobook@mail.ru. 310 Литература 1. Ананьевский М. С., Болтунов Г. И., Зайцев Ю. Е., Матвеев А. С., Фрад- ков А. Л., Шиегин В. В. Санкт-Петербургские олимпиады по кибернети- ке. Под ред. Фрадкова А. Л., Ананьевского М. С. СПб.: Наука, 2006. 2. Boogaarts M., Torok R., Daudelin J., et al. The LEGO Mindstorms NXT Idea Book. San Francisco: No Starch Press, 2007. 3. Isogawa Y. LEGO Technic Tora no Maki, Version 1.00 Isogawa Studio, Inc., 2007, //Электронный ресурс [https://www.isogawastudio.co.jp/legostudio/toranomaki/en/]. 4. Constructopedia NXT Kit 9797, Beta Version 2.1, Center for Engineering Educational Outreach, Tufts University, 2008, //Электронный ресурс [https://www.legoengineering.com/library/doc_download/150-nxt- constructopedia-beta-21.html]. 5. Kelly J. F. Lego Mindstorms NXT. The Mayan adventure. Apress, 2006. 6. Wang E. Engineering with LEGO Bricks and ROBOLAB. Third edition. College House Enterprises, LLC, 2007. 7. Perdue D. J. The Unofficial LEGO MINDSTORMS NXT Inventor's Guide. San Francisco: No Starch Press, 2007. 8. Белиовская Л.Г., Белиовский А.Е. Программируем микрокомпьютер NXT в LabVIEW. М: ДМК Пресс, 2010. 9. Азимов А. Я, робот. Серия: Библиотека приключений. М: Эксмо, 2002.
311 Приложения П .1. Названия деталей
312 П.2. ПравиласостязанийРегламент соревнований роботов «Кегельринг»1(поверсииАссоциацииспортивнойробототехники) 10. Условия состязания: ¾ в наиболее короткое время робот, не выходя за пределы круга, очерчивающего ринг, должен вытолкнуть расположенные в нем кегли; ¾ на очистку ринга от кеглей дается максимум две минуты; ¾ если робот полностью выйдет за линию круга более чем на 5 се- кунд, попытка не засчитывается; ¾ во время проведения состязания участники команд не должны ка- саться роботов, кеглей или ринга. Рис. П.2.1. Поле для кегельринга. 11. Ринг: ¾ цвет ринга — светлый; ¾ цвет ограничительной линии — черный; ¾ диаметр ринга 1 м (белый круг); ¾ ширина ограничительной линии 50 мм; 12. Кегли: ¾ кегли — жестяные цилиндры, изготовленые из пустых стандарт- ных жестяных банок, используемых для напитков; 1 Идея взята с сайта https://www.myrobot.ru 313 ¾ диаметр кегли 70 мм; ¾ высота кегли 120 мм; ¾ вес кегли — не более 50 г. 13. Робот: ¾ максимальная ширина робота 20 см, длина — 20 см; ¾ высота и вес робота не ограничены; ¾ робот должен быть автономным; ¾ во время соревнования размеры робота должны оставаться неиз- менными и не должны выходить за пределы 20 ´ 20 см; ¾ робот не должен иметь никаких приспособлений для выталкива- ния кеглей (механических, пневматических, вибрационных, акустических и др.); ¾ робот должен выталкивать кегли только своим корпусом; ¾ запрещено использование каких-либо клейких приспособлений на корпусе робота для сбора кеглей. 14. Игра: ¾ робот помещается строго в центр ринга. ¾ на ринге устанавливается восемь кеглей. ¾ кегли равномерно расставляются внутри окружности ринга. На каждую четверть круга должно приходиться не более двух кеглей. Кегли ставятся не ближе 12 и не далее 15 см от черной ограничительной линии. Перед началом игры участник состязания может поправить расположение кеглей. Окончательная расстановка кеглей принимается судьей соревнова- ния; ¾ главная цель робота состоит в том, чтобы вытолкнуть кегли за пределы круга, ограниченного линией; ¾ кегля считается вытолкнутой, если никакая ее часть не находится внутри белого круга, ограниченного линией; ¾ один раз покинувшая пределы ринга кегля считается вытолкнутой и может быть снята с ринга в случае обратного закатывания; ¾ робот должен быть включен или инициализирован вручную в на- чале состязания по команде судьи, после чего в его работу нельзя вмеши- ваться. Запрещено дистанционное управление или подача роботу любых команд. 15. Правила отбора победителя: ¾ каждой команде дается не менее двух попыток (точное число оп- ределяется судейской коллегией в день проведения соревнований); ¾ в зачет принимается лучшее время из попыток или максимальное число вытолкнутых кеглей за отведенное время; ¾ победителем объявляется команда, чей робот затратил на очистку ринга от кеглей наименьшее время, или если ни одна команда не справи- лась с полной очисткой ринга — команда, чей робот вытолкнул за пределы ринга наибольшее количество кеглей. 314 П .3. Интернет - ресурсы по Lego Mindstorms NXT ¾ https://www.mindstorms.com (официальный сайт компании Lego) ¾ https://www.mindstorms.su (неофициальный российский сайт Lego Mindstorms) ¾ https://learning.9151394.ru (содержит вводный курс Lego Mindstorms NXT на русском языке) ¾ https://www.lugnet.com (форум пользователей Lego Mindstorms NXT) ¾ https://www.nxtprograms.com (примеры разработок роботов из Lego Mindstorms NXT) ¾ https://www.legoengineering.com (поддержка пользователей Mind- storms) ¾ https://nnxt.blogspot.ru/ (робототехника для школ и вузов Нижнего Новгорода) ¾ https://www.isogawastudio.co.jp/legostudio/toranomaki/en/ (LEGO Technic Tora no Maki, энциклопедия конструирования) Языки и среды программирования для Lego Mindstorms NXT ¾ RobotC: https://www.robotc.net ¾ NBC/NXC (Next Byte Codes & Not eXactly C): компилятор и доку- ментация к NBC https://bricxcc.sourceforge.net/nbc/ ¾ Интегрированная среда разработки Bricxcc https://bricxcc.sourceforge.net/ ¾ LEJOS: Java for Lego Mindstorms: https://lejos.sourceforge.net/ ¾ Среда LabVIEW для Lego Mindstorms NXT: www.ni.com/mindstorms ¾ Обновление для Robolab 2.9 до версии 2.9.4: https://www.legoengineering.com/patches/RL294PowerPatch_PC.zip ¾ Обновление для Robolab 2.9.4 с поддержкой новых датчиков сто- роних производителей: https://legoengineering.com/library/cat_view/41- applications-patches-a-firmware/43-robolab.html ¾ QReal Robots, среда программирования роботов с 2D-симулято- ром, разработанная на матмехе СПбГУ: https://qreal.ru Правила состязаний роботов ¾ https://www.myrobot.ru/sport (Мой робот: роботы, робототехника, микроконтроллеры) ¾ https://railab.ru/ (лаборатория робототехники и искуственного ин- теллекта Политехнического музея) ¾ https://wroboto.ru/ (Международные состязания роботов)
315 ¾ https://www.wroboto.org/ (Всемирная олимпиада роботов) ¾ https://239.ru/robot (Центр робототехники физико-математического лицея №239 Центрального района Санкт-Петербурга) Неофициальный гид изобретателя Lego Mindstorms NXT Интернет-ресурсы по Lego Mindstorms NXT из книги David Perdue, «The Unofficial Lego Mindstorms NXT Inventor's Guide». см. сайт https://nxtguide.davidjperdue.com/ Общие ресурсы ¾ Обновления программ (https://mindstorms.lego.com/en-us/support/files/default.aspx) ¾ LUGNET (https://www.lugnet.com) ¾ MOC pages (https://www.mocpages.com) ¾ Brickshelf (https://www.brickshelf.com) ¾ Peeron LEGO Inventories (https://www.peeron.com) ¾ Brickset (https://www.brickset.com) ¾ NXT Programs: Fun Projects for your LEGO MINDSTORMS NXT (https://www.nxtprograms.com/index.html) ¾ MINDSTORMS NXT Building Instructions (https://ricquin.net/lego/instructions/) ¾ Technica (https://isodomos.com/technica/technica.html) ¾ Blackbird's Technicopedia (https://www.ericalbrecht.com/technic) Ресурсы для программистов ¾ Programming Solutions for the LEGO MINDSTORMS NXT: Which approach is best for you? NBC and NXC (https://bricxcc.sourceforge.net/nbc) ¾ NBC Debugger for NXT (https://www.sorosy.com/lego/nxtdbg) ¾ BricxCC (https://bricxcc.sourceforge.net) ¾ Programmable Brick Utilities (https://bricxcc.sourceforge.net/utilities.html) ¾ leJOS NXJ (https://lejos.sourceforge.net) ¾ RobotC (https://www.robotc.net) ¾ Writing Efficient NXT-G Programs: https://www.firstlegoleague.org/sitemod/upload/Root/WritingEfficientNXTGProg rams2.pdf ¾ OnBrick NXT Remote Control (https://www.pspwp.pwp.blueyonder.co.uk/science/robotics/nxt/) ¾ NXTender (https://www.tau.ac.il/stoledo/lego/NXTender)
316 ¾ NXT Programming Software (https://www.teamhassenplug.org/NXT/NXTSoftware.html) Ресурсы для Bluetooth ¾ MINDSTORMS Bluetooth Resources https://www.mindstorms.com/bluetooth ¾ NXTBluetoothCompatibilityList: https://www.vialist.com/users/jgarbers/NXTBluetoothCompatibilityList ¾ Analysis of the NXT Bluetooth-Communication Protocol: https://www.tau.ac.il/stoledo/lego/btperformance.html NXT-Блоги ¾ The NXT STEP (https://www.thenxtstep.com) ¾ nxtasy.org (https://www.nxtasy.com) Ресурсы по автоматизированному конструированию (LEGO computer-aided design resources): ¾ LEGO Digital Designer (https://ldd.lego.com) ¾ Google SketchUp NXT Parts Library: https://groups.google.com/group/LegoTechnicandMindstormsNXTParts ¾ LDraw (https://www.ldraw.org) ¾ Tutorial: Setting up LDraw to Create Virtual NXT Robots: from https://nxtblog.davidjperdue.com ¾ LeoCAD (https://www.leocad.org) ¾ Bricksmith (https://bricksmith.sourceforge.net) ¾ L3P (https://www.hassings.dk/l3/l3p.html) ¾ LDView (https://ldview.sourceforge.net) Методы конструирования (Building techniques) ¾ NXT-based Creations (https://legoengineering.com/library/cat_view/30-building-instructions/38-nxt- based-creations.html) ¾ LEGO Education Constructopedia: https://legoengineering.com/library/doc_details/150-nxt-constructopedia-beta- 21.html Изучаем геометрию Lego: ¾ https://www.syngress.com/book_catalog/174_lego_robo/chapter_01.htm ¾ LEGO Design (https://www.owlnet.rice.edu/elec201/Book/legos)
317 ¾ Sergei Egorov’s LEGO Geartrains (https://www.malgil.com/esl/lego/geartrains.html) Образовательные ресурсы ¾ LEGO Education (https://www.legoeducation.com) ¾ MINDSTORMS Education NXT blog: https://www.legoeducation.com/community/9/blogs/nxt/default.aspx ¾ LEGO ED West (https://www.legoedwest.com) ¾ LEGO Engineering (https://www.legoengineering.com) ¾ FIRST LEGO League (https://www.firstlegoleague.org) ¾ US FIRST Curriculum Collection: https://www.usfirst.org/community/ ¾ Robotics Academy (https://www-education.rec.ri.cmu.edu) Наборы Lego, детали Lego и заказные детали (custom hardware) ¾ LEGO Store (https://shop.lego.com) ¾ LEGO Education Store (https://www.legoeducation.us) ¾ BrickLink (https://www.bricklink.com) ¾ HiTechnic (https://www.hitechnic.com) ¾ Mindsensors.com (https://www.mindsensors.com) Хранение деталей Lego ¾ Robotics Learning Store (https://www.roboticslearning.com/store) ¾ Plano Molding Company (https://www.planomolding.com) Персональные вебсайты ¾ David J. Perdue (https://www.davidjperdue.com) ¾ Philippe Hurbain (https://www.philohome.com) ¾ Dave Astolfo (https://www.astolfo.com) ¾ Daniele Benedettelli (https://daniele.benedettelli.com) ¾ Michael Gasperi (https://extremenxt.com/lego.htm) ¾ Matthias Paul Scholz (https://mynxt.matthiaspaulscholz.eu) ¾ Steve Hassenplug (https://www.teamhassenplug.org) ¾ Laurens Valk (https://www.laurensvalk.com) ¾ Jürgen Stuber (https://www.jstuber.net) ¾ Mario Ferrari (https://www.marioferrari.org/lego.html) ¾ Miguel Agullo (https://miguelagullo.net/technicpuppy/)
318 События Lego ¾ World Robot Olympiad (https://www.wroboto.org) ¾ LEGO World (https://www.legoworld.nl) ¾ BrickFest (https://www.brickfest.com) ¾ NWBrickCon (https://www.nwbrickcon.org) ¾ BrickFair (https://www.brickfair.com)
319 Научное издание Сергей Александрович Филиппов РОБОТОТЕХНИКА ДЛЯ ДЕТЕЙ И РОДИТЕЛЕЙ Издание 3-е, дополненное и исправленное Утверждено к печати Ученым советом Института проблем машиноведения РАН Редактор издательства А. Б. Иванова Художник О. Скворцова Книга печатается с оригинал-макета, подготовленного автором Санкт-Петербургская издательская фирма «Наука» РАН 199034, Санкт-Петербург, Менделеевская линия, 1 E-mail: main@nauka.nw.ru Internet: www.naukaspb.spb.ru Лицензия ИД № 02980 от 06 октября 2000 г. Подписано к печати 30.01.2013. Формат 70 ´ 90 1/16. Бумага офсетная. Печать офсетная. Гарнитура Таймс. Объем 20 усл. печ. л. Тираж 3000 экз. Стр. 319 Отпечатано в типографии ООО «Дитон» Санкт-Петербург, Б. Сампсониевский пр., 60, литер М Тел.: (812) 333-15-42 Факс: (812) 333-15-41
перейти в каталог файлов
|