Published on Февраль 7th, 2014 | by Павел Брызгалов
0Robot Operating System или долой «велосипеды»
При разработке программного обеспечения люди сталкиваются с похожими проблемами. Чтобы не наступать по десять раз на одни и те же «грабли» в области ПО для роботов, компания Willow Garage 1 ноября 2007 основала проект Robot Operating System (сокращенно ROS), комплексной операционной системы для управления роботами.
ROS выпускается в соответствии с условиями BSD-лицензии и c открытым исходным кодом. Она бесплатна для использования в исследовательских и коммерческих целях. Это позволяет создавать программы на базе опыта и труда всех тех, кто занимался этим проектом, а не «изобретать велосипед». Благодаря этому можно не тратить время на разработку дополнительных программ, а сконцентрироваться на решении главных задач.
Исполнительный директор Rethink Robotics Скот Экерт (Scott Eckert) так отзывается об этой системе: « Мы занимались разработкой интерфейса робот-человек или механической системы – нашей непосредственной специализации, а все остальное мы взяли из ROS»
ROS включает в себя множество библиотек:
- OpenCV — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения c открытым исходным кодом. Она разрабатывается на С/С++, Python, Java и многих других языках.
- PCL (Point Cloud Library) – библиотека содержит множество алгоритмов для обработки 2D/3D изображений и облаков точек.
- OGRE (Object-Oriented Graphics Rendering Engine) – это обектно-ориентированный графический движок, написанный на С, с открытым исходным кодом. Он предназначен для упрощения и визуализации моделирования поведения робота.
- CARMEN (Carnegie Mellon Robot Navigation Toolkit) – библиотека для управления мобильными роботами. Она предназначена для выполнения базовых операций, необходимых мобильным роботам, таких как: сенсорное управление, обход препятствий, построение пути и создание карт.
- Orocos (Open Robot Control Software) — библиотека для управления роботами, например, расчета кинематики.
- А также множество других полезных библиотек. Например, есть библиотека поддерживающая работу с Arduino. Помимо этого в ROS есть драйвера для различных манипуляторов, сенсоров и датчиков.
Основная задача разработчиков ROS — это создать среду, в которой написанный код можно было бы легко найти и использовать. Что значительно ускоряло бы процесс написания кода, а значит и развитие робототехники в целом.
Эта концепция была хорошо принята. Вокруг ROS сформировалось огромное сообщество, которое постоянно создает и дорабатывает программы и библиотеки. Только на сайте зарегистрировано порядка 1 500 активных пользователей. Было написано более 22 000 материалов в справочнике, и еще около 30 статей добавляется каждый день. Более 5 700 людей участвует в специализированном сервисе вопросов и ответов.
Все эти люди помогают друг другу в решении проблем связанных с настройкой и программированием роботов, что является наибольшим преимуществом ROS перед другими системами программирования роботов.
На сегодня ROS существует около 6 лет, и за это время она уже вошла и активно используется в академических кругах по всему миру. На базе ROS были созданы следующие роботы:
- Q.bo
- Lego NXT
- iRobot Roomba
- Aldebaran Nao
- Willow Garage PR2
- ROS-Industrial
- Cyton-Gamma
- и множество других
ROS уже доказал свою жизнеспособность и возможность развиваться. Влияние ROS на мировую робототехнику будет только увеличиваться.