Робототехника является одной из самых быстроразвивающихся отраслей в современном мире. Роботизированные системы получают применение в военном деле, медицине, искусстве и в быту. Роботы способны выполнять многие виды работы быстрее и качественнее, чем человек, чем объясняется их возрастающая популярность. В связи с вышеуказанным, можно отметить высокий спрос на специалистов в области робототехники, а отсюда вытекает потребность в робототехнических образовательных комплексах. В ответ на такую потребность на математико-механическом факультете СПбГУ усилиями кафедр системного программирования и теоретической кибернетики разрабатывается контроллер ТРИК.
Вместе с развитием аппаратных платформ идёт также развитие ПО в сфере робототехники. Алгоритмы становятся всё более сложными и многоуровневыми, а приложения зачастую нелегко масштабировать. С другой стороны, так же как и в программировании компьютерных систем, в программировании для робототехнических платформ существует множество типичных задач. Такие действия, как работа с данными датчиков и приводов, организация межпроцессного взаимодействия, сбор информации о состоянии робототехнической системы, реализация распространённых алгоритмов робототехники: избегание препятствий, планирование пути и многие другие, решаются схожим образом на разных системах и могут быть вынесены на отдельный уровень абстракции. Эту задачу успешно решает программное обеспечение промежуточного уровня (middleware).
Дейв Баккен описывает промежуточное программное обеспечение как класс технологий, призванных поддерживать сложность и гетерогенность, присущую распределённым системам [4]. Действительно, за многими известными роботами стоят различные системы, управляющие периферией, структурирующие код и упорядочивающие процесс разработки приложений. Зачастую инструментарий создаётся исключительно для одной робототехнической системы, что объясняет большое количество существующих систем промежуточных уровня.
Главное преимущество промежуточного программного обеспечения — возможность переиспользования большого количества готовых компонентов. Существует множество научных статей, описывающих интересные разработки различных лабораторий, результаты которых реализованы в рамках некоторой системы промежуточного уровня. При адаптации таких систем для контроллера ТРИК можно будет использовать эти достижения при минимуме затраченных на реализацию усилий. Таким образом, появляется задача выбора и адаптирования некоторой промежуточной программной системы для контроллера ТРИК.
Стоит отметить, что на кафедре системного программирования уже существуют работы по использованию ROS (Robot Operating System) на контроллере ТРИК, однако существуют интересные разработки, основывающиеся и на других инструментариях, поэтому есть необходимость рассмотреть и другие системы промежуточного уровня.
В рамках работы были получены следующие результаты.
1. Проведено сравнение существующего промежуточного программного обеспечения (middleware) робототехники.
2. Выработаны критерии для выбора промежуточного программного обеспечения, которое было адаптировано для контроллера ТРИК.
3. Инструментарий Player адаптирован для контроллера ТРИК.
4. Проведена апробация результатов адаптирования системы промежуточного уровня Player для контроллера ТРИК.
[1] URL:http://robolymp.ru/season-2016/rules-and-regulations/ robotraffik/ (дата обращения: 20.05.2016).
[2] URL: http://roborace.com/ (дата обращения: 20.05.2016).
[3] Baillie Jean-Christophe. URBI: Towards a Universal Robotic Low- Level Programming Language // 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems. — 2005.
[4] Bakken Dave. Middleware. — Dodrecht, The Netherlands : J. Urban and P. Dasgupta, Eds., Kluwer Academic, 2001.
[5] Berger Christian, Dukaczewski Michael. Comparison of Architectural
Design Decisions for Resource-Constrained Self-Driving Cars - A Multiple Case-Study. — 2014. — URL: http://cs.emis.de/LNI/
Proceedings/Proceedings232/2157.pdf.
[6] Bruyninck Herman. Open Robot Control Software: the OROCOS
project.— 2001.— URL: http://ieeexplore.ieee.org/stamp/
stamp.jsp?tp=&arnumber=933002.
[7] CLARAty: Challenges and Steps Toward Reusable Robotic Software. —
2005. — URL: https://claraty.jpl.nasa.gov/main/overview/ publicationsZ05_nesnas_challenges_jars.pdf.
[8] Choulsoo Jang Seung-Ik Lee Seung-Woog Jung Byoungyoul Song
Rockwon Kim Sunghoon Kim, Lee Cheol-Hoon. OPRoS: A New Component-Based Robot Software Platform.— 2010.— URL:
http://etrij.etri.re.kr/etrij/journal/article/article.do? volume=32&issue=5&page=646.
[9] Daniel Kr"uger Ingo van Lil Niko Sunderhauf Robert
Baumgartl Peter Protzel. Using and Extending the Miro Middleware for Autonomous Mobile Robots.— 2006.— URL:
https://www.tu-chemnitz.de/etit/proaut/mitarbeiter/rsrc/
taros06-miro.pdf.
[10] Elkady Ayssam, Sobh Tarek. Robotics Middleware: A Comprehensive Literature Survey and Attribute-Based Bibliography // Journal of Robotics.— 2012.— URL: http://www.hindawi.com/journals/jr/ 2012/959013/.
[11] Giorgio Metta Paul Fitzpatrick, Natale Lorenzo. YARP: Yet Another Robot Platform.— URL: http://cdn.intechweb.org/pdfs/4161. pdf .
[12] Hans Utz Stefan Sablatnog Stefan Enderle Gerhard Kraetzschmar.
Miro — Middleware for Mobile Robot Applications // IEEE TRANSACTIONS ON ROBOTICS AND AUTOMATION. - 2002. - URL: ftp://ftp.itam.mx/pub/alfredo/ROBOTICS/middleware/
Miro.pdf.
[13] Issa A.D. Nemas Anne Wright Max Bajracharya Reid Simmons Tara Estlin. CLARAty and Challenges of Developing Interoperable Robotic Softwar.— 2003.— URL: http://ieeexplore.ieee.org/ stamp/stamp.jsp?tp=&arnumber=1249234.
[14] Michael R. Benjamin Henrik Schmidt Paul M. Newman, Leonard John J. Nested autonomy for unmanned marine vehicles with MOOS-IvP.— 2010.— URL: http://onlinelibrary.wiley.com/ doi/10.1002/rob.20370/full.
[15] Mohamed Nader, Al-Jaroodi Jameela. Characteristics of Middleware
for Networked Collaborative Robots.— 2008.— URL: http://
ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4543973.
[16] Nader Mohamed Jameela Al-Jaroodi, Jawhar Imad. Middleware for Robotics: A Survey. — 2008. — URL: http://ieeexplore.ieee.org/ stamp/stamp.jsp?tp=&arnumber=4681485.
[17] Vaughan Richard T., Gerkey Brian P. Really Reusable Robot Code and the Player/Stage Project // Springer Tracts on Advanced Robotics. —
2006. — URL: http://citeseerx.ist.psu.edu/viewdoc/download? doi=10.1.1.330.9919&rep=rep1&type=pdf.
[18] Аудучинок Евгений. Интеграция робототехнических библиотек ROS c контроллером ТРИК: курсовая работа.— 2016.
[19] Новожилов Евгений. Интеграция робототехнической ОС (ROS) с кибернетическим контроллером ТРИК: дипломная работа.— Санкт-Петербург : Санкт-Петербургский государственный университет, 2015.— URL: http://se.math.spbu.ru/SE/diploma/2015/ s/544-Novozhilov-report.pdf.