Sмарт-Пауза
139 subscribers
159 photos
41 videos
5 files
18 links
Привет,
Качественным и красивый DIY здесь.

Текущий проект: Силовая робо-рука

Темы: 3Д-печать, ИИ, роботы, гаджеты, метаоптика, программирование.
Download Telegram
Архитектура управления роботом.

Начинаем с того, что создаем просто папки в своей файловой системе вложенные вдруг в друга .
Каждая папка - это будущий пакет ROS2, который будет выполнять свою глобальную задачу. Название многих пакетов закреплены договоренностями. Почти все папки можно называть как угодно, но будет не понятно, что они делают

1️⃣ Все папки вложены в "src". Такие вещи как части обязательной договоренности в архитектуре.
2️⃣ Формировать эти пакеты и наполнять их можно работая через Windows.
3️⃣ А вот скомпилировать их и проверить работоспособность из под Windows 11 уже не получится.
4️⃣ Понадобится Linux система, либо хотя бы Windows 10 на которые нужно установить ROS2, инструкция по установке которого очень подробна на их сайте https://docs.ros.org/en/jazzy/Installation.html
5️⃣ На WSL2 (windows for linux) ROS2 устанавливается без проблем. Но ROS2 использует GUI (интерфейсные окна) для отладок и управления, а их нет из "коробки" на WSL2. Поэтому не стоит. Еще есть возможность поставить на Windows 10 через Visual Studio 2019. Нужно настроить зависимости по инструкции на сайте. Этот вариант не пробовал. Но я выбираю поставить полноценный Linux рядом с Windows.
6️⃣ У ROS2 очень много версий. Сейчас они выходят каждый год в мае. Есть версии с долгой поддержкой и с короткой. Я буду использовать последнюю долгосрочную Jazzy Jalisco
7️⃣ Версии не сильно отличаются друг от друга, но иногда меняются названия функций или добавляются переменные. Код с прошлой версии может легко не собраться без рефакторинга. (Самый значительный переход был при ROS -> ROS2)
8️⃣ Каждая сборка ROS2 указывает какая Linux ей нужна. Они поддерживают несколько Linux систем. В первую очередь они нацелены на Ubuntu. Я ставлю Ubuntu Noble (24.04)

По мере продвижения буду описывать какую функцию выполняет каждый пакет.

#робот #ros2 #опыт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍431🔥1💯1
Sмарт-Пауза
Архитектура управления роботом. Начинаем с того, что создаем просто папки в своей файловой системе вложенные вдруг в друга . Каждая папка - это будущий пакет ROS2, который будет выполнять свою глобальную задачу. Название многих пакетов закреплены договоренностями.…
1️⃣Пакет: description

Он нужен как входная точка связи ros2 с реальным миром.
Я бы обозначил задачи этого пакета таким образом:

Создать взаимосвязи, как один элемент робота влияет на другой
Обозначить управляемые элементы робота.
Обозначить тип перемещений этих элементов.
Указать физические данные, такие как масса и инерция для симуляций.
Визуализировать робота.

Именно здесь создаются связи, которые позволяют другим пакетами знать, чем именно они управляют. И визуализация далеко не основное, для чего нужен этот пакет. Meshes модели с визуальным отображение робота, совсем не являются обязательной частью как может показаться с начала. Так как структура робота в первую очередь описывается кодом и все сочленения численно определены в пространстве. И только потом на этот скелет крепятся файлы визуализации.

На скринах среда rviz2 и моделька робота в ней. Пока что здесь у меня больше ничего не происходит Только покрутить оси модели и проверить, что все правильно описано.

#ros2 #робот #опыт
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍21💯1
Sмарт-Пауза
2️⃣ Пакет: hardware Задача этого пакета быть входной точкой взаимодействия всей архитектуры ROS2 с реальными физическими объектами - например, моторами И самое сердце этого всего - плагин написанный на С++. В моем случае bldc_driver.cpp. Там описано примерно…
3️⃣Пакет: ros2_control/moveit

🏃
ранее был пакет description, который описывает как выглядит робот
а как взаимодействовать с его аппаратурой и как получать данные было реализовано в hardware

А теперь нужно создать то что будет просчитывать все движение с учетом окружения вокруг, с учетом скоростей и возможностей самого робота, времени. Это верхний уровень управления.

📥📥📥

ros2_control
считается низко-уровневой системой управления, которая решает основные кинематические задачи. Настроить ее с одной стороны очень легко и очень сложно.
Можно вообще обойтись без сложного кода, а только файлами формата yaml и xml. Но это не значит что все легко быстро и понятно. Прежде чем переходить к moveit2 рекомендую разобраться там с документацией. На этом уровне управления уже можно управлять роботом простыми командами по осям.

moveit2
уровень повыше. База этого пакета - это планировщики, которые на основе задачи "где нужно оказаться" строят свое перемещение, могут даже не линейно.
Из хорошего - в наборе есть MoveIt Setup Assistant который позволяет собрать весь костяк настроек для работы этого управления на основе файла описания робота urdf. Он и ros2_control настроит, так как этот пакет работает поверх/вместо него.
Но работать у вас все равно ничего не будет...😂
Этот ассистент генерирует файлы запуска, но создает даже не все файлы конфигураций, которые нужны, и нигде не говорит об этом. Поэтому приходится тратить время, выясняя кто дурак, ты или сани.
И для знатоков конечно тут есть уровень API взаимодействия через С++. Но мне C++ и в hardware interface хватает.

В общем без чтения документации не обойтись 😫. С ней все очень сложно. Очень много не задокументированных кусков после переезда на ros2 с ros.

LLM Просто в шоке от того что там происходит и помогать собирать файлы конфига может только точечно с прямой задачей. Навалив туда 80% галлюцинаций, из-за того что они сильно не отличают что принадлежит конфигам ros2_controll, а что moveit2. Смешав все в одну кучу из разных версий. Понимаю, что тут основная проблема в том что слишком много ОТДЕЛЬНЫХ файлов и LLM такое не любит. Там в рамках одного проекта все должно быть согласовано, а так как LLM работают принципами статистики, а не понимания, они не могут оценить что с чем должно согласоваться в разрозненных файлах. В рамках одного файла обычно с этим проблем нет.

Мини-Вывод: использовать LLM для этих пакетов в основной даже вредно, они вводят в заблуждение. Нужно работать с документацией. И примерами. Этого должно хватить, чтобы быстро собрать MVP версию.

#ros2 #робот #опыт
Please open Telegram to view this post
VIEW IN TELEGRAM
54🔥21
Media is too big
VIEW IN TELEGRAM
теперь не забуду про таблетки 1️⃣

Будем считать, что это первое видео, где он делает что-то полезное.

1️⃣ поменял один из редукторов
2️⃣ захват подключил в ros2
3️⃣ усилил одну из осей. люфтов явных почти не осталось
4️⃣ научился сохранять позиции, чтобы сразу их вызывать

#ros2 #робот #тест
Please open Telegram to view this post
VIEW IN TELEGRAM
153😁21
This media is not supported in your browser
VIEW IN TELEGRAM
Вам надоело самим передвигать помидорки чери на столе?
А этот процесс кажется долгим и утомительным?

Выход есть - робот манипулятор! Он сам за вас подвинет помидорку. А вы можете просто отдыхать на диване за просмотром своей любимой передачи


#робот #тест #ros2
1😁8🔥221