Robot Operating System (ROS) - технология, упрощающая разработку системы управления роботом. Согласно заявлению разработчиков, она обладает такими качествами как:
- открытое ПО;
- низкоуровневое управление устройствами;
- предоставление высокоуровневой абстракции для "железа";
- наличие широко используемых функций;
- взаимодействие процессов посредством обмена сообщений;
- управление и навигация по функциональным узлам.
Основная идея ROS - возможность представить систему управления в виде отдельных независимых программ и обеспечить взаимодействие между ними, а также предоставить удобные инструменты для написания и использования таких функциональных узлов. ROS не ограничивает разработчика одним языком программирования, по-умолчанию поддерживаются С++, Python и Common Lisp. Далее я буду использовать Python, как язык с наименьшим порогом вхождения среди перечисленных.
Другая идея данной системы заключается в возможности повторного использования кода. Действительно, развитое сообщество и открытость проекта дают возможность находить готовые решения к текущим задачам, что, в свою очередь, позволяет сосредоточиться на нюансах.
Несмотря на название, ROS не нужно устанавливать на чистое железо, родная для неё "среда обитания" - Linux Ubuntu. Описание процесса установки можно найти на сайте программы, либо в рунете.
И ещё несколько слов о черепахах, которые, судя по присутствию на всех логотипах, являются символом проекта. Для демонстрации основных концепций в ROS имеется специальный пакет программ turtlesim, который позволяет с помощью клавиатуры управлять траекторией черепашки. Чтобы её запустить, прежде всего нужно в отдельном терминале выполнить команду
roscore
Она запустит программу, которая далее будет обеспечивать взаимодействие всех компонентов системы. Почти любая работа с ROS должна начинаться с выполнения данной команды. Если же вы закончили работать с роботом, завершить roscore можно с помощью комбинации клавиш Ctrl+C.
Далее в новом терминале введите команду
rosrun turtlesim turtlesim_node
Она запускает программу turtlesim_node из пакета turtlesim (подробнее о пакетах и нодах поговорим в следующий раз). В результате должно открыться синее окно, в центре которого неподвижно сидит черепашка. Чтобы заставить её двигаться, ещё в одном терминале выполните команду
rosrun turtlesim turtle_teleop_key
Теперь нажатие стрелок на клавиатуре будет приводить к перемещению черепахи. Кстати, ROS содержит целый зоопарк таких черепашек, и каждый раз при вызове программы вы можете встретить новый вид.
Данный пример демонстрирует основную концепцию ROS: есть две независимые программы, одна взаимодействует с пользователем, считывает его команды и передаёт их, вторая принимает и выполняет эти команды, а roscore обеспечивает связь между компонентами системы.
Комментариев нет:
Отправить комментарий