Raspberry Pi и ROS


Предыдущая | Следующая

ROS (Robot Operating System, операционная система для роботов) — это программный комплекс (фреймворк) для программирования роботов, предоставляющий об­ширный функционал. ROS была первоначально разработана в 2007 году под назва­нием switchyard в Лаборатории искусственного интеллекта Стэнфордского универ­ситета, и ее развитие продолжается усилиями многих организаций.

Обычно при создании робота приходится реализовывать свою архитектуру, свой протокол обмена сообщениями, драйвер пульта управления, логику навигации и пр. И даже если вы сможете использовать различные готовые библиотеки для этих за­дач, то все равно перед вами встанет серьезная проблема — объединить их в еди­ную систему робота. Разработчики ROS позиционируют свою систему как инстру­мент создания программ взаимодействия и управления роботом. ROS действитель­но играет роль "операционной системы", предоставляя программам управления свои интерфейсы, библиотеки и готовые приложения. ROS работает под уже гото­вой OC (Ubuntu Linux), в которой реализует свой дополнительный слой абстракции для управления роботами. ROS обеспечивает стандартные службы операционной системы, такие как: аппаратная абстракция, низкоуровневый контроль устройств, реализация часто используемых функций, передача сообщений между процессами и управление пакетами.

Для ROS уже реализованы драйверы, позволяющие единым образом работать со многими устройствами: джойстиками, GPS, камерами, лазерными дальномерами и пр.

ROS имеет две основные ипостаси: именно операционной системы, как только что описано, и ros-pkg — набора поддерживаемых пользователями пакетов (которые называются стеками), реализующих различные функции робототехники. ROS уже содержит вспомогательные библиотеки и приложения для роботов: преобразование систем координат, утилиты для визуализации данных, распознавания объектов, стек навигации и многое другое.

ROS основан на архитектуре графов, где обработка данных происходит в узлах, которые могут получать и передавать сообщения (структурированные данные) ме­жду собой. Комбинируя готовые узлы ROS и, по необходимости, дописывая собст­венные, можно существенно сократить время разработки и позволить себе сконцентрироваться только на тех задачах, которые действительно нужно решить.

На данный момент уже много роботов работает под управлением ROS. Вот непол­ный список: PR2, TurtleBot, PR1, HERB, STAIR I и II, Nao, Husky A200, iRobot Create, Lego Mindstorms NXT.

ROS распространяется в соответствии с условиями BSD-лицензии и c открытым исходным кодом. ROS бесплатна для использования как в исследовательских, так и в коммерческих целях. Пакеты из ros-pkg распространяются на условиях различных открытых лицензий.