Гайд по основам работы с ROS 2 для начинающих робототехников

Комментариев 4

Офлайн
ТипТоп 23 августа 2025 08:28

@Robo_Fan, ну да, ROS 2 — это прям такой шаг вперед по сравнению с первой версией. Особенно если говорить про real-time capabilities и поддержку разных платформ, не только Linux. Это ж теперь и на Windows, и на macOS можно спокойно пилить роботов, что раньше было, скажем так, нетривиальной задачей. Да и архитектура стала более гибкой, там про DDS (Data Distribution Service) для сетевого взаимодействия, который реально крутая штука, если разобраться.

Чего бы еще хотелось добавить, так это то, что мало кто сразу понимает, зачем вообще нужен этот ROS, особенно когда пишешь простой скрипт на Python для какого-нибудь одноплатника. Но как только начинаешь стыковать несколько модулей — датчик, навигацию, моторы — понимаешь, что без какой-то стандартизированной системы обмена сообщениями все превратится в ад. ROS как раз и решает эту проблему, предоставляя эти самые publish/subscribe механизмы, services, actions.

Технически, сама по себе ROS 2 — это набор библиотек и утилит. Ты можешь выбрать, на каком языке писать (C++ или Python — самые популярные), и какой build-системой пользоваться (ament_cmake или ament_python). А еще там есть всякие мелочи, которые реально упрощают жизнь, типа rqt для визуализации данных телеметрии или rviz2 для 3D-визуализации состояния робота. Если покопаться глубже, то там столько всего интересного, что можно диссеры писать, ахах.

Кмк, главное для новичка — не пытаться сразу все выучить. Начать с основ: как создать свой package, как написать простой node, который что-то публикует, и второй, который это подписывает. Вот пример с “hello world” на ROS 2 — это прям мастхэв. И потом уже постепенно наращивать сложность.

Офлайн
Science_Lover 23 августа 2025 17:18

@ТипТоп, привет! Рад, что кто-то еще интересуется ROS 2 ))) Я вот читал про ваши возможности real-time и поддержку других ОС, это, конечно, круто, никто не спорит. Но вот мне кажется, что для прям совсем новичков, которые только-только пробуют себя в робототехнике, эта вся крутость может показаться немного избыточной.

Ну вот как так! Для первого знакомства, чтобы вообще понять, что такое ROS, как он работает, мне кажется, первая версия, ROS 1, была куда проще для старта.

Там все как-то более наглядно, что ли? Меньше вот этих всех сложных абстракций. Хотя, конечно, ROS 2 — это будущее, тут я с вами согласен. Но начинать я бы, наверное, все же посоветовал с ROS 1, а потом уже переходить на двушку. Такая имхо.

Офлайн
ДядяФёдор 24 августа 2025 15:11

@Science_Lover, ну ты прям в точку! Это как пытаться научить кота жонглировать горящими факелами — сначала страшно, потом вроде весело, но результат не гарантирован)))

А если серьёзно, то да, ROS 2 — это реально зверь-машина. Но для новичков, которые только-только свои первые шаги делают в мире роботов, это может быть как пытаться собрать космический корабль из зубочисток и клея — вроде и детали есть, а куда их прикручивать, непонятно

Основная фишка ROS 2, которую я бы выделил для старта, — это его модульность. Вот представь, что у тебя есть кубики LEGO. Ты можешь строить что угодно, от простого манипулятора до адской машины для уборки квартиры (ну, или для захвата мира, имхо). Каждый кубик — это отдельный пакет, который выполняет свою функцию: датчик видит, мотор крутится, компьютер думает.

Для начала можно вообще забыть про все эти DDS, QoS и прочую закулисную магию. Попробуй просто запустить базовые примеры. Там же вроде как есть готовые команды чтобы поднять какого-нибудь виртуального робота и посмотреть, как он там живет в симуляции. Это как сперва научиться ходить, а потом уже пытаться танцевать ламбаду.)

Так что, @Science_Lover, ты прав, тут главное — не запутаться в терминах и не испугаться сразу. Потихоньку, шаг за шагом, и всё получится. А если что — всегда можно вернуться к основам, ну или просто позвать на помощь дядю Федора :)

Офлайн
Nano_Innovator 23 августа 2025 18:41

Nano_Innovator:

@ДядяФедор, вот прям согласен с твоей метафорой про кота и факелы ))

Помню, как сам впервые уткнулся в ROS 2, пытаясь заставить небольшой мобильный робот ездить по прямой траектории, используя данные с энкодеров и гироскопа. Думал, ну что там сложного, пара топиков, какие-то сообщения, все дела. Реальность оказалась куда более... запутанной. Мой первый "гайд" по работе с ROS 2 выглядел как куча набросанных в блокноте команд, которые вроде бы должны были работать, но на практике постоянно валились с ошибками, которые я тогда не мог понять. Особенно запомнился момент, когда я пытался настроить tf2 трансформации между базой робота и камерой — это было что-то с чем-то, пришлось перерыть кучу документации и форумов, чтобы осознать, как же правильно указывать родительские и дочерние ссылки.

И да, вот это вот ощущение, когда вроде бы все по инструкции делаешь, а оно не пашет — оно, конечно, отбивает желание. Но потом, когда оно наконец-то начинает работать, это такое удовлетворение )))

Информация
Посетители, находящиеся в группе Гости Kraken, не могут оставлять комментарии к данной публикации.