Sмарт-Пауза
153 subscribers
256 photos
63 videos
12 files
42 links
Привет,
DIY здесь.

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

Темы: 3Д-печать, ИИ, роботы, гаджеты, метаоптика, программирование.
Download Telegram
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март-Пауза
Архитектура управления роботом. Начинаем с того, что создаем просто папки в своей файловой системе вложенные вдруг в друга . Каждая папка - это будущий пакет ROS2, который будет выполнять свою глобальную задачу. Название многих пакетов закреплены договоренностями.…
2️⃣ Пакет: hardware

Задача этого пакета быть входной точкой взаимодействия всей архитектуры ROS2 с реальными физическими объектами - например, моторами

И самое сердце этого всего - плагин написанный на С++. В моем случае bldc_driver.cpp. Там описано примерно следующее:

как принять сообщения по CAN линии, и как их сохранять.
как отправлять рассчитанные значения планировщиком в CAN
как интерпретировать эти сообщения, что к какому узлу, описанному в description относится.
что делать при старте робота. В моем случае телеметрия не шлется без первичного запроса. Именно этот запрос рассылается на старте
любая низкоуровневая логика на С++. У меня идет "прозвон" всех движков. Если от кого-то нет ответа, он исключается из рассылки.

👋 Про нейронки
В среднем этот файл на 200 строчек кода. И после отладок и проверок LLM модели справляются, чтобы реализовать всю желаемую логику. Достаточно верхнеуровнево понимать как все работает в рамках этого плагина.

😱
А вот дальше...на следующих пакетах бесплатные LLM нещадно галлюционируют и не справляются с согласованием такого большого количества структурных элементов. В первую очередь это из-за проблемы разрозненной документации ROS2. Которая содержит в себе и куски из ROS1, и пересечения из разных выпусков. И огромное количество способов построить все связи...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍21
Сделал новую итерацию в прошивке движков.

Посылки стали чаще и содержат больше полезной информации
📥📤

Вот такая информация теперь в каждой посылке, не считая ключа:
ID=5 ANGLE=1.7278, SPEED=0.0374
ID=5 ANGLE=1.7278, SPEED=0.0371
ID=5 ANGLE=1.7278, SPEED=0.0366

Предыстория:
После проверки моей прошивки, при работе с управлением по ROS2 через ros2_control. Решил прокачать низкий уровень. И так все работало. Но прошлая версия работала в максимально экономном режиме, нагружая линию на 2% от пропускной способности линии.

Факты:
поднял скорость рассылки каждого движка о своем состоянии на линию до 20Гц.
расширил посылки и теперь по CAN передается одновременно и позиция двигателя и его скорость. Раньше была только позиция. Точность сообщений 0.0001 радиана. В то время как точность энкодера всего 0.0015 радиан. Даже сейчас точность сообщений избыточна.
итоговая длина полезного сообщения DLC = 7. Длина не расширенной CAN посылки DLC = 8. Это значит, что у меня еще есть один байт на какую-нибудь информацию.
перевел аварийную блокировку с угла на скорость. Производная величина выглядит более надежной.
на скорость сразу добавил фильтр сглаживания, а то прямые сообщения скорости от энкодера не юзабельны.

Не вдаваясь в остальные подробности, в конечном итоге линия будет загружена где-то на 10%.
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍31🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🤪
Полная сборка ROS2

Возможно для кого-то из подписчиков дойти до такого состояния обыденность. Но
меня лично впечатляет такая визуализация.

В обратную сторону от планировщика к двигателю пока не получается хорошо. Надо как-то все согласовать, а то движок в защиту уходит от дискретных команд с рывками, которые направляет планировщик.

P.S. Визуализируется реальное выходное звено, как оно будет после редуктора.

#робот #тесты
Please open Telegram to view this post
VIEW IN TELEGRAM
55👍3
Кто бы мог подумать, что все статьи там по материаловедению.

Тем временем надеюсь через пару дней робот будет готов для создания контента =)
4👍2🔥1🍾1
Мем для знатоков. Который рассказывает о текущем статусе дел по высокочастотному управлению робота через CAN линию.
😁5💯2👍1
💡

Не знаю законно ли так делать, но зато 120 Ом для CAN и ждать доставки не надо.

И нет это не временное решение 🫠

Если это конечно поможет.

Ниже для тех кто не понимает, что тут вообще происходит.
👇👇👇

———
В общем чтобы линия по протоколу CAN (как например Ethernet тоже один из видов протокола обмена информацией) работала, нужно чтобы в начале и в конце было сопротивление, причем строго согласованное, потому что без этого может происходить дичь на линии. Представьте, что вы отправляете запрос поиска в Интернете «заказать раскладу таро» а в ответ получаете сайт с тестом на IQ. Вот у меня сейчас также. Просишь двигатель приехать в одну точку, а он приезжает туда снова и снова и больше слушать ничего не хочет.
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
Линия связи не для DIY

Чтобы настроить линию CAN на стабильную работу пришлось полностью с ней разобраться.

Переписал все на HAL, чтобы точно исключить проблемы с таймингами, которые могут быть из-за оберточной библиотеки STM_CAN.

HAL (Hardware Abstraction Layer) — это библиотека для создания приложений на stm32, разработанная компанией ST в 2014 году. HAL пришёл на смену SPL


Основным решением проблемы оказалось понижение sample-point с 87.5% до 50%. Это помогло убрать несостыковки в тактирование, которые вероятно уже идут от не идеальной линии. И которые уводили всю линию в ошибку, потому что приемник не мог расшифровать данные.

По итогу:
1️⃣. CAN завелся на всех 6 моторах;
2️⃣. ROS2 управление полностью работает;
💔. Один движок при сборке был перезатянут, и потерял соосность опять из-за перегрева при тестировании (программные защиты от заклинивания удалил когда перенастраивал CAN). Заказал вместо него металлический 6010. От того же производителя, что и маленький мотор для захвата. Еще один локальный вывод: делать пластиковые BLDC моторы для робота, когда есть типовые заводские, нет ни экономического смысла ни технического (только учебный, но для этого достаточно одного мотора).

#can #робот
Please open Telegram to view this post
VIEW IN TELEGRAM
🍾3🔥2👍1
Приехал большой мотор в металле

Теперь будет один полностью металлический узел. Хотелось бы конечно все на таких собрать…

Под них даже переделывать особо ничего не надо. Переходники только намоделить.

#робот #мотор
👍4🔥21🍾1
Что у других 🤨

Наткнулся на такой полу-DIY полу-промышленный манипулятор. Позиционируют себя как манипулятор для извлечения деталей из принтера, и для обучающих курсов по робототехнике.

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

И цена 2000-2500 евро. Это стоимость уже заводских китайских коботов, которые прослужат дольше и будут точнее. Но их безболезненно не разберешь, и детали запасные легко не купишь. Поэтому в целом стоимость оправдана, когда ожидания правильные.

https://www.crea3d.com/en/robotics/1524-2892-primo-robotic-arm.html#/215-options-fully_assembled

#новости #мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻3🔥2🤯1
Что по коммерческим роботам из Китая 🤪

💴Цены в юанях💴


Курс:

💸 1 юань - 10.8 рублей
💸 1 юань - 0.12 евро
Или 20000 юаней = 2400 евро


На скринах в цене заложена доставка по Китаю.

🚗 Красненькие роботы “Borunte” ведут довольно агрессивную рекламу и пытаются откусить международный рынок своей очень низкой ценой.

🪙 9888 юаней многим известный AR3 под ключ с пультом управления в алюминиевом исполнении. Думаю его можно считать как робот который возможно применить в промышленности.

💬 Это варианты из первой 20-ки поиска, далеко не все что есть в ценовой категории около 2500 евро.

Поиском по картинкам можно выйти на них.
Если кому очень надо, попросите, кину на Таобао ссылку.

#рисерч #новости
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
111