Robot Operating System (ROS) — это широко используемый в робототехнике фреймворк. Философией ROS является создание программного обеспечения, которое бы работало с различными роботами, лишь с небольшими изменениями в коде. Эта идея позволяет создавать функциональность, которая может быть перенесена без особых усилий для использования различными роботами, чтобы раз за разом не изобретать колесо.
ROS была разработана в 2007 году в лаборатории искусственного интеллекта Стэнфорда (Stanford Artificial Intellegence Laboratory, SAIL) для поддержки стэнфордского проекта AI Robot. C 2008 года, разработка продолжилась в основном в исследовательском институте Willow Garage, сотрудничающим с более чем двадцатью различными институтами в рамках модели совместного развития.
Множество исследовательских институтов начали разрабатывать собственные проекты в ROS, добавляя поддержку своего аппаратного обеспечения и делясь примерами собственного программного кода. Некоторые компании, производящие роботов, стали адаптировать свои продукты для их использования с ROS.
Список роботов, поддерживаемых ROS.
Как правило, для всех поддерживаемых платформ публикуется большое количество примеров и симуляторы, облегчающие разработку собственных проектов.
В ROS также поддерживается множество различных датчиков и исполнительных устройств (актуаторов), используемых в робототехнике. Каждый день появляются новые устройства, совместимые с этим фреймворком.
В ROS имеются стандартные возможности операционной системы, такие как, аппаратная абстракция, управление устройствами на низком уровне, реализована часто используемая функциональность, передача сообщений между процессами, и управление библиотеками. Архитектура ROS основана не графе с централизованной топологией. Обработка происходит в узлах, которые могут принимать или отправлять данные с датчиков, систем контроля состояния и планирования, приводов, и так далее. Библиотека ориентирована на Unix-подобные системы (под Ubuntu Linux работает отлично, а Fedora и Mac OS X имеют статус экспериментальных).
Пакет *-ros-pkg является является общим репозиторием для разработки высокоуровневых библиотек. Многие из возможностей часто ассоциируемые с ROS, такие как библиотеки навигации и визуализатор rviz, хранятся в этом репозитории. Эти библиотеки предоставляют мощный набор инструментов (различные визуализаторы, симуляторы, средства отладки) для упрощения работы.
ROS распространяется на условиях лицензии BSD и является ПО с открытым исходным кодом. ROS бесплатна для исследовательских и коммерческих целей. ROS способствует повторному использованию кода, так что разработчики робототехники и ученые могут не изобретать колесо постоянно. Можно получить код из репозитория, изменить его и вновь поделиться улучшенным ПО. Вы также можете написать драйвер вашего собственного датчика для ROS.
ROS поддерживает параллельные вычисления, имеет хорошую интеграцию с популярными C++ библиотеками, такими как как OpenCV, Qt, Point Cloud Library и пр., и она может работать на одноплатных компьютерах, таких как Raspberry Pi или BeagleBone Black, а также с микроконтроллерными платформами, например, Arduino. Вы можете создать своего собственного робота на основе Arduino или Raspberry Pi и использовать для его управления Robot Operating System.
Время является очень важным ресурсом и ROS является одним из инструментов, которые могут помочь разработать комплексное решение в кратчайшие сроки и с минимальными усилиями. Библиотека ROS поможет реализовать алгоритмы и сократить время, необходимое для интеграции целой кучи компонентов.
[add_ratings]