Что такое ROS, основные задачи

Что такое ROS

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

www.ros.org

Аббревиатура ОС, обычно обозначает Операционная Система общего назначения (Linux, Windows, iOS). Можно ли при этом называть ROS операционной системой для роботов? Это не совсем верно. Более точно описать ROS можно определением мета-операционная система.

Мета-операционная система не похожа на обычную операционная систему, такие как Windows, Linux и Android. ROS работает "поверх" существующей операционной системы. Для работы ROS необходима базовая операционная система Linux (например дистрибутив Ubuntu). После завершения установки ROS на OC Linux можно использовать функции, предоставляемые обычной операционной системой. В дополнение к основным функциям, предоставляемым Linux, ROS обеспечивает дополнительный функционал, необходимый для роботов. Например: работа с библиотеками, передача / прием данных для разных устройств, планирование и обработка ошибок. Этот тип программного обеспечения также называется промежуточным программным обеспечением (middleware ) или программным фреймворком.

Основные задачи ROS

Целью создания ROS является создание "среды разработки, которая позволяет разработчикам ПО для роботов сотрудничать на глобальном уровне".

ROS сосредоточена на максимизации повторного использования кода при разработке. Основные характеристики позволяющие это реализовать:

Распределенный процессы: Структура ROS создана в виде минимальных единиц исполняемых процессов (нод), и каждый процесс выполняется изолированно. Взаимодействие разных нод происходит только на уровне обмена сообщениями.

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

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

Единое API: При разработке программы, использующей ROS, вы получаете простое и легко встраиваемое API. В примерах программ вы увидите, что использование API не сильно отличается от языка (C ++ или Python). При этом нет разницы при использовании API на каком языке была написана программа.

Поддержка различных языков программирования: ROS предоставляет клиентские библиотеки для поддержки различных языков программирования. Наиболее популярны Python, C ++, а также такие языки, как Lisp, JAVA, C #, Lua и Ruby.

Last updated