Тип работы:
Предмет:
Язык работы:


Создание языка программирования роботов в терминах потоков данных с применением DSM-подхода

Работа №74775

Тип работы

Бакалаврская работа

Предмет

информатика

Объем работы44
Год сдачи2016
Стоимость4750 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
42
Не подходит работа?

Узнай цену на написание


Введение 4
1. Среды и языки программирования роботов 7
1.1. Промышленные инструменты 7
1.2. Учебные инструменты 11
1.3. Академические инструменты 14
1.4. Выводы 15
2. Архитектуры построения систем управления роботами 17
3. Реализация 20
3.1. Спецификация языка 20
3.1.1. Блоки управления 21
3.1.2. Блоки рисования на экране 26
3.1.3. Блоки управления потоками 27
3.1.4. Блоки взаимодействия 28
3.2. Реализация инструментария 30
3.2.1. Визуальный редактор 30
3.2.2. Интерпретатор 31
4. Апробация 36
4.1. ПД-регулятор для движения вдоль стены 36
4.2. Трехуровневая система управления 37
Заключение 40
Список литературы 42


В настоящее время интерес к конструированию роботов и управлению ими растет. В этой области проводится множество исследований: на крупнейших робототехнических конференциях, таких как IROS , ICRA , исследовательские группы со всего мира обсуждают новые подходы к решению раз¬личных проблем в робототехнике. На протяжении последних трех десятилетий проводится исследование возможностей применения визуальных языков программирования (visual programming languages, VPLs), результаты исследований публикуются на крупнейших конференциях, таких как симпозиум VL/HCC . Пересечение этих областей образует отдельную активно развивающуюся область с множеством публикуемых работ, таких как [1, 2, 3, 4, 5]. Визуальные языки программирования в робототехнике позволяют сокращать время создания систем управления роботами, а также нагляднее их отображать. Это, в частности, используется для обучения школьников или новичков программированию роботов: есть множество сред, таких как ROBOLAB , NXT-G , TRIK Studio , которые позволяют программировать поведение ро-бота с помощью модельно-ориентированного подхода (model driven architecture, MDAy. для описания программы используется набор моделей, в данном случае визуальных, имитирующих высокоуровневые паттерны поведения ро¬бота.
Система управления роботом представляет собой взаимодействие трех составляющих: датчики и сенсоры, логика системы управления, приводы. Датчики и сенсоры генерируют данные, логика системы управления собирает значения, обрабатывает их и генерирует импульсы для приводов. Получается, что по своей природе программы управления роботами реактивны: они обрабатывают сигналы, непрерывно приходящие с датчиков и сенсоров, и генерируют управляющую информацию для приводов, то есть они решают задачу трансформации данных. Для программирования таких систем хорошо подходят потоковые или реактивные языки программирования, они же — языки программирования потоков данных (data flow languages, DFLs). Данные языки, в свою очередь, тоже активно эволюционировали от текстовых языков к визуальным языкам потоков данных, которые сейчас широко распространены [6,7]. Визуальные потоковые языки превосходят текстовые хотя бы тем, что при программировании потоков данных они явно отображают по¬токи данных на диаграмме. В индустрии программирования роботов существует несколько широко распространенных, крупных и довольно-таки сложных сред программирования, которые позволяют программировать на потоковых языках, к примеру, Simulink , LabVIEW , Microsoft Robotics Developer Studio . Эти среды предоставляют пользователю большой и даже порой громоздкий набор средств и библиотек для программирования различных роботов.
Для обучения кибернетике и робототехнике существует большое количество различных кибернетических конструкторов, к примеру, конструктор TRIK , конструкторы LEGO MINDSTORMS . Подавляющее большинство распространенных и общеизвестных языков программирования, которые используются для обучения программированию на таких конструкторах, основаны на модели исполнения программы в модели потока управления, в то время как индустриальные среды используют языки, которые основаны на модели потока данных. В то же время, при освоении учебных языков зачастую возникает ощущение неудобства их использования для решения раз¬личных типовых задач создания систем управления роботом.
Несмотря на это, проводятся попытки адаптации парадигмы языков по-токов данных к образованию, например, в работах [3, 5, 8]. Однако, учебных сред программирования роботов, позволяющих создавать системы управления на потоковых языках, и в то же время доступных для бесплатного академического использования либо нет, либо они находятся на стадии разработок.


Возникли сложности?

Нужна помощь преподавателя?

Помощь студентам в написании работ!


В рамках данной выпускной квалификационной работы был создан новый язык программирования роботов в терминах потоков данных для учебных робототехнических конструкторов TRIK, LEGO NXT, LEGO EV3. Для использования языка был создан редактор визуального языка с применением модельно-ориентированного подхода на базе DSM-платформы QReal, создан-ной на кафедре Системного программирования СПбГУ Им была расширена среда программирования роботов TRIK Studio. Для исполнения созданных с помощью визуального редактора программ была разработана компонента, позволяющая их интерпретировать. Данная компонента тоже является рас-ширением для TRIK Studio. Интерпретация программ, созданных на новом языке может быть осуществлена на двумерной симуляционной модели ро¬бота, а также непосредственно на реальных роботах. Язык оказался достаточно простым в освоении, и в то же время обладает достаточными функциональными возможностями, чтобы создавать сложные системы управления, управляющие различными аспектами поведения робота. Это доказывает про-веденная апробация языка и инструментария его поддержки для программирования типичных учебных задач в робототехнике, а также для более сложных систем управления роботом.
Результаты работы, а именно программный код и видеоролики апробации находятся в открытом доступе.
Дальнейшие перспективы
В качестве дальнейшего развитие нового инструмента планируется реализовать генераторы нового визуального языка в текстовые языки программирования, уже поддерживаемые средой TRIK Studio, к примеру, NXT OSEK C для LEGO NXT, байткод для LEGO EV3, JavaScript, F# [25] и Kotlin для TRIK, чтобы позволить программам выполняться на роботах автономно.
Созданную систему можно рассматривать в качестве платформы для по-следующих академических исследований. Во-первых, требуется формализация семантики языка для того, чтобы иметь возможность применения раз¬личных формальных методов анализа программ, выраженных в новом языке. Другая ветвь развития — это применение предметно-ориентированного моделирования для автоматической генерации метамодели языка по спецификациям модулей промежуточного программного обеспечения (middleware) ROS [26] или Player [27].



[1] Banyasad Omid. A Visual Programming Environment for Autonomous Robots. 2000.
[2] Simpson Jonathan, Jacobsen Christian L, Jadud Matthew C. Mobile robot control // Communicating Process Architectures. 2006. С. 225.
[3] Simpson Jonathan, Jacobsen Christian L. Visual Process-Oriented Programming for Robotics. // CPA. 2008. С. 365-380.
[4] Process-Oriented Subsumption Architectures in Swarm Robotic Systems. / Jeremy C Posso, Adam T Sampson, Jonathan Simpson [и др.] // CPA. 2011. С. 303-316.
[5] Diprose James P, MacDonald Bruce A, Hosking John G. Ruru: A spatial and interactive visual programming language for novice robot programming // Visual Languages and Human-Centric Computing (VL/HCC), 2011 IEEE Symposium on / IEEE. 2011. С. 25-32.
[6] Johnston Wesley M, Hanna JR, Millar Richard J. Advances in dataflow programming languages // ACM Computing Surveys (CSUR). 2004. Т 36, № 1. С. 1-34.
[7] Hils Daniel D. Visual languages and computing survey: Data flow visual programming languages // Journal of Visual Languages & Computing. 1992. Т 3, №1. С. 69-101.
[8] Tools for teaching introductory programming: what works? / Kris Powers, Paul Gross, Steve Cooper [и др.] // ACM SIGCSE Bulletin / ACM. Т 38. 2006. С. 560-561.
[9] Kodosky Jeffrey, MacCrisken Jack, Rymar Gary. Visual programming using structured data flow // Visual Languages, 1991., Proceedings. 1991 IEEE Workshop on / IEEE. 1991. С. 34-39.
[10] Using LEGO NXT Mobile Robots With LabVIEW for Undergraduate Courses on Mechatronics / Jesus M. Gomez-de Gabriel, Anthony Mandow, Jesus Fernandez-Lozano [и др.] // IEEE Trans. Educ. 2011. Т 54, № 1. С. 41-47.
[11] Jackson Jared. Microsoft robotics studio: A technical introduction // Robotics & Automation Magazine, IEEE. 2007. Т 14, №4. С. 82-87.
[12] Kelly James Floyd. Lego Mindstorms NXT-G Programming Guide. Apress, 2010.
[13] Cyr. Martha N. Robolab. Справочное пособие к программному обеспече¬нию. Москва: ИНТ [перевод], 2001.
[14] Simpson Jonathan, Ritson Carl G. Toward Process Architectures for Behavioural Robotics. //CPA. 2009. С. 375-386.
[15] Brooks Rodney [и др.]. A robust layered control system for a mobile robot // Robotics and Automation, IEEE Journal of. 1986. Т. 2, № 1. С. 14-23.
[16] Connell Jonathan H. A colony architecture for an artificial creature: Tech. Rep.: : DTIC Document, 1989.
[17] Arkin Ronald C. Motor schema based navigation for a mobile robot: An approach to programming by behavior // Robotics and Automation. Proceedings. 1987 IEEE International Conference on / IEEE. Т. 4. 1987. С. 264-271.
[18] Rosenblatt Julio K. DAMN: A distributed architecture for mobile navigation // Journal of Experimental & Theoretical Artificial Intelligence. 1997. Т 9, №2-3. С. 339-360.
[19] Ierusalimschy Roberto. Programming in lua. Roberto Ierusalimschy, 2006.
[20] Кознов Дмитрий Владимирович. Основы визуального моделирования // М.: Изд-во Интернетуниверситета информационных технологий, ИН- ТУИТ. ру, БИНОМ, Лаборатория знаний. 2008.
[21] Средства быстрой разработки предметно-ориентированных решений в metaCASE-средстве QReal / АС Кузенкова, АО Дерипаска, КС Таран [и др.] // Научно-технические ведомости СПбГПУ С. 142.
[22] QReal DSM platform-An Environment for Creation of Specific Visual IDEs / Anastasiia Kuzenkova, Anna Deripaska, Timofey Bryksin [и др.] // ENASE 2013 — Proceedings of the 8th International Conference on Evaluation of Novel Approaches to Software Engineering. Setubal, Portugal: SciTePress, 2013. С. 205-211.
[23] Поддержка жестов мышью в MeTa-CASE-системах / Мария Серге¬евна Осечкина, Тимофей Александрович Брыксин, Юрий Викторо¬вич Литвинов [и др.] // Системное программирование. 2010. Т 5, № 1.
[24] Rohmer Eric, Singh Surya PN, Freese Marc. V-REP: A versatile and scalable robot simulation framework // Intelligent Robots and Systems (IROS), 2013 IEEE/RSJ International Conference on / IEEE. 2013. С. 1321-1326.
[25] Kirsanov Alexander, Kirilenko Iakov, Melentyev Kirill. Robotics reactive programming with F#/Mono // Proceedings of the 10th Central and Eastern European Software Engineering Conference in Russia / ACM. 2014. С. 16.
[26] ROS: an open-source Robot Operating System / Morgan Quigley, Ken Conley, Brian Gerkey [и др.] // ICRA workshop on open source software. Т 3. 2009. С. 5.
[27] Gerkey Brian, Vaughan Richard T, Howard Andrew. The player/stage project: Tools for multi-robot and distributed sensor systems // Proceedings of the 11th international conference on advanced robotics. Т. 1. 2003. С. 317-323.


Работу высылаем на протяжении 30 минут после оплаты.




©2024 Cервис помощи студентам в выполнении работ