Научная статья на тему 'Основные понятия о Robot Operating System и ее компонентах'

Основные понятия о Robot Operating System и ее компонентах Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1482
197
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ROBOT OPERATING SYSTEM (ROS) / ФАЙЛ / ПАКЕТ / КОМПОНЕНТ СИСТЕМЫ / ПРОГРАММА / МЕТА-ПАКЕТ / БИБЛИОТЕКА

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Марченко Екатерина Петровна

В данной статье рассматриваются основные компоненты Robot Operating System (ROS), библиотеки, используемые в данной системе, а также базовые компоненты вычислительного графа. Сделан краткий обзор, позволяющий ознакомиться с функционалом данной системы, а также с уровнем файловой системы, со структурой пакета и мета-пакета ROS.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Основные понятия о Robot Operating System и ее компонентах»

Список литературы

1. Лобов Д.Д.Анализ общего уровня вибрации ГТУ с помощью базовых характеристик // Наука, техника и образование, 2017. № 7 (37). С. 71.

2. Конструкция и проектирование авиационных газотурбинных двигателей: учебник для студентов вузов, обучающихся по специальности «Авиационные двигатели и энергетические установки» // под общ. ред. Д.В. Хронина. Москва: Машиностроение, 1989. 368 с.

3. Газотурбинный привод АЛ-31СТ для газоперекачивающих станций. [Электронный ресурс]. Режим доступа: http://www.umpo.ru/Good27_168_122.aspx/ (дата обращения: 04.12.2017).

ОСНОВНЫЕ ПОНЯТИЯ О ROBOT OPERATING SYSTEM И ЕЕ КОМПОНЕНТАХ Марченко Е.П.

Марченко Екатерина Петровна - магистрант, кафедра высшей математики, факультет кибернетики, Московский технологический университет, г. Москва

Аннотация: в данной статье рассматриваются основные компоненты Robot Operating System (ROS), библиотеки, используемые в данной системе, а также базовые компоненты вычислительного графа. Сделан краткий обзор, позволяющий ознакомиться с функционалом данной системы, а также с уровнем файловой системы, со структурой пакета и мета-пакета ROS.

Ключевые слова: Robot Operating System (ROS), файл, пакет, компонент системы, программа, мета-пакет, библиотека.

Robot Operating System (ROS)

Целью создания ROS была разработка программной платформы для программирования роботов, предоставляющей функциональность для распределённой работы [3]. В ROS используется открытый исходный код, и изначально ROS позаимствовала приложения из Player Project и других open source проектов. ROS включает в себя огромный функционал: драйверы, алгоритмы, графические интерфейсы моделирования и парадигмы управления. Эта система стала полезным инструментом для многих исследователей и ученых, которые поделились своим кодом с ROS сообществом [1].

Основные компоненты ROS

ROS File System Level

Рис. 1. Уровень файловой системы ROS

Рассмотрим каждый отдельный компонент:

• Инфраструктура: ROS обеспечивает инфраструктуру коммуникации по схеме публикации - подписки сообщений (publish-subscribe messaging), предназначенную для быстрого и легкого построения распределенных вычислительных систем.

• Инструменты: ROS предоставляет широкий набор инструментов для настройки, запуска, самоанализа, отладки, визуализации, ведения списка событий, тестирования и остановки распределенной вычислительной системы.

• Возможности: ROS предоставляет широкий набор библиотек, реализующих полезные функции робота, с упором на мобильность, взаимодействие с предметами и восприятие окружающей среды.

Особенностью системы ROS является то, что она работает больше как операционная система, нежели как приложение. Во всех интерфейсах моделирования и управления используется архитектура клиент-сервер;

В ROS используются узлы (nodes), которые подсоединяются к мастеру (roscore), и являются соответственно клиентами и сервером.

ROS представляет собой надстройку над операционной системой, которая позволяет легко и просто разрабатывать системы управления роботам. По сути, ROS -это набор из различных известных библиотек, таких как:

• OpenCV - библиотека, содержащая алгоритмы компьютерного зрения и обработки изображений c открытым исходным кодом. Она разрабатывается на С/С++, Python, Java и многих других языках;

• PCL (Point Cloud Library) - библиотекас открытым исходным кодом

• для обработки 2D/3D изображений и облаков точек;

• OGRE (Object-Oriented Graphics Rendering Engine) - это обектно-ориентированный графический движок, написанный на языке С, с открытым исходным кодом, предназначенный для упрощения и визуализации моделирования поведения робота;

• OROCOS (Open Robot Control Software) - библиотека для управления роботами, например, расчета кинематики;

• CARMEN (Carnegie Mellon Robot Navigation Toolkit) - библиотека для управления мобильными роботами. Она предназначена для выполнения базовых операций таких как: сенсорное управление, обход препятствий, построение пути и создание карт.

Помимо библиотек в ROS есть драйвера для различных манипуляторов, сенсоров (включая MS Kinect) и датчиков. Основным преимуществом системы ROS является клиент-серверная архитектура - разработчики реализовали механизм пересылки сообщений между различными объектами, возможность построения распределенных систем. Структуру ROS легко реализовать на любом современном языке программирования таком как: Python, C++, Lisp и экспериментальные библиотеки на Java и Lua.

Понятие уровня файловой системы в основном охватывают ресурсы ROS, которые можно встретить на диске:

• Пакеты (Packages): На уровне файловой системы основным блоком для организации программного обеспечения в ROS является пакет. Пакет ROS может содержать исходные коды и исполняемые файлы узлов, библиотеки, описание сообщений и сервисов, базы данных, файлы конфигурации, и другие ресурсы, которые логично организовать вместе. Каждый пакет должен содержать файл манифеста, который предоставляет метаданные о пакете, включая сведения о лицензии и зависимостях, а также флаги компилятора и так далее. Цель такого структурирования - повышение возможности повторного использования. Типичная структура пакета ROS представлена на рисунке 2 [5].

CMakeLlsts.txt package, xml

talker, ру liste ne г. py

talker.cpp liste ner.cpp

config include scripts src

Г ■> L J Г л -J 1 Л L i 1

launch msg srv action

Рис. 2. Структура пакета ROS

Структура пакета выглядит следующим образом:

• config: Все файлы конфигурации, которые используются в этом ROS-пакете сохраняются в этой папке. Эта папка создается пользователем, (общепринято называть данную папку config), чтобы сохранить в ней файлы конфигурации.

• include/package_name: Эта папка состоит из заголовков и библиотек, которые используются внутри пакета.

• scripts: В этой папке хранятся исполняемые сценарии Python.

• src: В этой папке хранятся исходные коды на C ++.

• launch: В этой папке хранятся файлы запуска, которые используются для запуска одного или нескольких ROS узлов.

• msg: Эта папка содержит определения пользовательских сообщений.

• srv: Эта папка содержит сервисные определения.

• action: Эта папка содержит определения действий.

• package.xml: Манифесты (package.xml) объединяют метаданные о пакете, включая имя, версию, описание, информацию о лицензиях, зависимости и другие экспортируемые пакеты (предоставляют пакеты для других пакетов).

• CMakeLists.txt: Это файл сборки CMake этого пакета.

Приведем примеры других команд, которые нужны для создания, изменения и работы с ROS пакетами:

• catkin_create_pkg: Команда для создания нового пакета.

• rospack: Команда для получения информации о пакете в файловой системе.

• catkin_make: Команда для сборки пакетов в рабочей области.

• rosdep: Данная команда будет устанавливать систему в зависимости от требований для этого пакета.

• Сервисы (Services): Определяют запросы и структуры данных.

• Мета-пакет (Meta Packages): представляет собой группу связанных пакетов. Он не содержит папок и файлов похожих на обычный пакет.

Мета-пакеты просто группируют набор из нескольких пакетов в виде единого логического пакета.

В пакете package.xml файл мета-пакет содержит тег экспорта, как показано здесь: <export>

<metapackage/> </export>

Кроме того, в мета-пакетах нет зависимостей <buildtool_depend> для catkin, существуют только зависимости <run_depend>, которые представляют собой пакеты, сгруппированные в мета-пакет.

На рисунке 3 приведен пример навигационного стека ROS, который является хорошим примером мета-пакета [2, c. 5-10].

<package>

<name>navigation</name> <version>l.12,2</version>

<buildtool_depend>catkin</buildtool_depend>

<run_depend>amele/run_depend> <run_depend>ca rrot_planner</run_depend>

<export>

<metapackage/> </export> </package>

Рис. 3. Структура мета-пакета ROS

Вычислительный граф ROS

Уровень вычислительного графа - концепция представления данных в ROS в различных формах обработки. При работе ROS, строится «граф» - сеть точка-точка (peer-to-peer network) из процессов, которые связываются друг с другом через инфраструктуру ROS. Любой узел в системе может получить доступ к этой сети, взаимодействовать с другими узлами, смотреть информацию, которую они посылают, и передавать данные в сеть.

Рассмотрим базовые компоненты вычислительного графа ROS [2, c. 13]:

Рис. 4. Уровень вычислительного графа ROS

• Узлы (Nodes)- это процессы, которые выполняют вычисления. ROS представляет из себя модульную систему, система управления роботом обычно включает в себя множество узлов, направленных на выполнение определённых функций. Каждый узел управляет каким-либо процессом, например, один узел управляет лазерным дальномером, один узел управляет колесными двигателями, один узел выполняет локализацию, один узел выполняет планирование пути, один узел обеспечивает графическое представление системы, и так далее. Узел ROS написан с использованием клиентских библиотек ROS, таких как roscpp или rospy.

• ROS Мастер (Master) обеспечивает связь между узлами. Без мастера узлы не смогут найти друг друга, обмениваться сообщениями или вызывать сервисы.

• Сервер параметров (Parameter Server) является используемым совместно многомерным словарем, доступным через сеть. Узлы используют этот сервер для хранения и извлечения параметров во время выполнения.

• Сообщения (Messages) - Узлы взаимодействуют друг с другом путем передачи сообщений. Сообщение - это структура данных, состоящая из полей с указанием типа поля. Поддерживаются стандартные типы (целые числа, с плавающей точкой, логические и т.д.), а также массивы. Сообщения могут включать произвольно вложенные структуры и массивы (подобно синтаксису языка C).

• Темы (Topics) - сообщения направляются через транспортную систему с семантикой писатель/подписчик. Узел посылает сообщение, опубликовав его в той или иной теме. Тема - это имя, которое используется для идентификации содержимого сообщения. Узел, который заинтересован в определенного рода данных может подключиться к нужной теме. Тема может иметь более одного писателя и более одного подписчика, один узел может писать и/или подписаться на несколько тем. В общем, писатели и подписчики не знают о существовании друг друга. Идея состоит в том, чтобы отделить производство информации от его потребления. Можно представить тему как строго типизированную шину сообщений.

• Сервисы (Services) - модель тем является очень гибким средством коммуникации, но его принцип многие-многим не подходит для взаимодействий вида запрос/ответ, которые часто требуются в распределенной системе. Такие запросы осуществляются через сервисы, которые определяются с помощью пары структур сообщений: одна для

запроса и одна для ответа. Узел предлагает услугу под общим именем, клиент использует услугу путем отправки сообщения с запросом и ожидает ответ. Вычислительный граф вместе с пакетами образует систему ROS. • Бэги (Bags) - формат для сохранения и воспроизведения данных сообщений ROS. Бэги являются важным механизмом для хранения данных, таких как данные сенсоров, которые сложно собирать, но они требуются для разработки и тестирования алгоритмов. Бэги часто используются при работе со сложными роботами [4].

Список литературы

1. ROS (Robot Operating System) website. [Электронный ресурс]. Режим доступа: http://wiki.ros.org/ (дата обращения: 01.12.2017).

2. Lentin Joseph. Mastering ROS for Robotics Programming, 2015. С. 5-13.

3. ROS (операционная система). [Электронный ресурс]. Режим доступа: https://ru.wikipedia.org/wiki/ROS/ (дата обращения: 29.11.2017).

4. Уровень вычислительного графа. [Электронный ресурс]. Режим доступа: http://robotosha.ru/robotics/ (дата обращения: 01.12.2017).

5. Основы работы с Robotic Operating System. [Электронный ресурс]. Режим доступа: https://geektimes.ru/ (02.12.2017).

ИНДИВИДУАЛИЗАЦИЯ СТУДЕНТОВ ПРОФЕССИОНАЛЬНОГО ОБУЧЕНИЯ Михеев Р.Э.

Михеев Роман Эдуардович - студент, факультет управления и автоматизации, Институт управления, автоматизации и информационных технологий, г. Казань

Аннотация: в статье рассматриваются вопрос индивидуализации студентов в сфере профессионального обучения, методы и средства для индивидуализации студентов. Приведены примеры решения данной проблемы.

Ключевые слова: индивидуализация, студенты, педагогика, методология, тьютор.

Проблема индивидуализации обучения всегда была значима в педагогической науке. Развитие индивидуально-ориентированной профессиональной подготовки специалистов обеспечивает высокий уровень их квалификации. Важной составной частью профессиональной подготовки любого специалиста является взаимосвязанная теоретическая и практическая подготовка в процессе профессионального обучения, направленная на формирование специальных профессиональных знаний и умений.

Под индивидуализированным обучением понимается система многоуровневой подготовки специалистов, учитывающая индивидуальные особенности обучающихся, предоставляющая каждому возможность максимально раскрыть способности для получения соответствующего образования. Индивидуализация обучения осуществляется отбором содержания, которое может корректироваться, синтезироваться в индивидуальные программы и элективные учебные дисциплины, а также развитием научно-исследовательской деятельности слушателей.

При исследовании проблемы индивидуализации обучения было доказано, что допускается отождествление самостоятельности обучения и индивидуального подхода, индивидуального подхода и индивидуализации обучения; недостаточно учитываются психологические основы индивидуального обучения. Анализ научной литературы позволяет констатировать, что в настоящее время имеет место противоречие: с одной

i Надоели баннеры? Вы всегда можете отключить рекламу.