Назад в библиотеку

ОБМЕН ДАННЫМИ МЕЖДУ MATLAB SIMULINK И ROS С ПРИМЕНЕНИЕМ ПАКЕТА ROS-TOOLBOX

Автор: Д.В. Киселева, А.С. Ельцов
Источник: Компания КОМПЭЛhttp://earchive.tpu.ru/handle/11683/62234

Аннотация

Д.В. Киселева, А.С. Ельцов — ОБМЕН ДАННЫМИ МЕЖДУ MATLAB SIMULINK И ROS С ПРИМЕНЕНИЕМ ПАКЕТА ROS-TOOLBOX
В данной работе описываются существующие принципы обмена данными для обеспечения связи ROS-Simulink, их особенности и техническая реализация построения такой системы на примере мобильной платформы Kuka YouBot.



В современном мире повсеместное внедрение роботов и робототехнических систем в промышленности, а также увеличение степени автоматизации существующих процессов и задач создает трудности в обеспечении качественного управления и обмена данными между отдельными частями систем. Одним из вариантов решения задачи управления роботом и обмена с ним данными является взаимодействие ROS – операционной системы для роботов и пакета Matlab Simulink, установленного на сторонний персональный компьютер. Данная комбинация, хотя и усложняет само управление, но открывает ряд возможностей для создания более совершенного алгоритма для решения конкретной задачи, а также обеспечивает быстродействие системы и упрощает сложные вычисления, которые могут быть реализованы за счет встроенных возможностей Simulink.

ROS (Robot Operating System) – это фреймворк, необходимый для программирования роботов, робототехнических систем и мобильных платформ. Данная библиотека работает с Unix-подобными системами, включая Ubuntu Linux, которая установлена в том числе на Kuka YouBot. За счет ROS обеспечиваются стандартные службы операционной системы, такие как передача сообщений процессов, управление пакетами и реализация функций. Основными элементами, обеспечивающими работоспособность системы ROS, являются узлы, темы и сообщения, а также мастер, сервис и сервер параметров. Узлы управляют заданными функциями, производят вычисления и обеспечивают связь с другими узлами посредством сообщений определенного типа данных, передаваемых в конкретные темы, доступ к которым у узла обеспечивается за счет сервисов. Каждая тема, как и узел, имеют уникальные имена, а стандартные узлы и темы несут под собой также определенную функцию. Мастер в свою очередь необходим, чтобы обеспечить связь со сторонним компьютером. Сервер параметров обеспечивает изменение конфигураций узлов, работает с памятью и сохраняет передаваемые данные[1].

Соединение и передача данных между ROS и Matlab Simulink осуществляется через пакет ROSToolbox, обеспечивающий создание узлов ROS и организующий передачу сообщений между двумя системами. Основным преимуществом ROSToolbox является то, что он позволяет автоматически генерировать С++ код из модели Simulink и проверять его работу с помощью симуляции или физически на роботе. Также взаимодействие с Simulink позволяет в режиме реального времени изменять параметры и переменные в системе, пока собранная модель запущена на роботе. Именно это и оправдывает усложнение в целом всей системы введением дополнительного компьютера. Возможности, которые обеспечивает Simulink в связи с ROS, не оставляет сомнения в необходимости обеспечения подобного взаимодействия для решения сложных задач с применением мобильных роботов. Однако, для реализации подобного взаимодействия необходимо изучить особенности передачи данных в полученном соединении.

Обмен данными между Simulink и ROS может осуществляться тремя основными способами: издатель-подписчик, клиент-сервер и дерево параметров[2]. Модель обмена данными издатель-подписчик требует передачи сообщений по теме, каждая из которых будет иметь свое уникальное имя в ROS, а каждая тема имеет под собой определенный тип данных, которые возможно передать в сообщении данной темы. Узел становится издателем, если хочет отправить сообщение в тему, в то время как другой узел становится подписчиком для получения сообщения из темы. Такая система позволяет реализовывать общение множества узлов, без необходимости их прямой связи, а значит и обеспечивает возможность беспрепятственного удаления или модификации каждого узла. На рисунке 1 представлено графическое отображение модели обмена данными издатель-подписчик.

Рис. 1. Модель издатель-подписчик

Рис. 1. Модель издатель-подписчик

Общение с помощью модели клиент-сервер обеспечивает более сложный обмен данными между узлами. В данной модели клиент отправляет сообщение-запрос и получает сообщение-ответ от сервера. В рассмотренной выше модели обмена данными издатель не требовал ответа от подписчика. Клиент-сервер обеспечивает прямую связь между двумя узлами, одновременно запрос не может быть отправлен более чем на один сервер. Это подразумевает, с одной стороны, упрощение системы и уменьшение объемов памяти, но с другой стороны невозможность изменять параметры в процессе обмена данными, невозможность реализации множественных вопросов и блокировку узлов клиента до момента ответа сервера[3]. На рисунке 2 представлено графическое отображение модели обмена данными издатель-подписчик.

Благодаря малым размерам и низкому потребляемому току L3G4200D/L3G4200DH перспективны для применения в набирающих популярность 3D–пультах дистанционного управления (например, для совместной работы с презентационным оборудованием) и 3D–манипуляторах мышь, которые обеспечивают работу с системами трехмерного моделирования, включая компьютерные игры и САПР, через интуитивно–понятный интерфейс. Кроме того, эти трехосевые гироскопы могут применяться в системах позиционирования для повышения точности устройств спутниковой навигации и сохранения ее работоспособности в условиях нестабильного или полного отсутствия приема спутниковых сигналов. Пример — на рисунке 2.

Рис. 2. Модель клиент-сервер

Рис. 2. Модель клиент-сервер

Модель общения при помощи дерева параметров отражает взаимодействие, при котором объект Matlab обращается к серверу параметров ROS. Такой метод общения применим для обращения к неизменяемым во времени данным, таким как, например, параметры конфигурации, максимально-допустимые значения переменных и так далее.

Для начала построения системы передачи данных между мобильной платформой и Simulink в первую очередь выполняется их физическое соединение посредством Ethernet. Далее необходимо выполнить настройку локальной сети и протестировать передачу данных. Для этого необходимо узнать IP-адрес самого робота и создать на персональном компьютере локальную сеть с соответствующим IP-адресом. Когда локальная сеть создана, необходимо убедиться в том, что мобильная платформа действительно подключена именно к созданной сети – это проверяется в настройках соединения. Тестирование передачи данных осуществляется при помощи запуска команды пинга на соответствующий IP-адрес в терминалах соединенных устройств.

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

Для отправки данных применяется блок издателя, а также блок создания сообщения для отправки его в тему. В настройках блока издателя указывается соответствующая тема и тип сообщения, которые будут переданы в узел, также тип сообщения указывается в блоке пустого сообщения. Генерация самого сообщения может быть осуществлена за счет стандартных средств Matlab. Объединение сгенерированного сообщения и блоков издателя осуществляется с помощью шины Bus Assignment. Проверить передачу данных можно с помощью команды отображения активных узлов и задействованных тем в терминале робота. При корректной настройке модели, после вызова данных команд, помимо стандартного узла rosout, будет также указан новый созданный узел, осуществляющий связь с Matlab. А в темах будут отображаться использованные в модели темы.

Создание подписчика происходит аналогично и значительно проще, так как включает создание только одного блока. В настройках блока подписчика указывается тема, из которой будут считываться данные и тип сообщения, а использования в модели полученных данных применяется Bus Selector.

Сообщения воспроизводятся и генерируются на роботе за счет программного кода, который постоянно исполняется и ссылается на сообщения из определенной темы. В данном программном коде должны быть описаны именно постоянные ссылки основных встроенных функций конкретного робота на определенные сообщения. Так, например, единственные команды, которые отправляются издателем на робота – это команды для управления скоростью[4]. Соответственно в программном блоке ссылка на эти сообщения должна быть у функции, регулирующей скорость мобильной платформы.

Заключение

В результате проведенного анализа принципов обеспечения связи между мобильной платформой 227 Kuka YouBot на базе операционной системы ROS и Matlab Simulink на стороннем компьютере, можно сделать выводы о том, что данный метод управления и передачи данных хоть и не является распространенным, для решения подобных задач, но является очень актуальным и значительно упрощающем построение алгоритма управления. Грамотное сочетание различных подходов к передаче данных обеспечивает наиболее эффективное решение задачи управления, а возможности, которые предоставляет ROSToolbox, значительно упрощают готовую модель.

Литература

1. Операционная система робота (РОС) [Электронный ресурс] / Официальный сайт Matlab – URL:https://ww2.mathworks.cn/help/ros/gs/robotoperating- system-ros.html
2. Обмен данными с РОС [Электронный ресурс] / Официальный сайт Matlab – URL:https://www.mathworks.com/products/ros.html#ro scom
3. Подключение робота [Электронный ресурс] / Официальный сайт Matlab – URL:https://www.mathworks.com/help/ros/ug/getstarted- with-a-real-turtlebot.html
4. Начало работы с РОС Электронный ресурс] / Официальный сайт Matlab – URL: https://www.mathworks.com/help/ros/ug/getstarted- with-ros-in-simulink.html