Проблемы современной робототехники
Last updated
Last updated
Большое количество платформ
Большое количество устройств и датчиков
Большое количество алгоритмов
Большое количество разработчиков
Отсутствие единых подходов
Последовательное программирование плохо подходит для “асинхронного мира”
Создание действительно надежного, универсального программного обеспечения для роботов чрезвычайно сложная задача. С точки зрения робота, проблемы, которые кажутся тривиальными для людей, часто требуют очень сложных технических решений. Обычно разработка всех систем робота не под силу одному человеку.
Часто разработчикам приходиться проходить полный цикл разработки своего робота. Чужие наработки не совместимы и часто закрыты (сложно находимы) для публичного доступа.
В последнее время, в области робототехники особое внимание уделяется платформам. Понятие "платформа" обычно разделяют на программную платформу и аппаратную платформу. Программная платформа для роботов включает в себя набор инструментов, которые используются для разработки ПО роботов.
Можно выделить типовые, задачи программной платформы: работа с низкоуровневыми устройствами, аппаратная абстракция и коммуникация, навигация, распознавание образов, управление и установка пакетов и зависимостей, подключение библиотек, инструменты для отладки и разработки.
Аппаратные платформы (непосредственно "железо" роботов), включают в себя готовые исследовательские и образовательные устройства (TurtleBot, TurtleBro), а также готовые промышленные системы и устройства.
Важно отметить, что аппаратные платформы совместимы с программными, что позволяет разрабатывать собственные программы не тратя время на разработку собственного "железа". А единая совместимость платформ позволяет тестировать программы на простых роботах, а потом запускать их на более сложных.
Такой подход, позволил огромному количеству разработчиков ПО объединить свои усилия и создать вещи о которых ранее не приходилось и мечтать.
В данный момент для целей изучения и погружения в робототехнику можно однозначно рекомендовать ROS. Важными критериями на этапе погружения в робототехнику, являются: активность сообщества, наличие различных библиотек, расширяемость и простота использования. По этим критериям в данный момент равных ROS нет.
Следует особо отметить, что сообщество ROS чрезвычайно активно. Когда вы сталкиваетесь с проблемой, найти решение и получить помощь становиться проще, не только от разработчика ROS (компании Open Robotics), но и от других энтузиастов и профессионалов.
Повторное использование программных модулей. Разработанный программный модуль, легко запускается и переиспользуется в любом другом приложении. Вопросы установки зависимостей и других библиотек хорошо проработаны и автоматизированы.
Готовый протокол коммуникации. Основная проблема комплексных робототехнических систем, это решение задач коммуникации в рамках одного приложения. Для решения этих задач ROS содержит все необходимые утилиты. Любой программных модуль может быть представлен как отдельный процесс, взаимодействующий с другими процессами по сетевому протоколу. Такой подход позволяет создавать независимые и простые в повторном использовании программные модули, которые возможно запустить/остановить/модифицировать на любом устройстве.
Развитость средств разработки и отладки. ROS предоставляет готовые инструменты для отладки, инструмент 2D-визуализации (rqt), и инструмент 3D-визуализации (RViz), инструмент 3D симуляции (Gazebo).
Активное и открытое сообщество. Сообщества разработчиков робототехники из академического мира и промышленности, были относительно закрытыми до последнего времени. Но сейчас мы видим активное, и главное открытое сотрудничество всех участников. В центре этого изменения -- программная платформа с открытым исходным кодом. В случае ROS существует более 5000 пакетов, которые были разработаны и выложены в общий доступ. Описание этих пакетов, инструкций и другой полезной информации -- превышает 18 000 Wiki страниц.
Собственная экосистема. Вокруг ROS сформирована собственная экосистема (по аналогии с платформами Android и Apple). В ней существуют разработчики аппаратных платформ, разработчики программных модулей, энтузиасты и компании производители промышленного оборудования, единое место распространения и хранения готовых модулей, тысячи станиц документации. Все участники взаимодействуют и работают в рамках единой платформы.
MSRDS10 | Microsoft Robotics Developer Studio, Microsoft - U.S. |
---|---|
ERSP11
Evolution Robotics Software Platform, Evolution Robotics - Europe
ROS
Robot Operating System, Open Robotics12 - U.S.
OpenRTM
National Institute of Adv. Industrial Science and Technology (AIST) - Japan
OROCOS
Europe
OPRoS
ETRI, KIST, KITECH, Kangwon National University - South Korea