ROS 2 стала одной из важнейших технологий для инженеров, интересующихся робототехникой. Но новички часто сталкиваются с одними и теми же вопросами: стоит ли сначала изучить ROS 1? Нужен ли мне физический робот? Какой язык программирования мне следует знать? И используется ли ROS на практике?
Мы обсудили эти вопросы с Шубхамом Нанди, соучредителем и главным научным сотрудником RigBetel Labs, который занимается разработкой, обучением и наймом специалистов в области робототехники.
Что такое ROS 2?
Несмотря на своё название, ROS — это не обычная операционная система, подобная Linux или Windows. Это программная платформа, которая помогает различным частям робота взаимодействовать друг с другом.
Робот может содержать камеры, лидарные датчики, контроллеры двигателей, навигационное программное обеспечение и модели искусственного интеллекта. ROS обеспечивает общий уровень связи посредством таких концепций, как узлы, темы, сообщения и сервисы.
Это позволяет инженерам создавать модульные роботизированные системы, вместо того чтобы разрабатывать каждый программный компонент и интерфейс связи с нуля.
Начинающим следует сначала изучить ROS 1, а затем ROS 2?
Нет. Новички могут начать обучение непосредственно с ROS 2.
ROS 1 сыграла важную роль в исследованиях в области робототехники, но ROS 2 была разработана для поддержки более современных требований, включая улучшенную безопасность, связь в реальном времени, распределенные системы и коммерческое развертывание.
Однако начинающим следует иметь хотя бы базовое понимание Python или C++ перед изучением ROS 2. Python, как правило, проще для быстрого понимания концепций ROS, в то время как C++ становится ценным для приложений робототехники, чувствительных к производительности.
Можно ли освоить ROS 2 без робота?
Да. Вам не нужно покупать дорогостоящее оборудование, чтобы начать изучать ROS 2.
Инструменты моделирования, такие как Gazebo, позволяют инженерам создавать виртуального робота, подключать смоделированные датчики и тестировать алгоритмы навигации или управления на компьютере. Те же самые фундаментальные концепции ROS впоследствии можно применять к физическому оборудованию.
Это делает моделирование одним из наиболее практичных вариантов начала обучения для студентов и инженеров, у которых еще нет доступа к роботу.
Новичок может начать с:
- Установка ROS 2 на Ubuntu.
- Изучение узлов, тем, сообщений и сервисов.
- Создание базовых программ на Python или C++ для отправки и получения сообщений.
- Использование Gazebo для моделирования мобильного робота.
- Разработка небольшого проекта, включающего датчики, движение или навигацию.
Начните с проекта по робототехнике
Одна из самых полезных рекомендаций Шубхама — избегать изучения ROS как набора команд. Вместо этого определитесь, какого робота или приложение вы хотите создать.
Вашим первым проектом может быть:
- Имитация робота с дифференциальным приводом;
- Мобильный робот, избегающий препятствий;
- Робот, создающий карту с использованием SLAM;
- Роботизированная рука, управляемая через ROS 2;
- Система обнаружения объектов на основе камеры;
- Проект автономной навигации.
Проектная работа придает каждой теме цель. Когда что-то выходит из строя, отладка заставляет вас понять, как взаимодействуют программное обеспечение, электроника и механические системы.
Какие навыки необходимы инженерам ROS?
Знание команд ROS само по себе не делает человека полноценным инженером-робототехником. Робототехника объединяет программное обеспечение, электронику и машиностроение.
Квалифицированный инженер по ROS должен постепенно развивать навыки в следующих областях:
- Python или C++;
- Linux и инструменты командной строки;
- Git и система контроля версий программного обеспечения;
- Датчики и встроенные системы;
- Кинематика и управление роботами;
- Компьютерное зрение или навигация;
- Отладка взаимосвязанных систем.
Компании также могут оценивать подход инженера к решению незнакомой проблемы, а не просто проверять, идеально ли выполнено задание. Структурированное мышление и умение отлаживать ошибки особенно ценны, поскольку сбои в работе роботов могут быть вызваны программным обеспечением, электроникой или механическими компонентами.
Используется ли ROS 2 в производственных роботах?
ROS можно использовать в производстве, но конечная реализация может отличаться от среды ROS, использованной во время разработки.
Компании обычно используют ROS для ускорения прототипирования, интеграции датчиков и проверки функций роботов. Для производства они могут оптимизировать отдельные компоненты, внедрять собственное программное обеспечение или заменять части коммуникационной инфраструктуры для соответствия требованиям, связанным с производительностью, надежностью, безопасностью или сертификацией.
Поэтому изучение ROS 2 остается ценным даже в том случае, если коммерческий робот работает не на полностью стандартной установке ROS. Оно учит инженеров тому, как устроены современные роботизированные системы и как взаимодействуют их различные компоненты.
Простая дорожная карта изучения ROS 2
Наиболее практичный план действий выглядит следующим образом:
- Изучите основы Python или C++, затем разберитесь в взаимодействии с ROS 2 и попрактикуйтесь в симуляции.
- После этого создайте один полноценный проект, отладьте его и, наконец, переходите к работе с физическим оборудованием.
- Не ждите, пока вы освоите все пакеты ROS, прежде чем что-либо создавать. Выберите выполнимый проект, изучите необходимые для его завершения концепции и расширяйте свои знания по мере возникновения новых проблем.
Такой проектный подход часто является самым быстрым способом перейти от просмотра обучающих видеороликов по ROS к фактическому созданию роботов.
