Robossembler - Открытая робототехника
527 subscribers
31 photos
7 videos
1 file
188 links
Ваш персональный фронтир в борьбе роботов за лучшее будущее для кожаных мешков. Open Source Robotics и всё такое. По вопросам сотрудничества пишите @brylev, наш сайт robossembler.org
Download Telegram
Open3D

Open3D - это библиотека с открытым исходным кодом, которая поддерживает быструю разработку программного обеспечения, работающего с 3D-данными. Интерфейс Open3D предоставляет набор тщательно отобранных структур данных и алгоритмов как на C ++, так и на Python. Бэкэнд сильно оптимизирован и настроен для распараллеливания. Open3D был разработан с чистого листа с небольшим и тщательно продуманным набором зависимостей. Его можно настроить на разных платформах и скомпилировать из исходного кода с минимальными усилиями. Код чистый, оформлен в едином стиле и поддерживается с помощью четкого механизма проверки кода. Open3D использовался в ряде опубликованных исследовательских проектов и активно развертывается в облаке.

Участники консорциума ROS-Industrial в видеопрезентации показали каким образом они используют Open3D в задачах реконструкции геометрии объектов с недорогими RGB-D камерами. Ранее они использовали yak

#cv #open3d #ros #industrial
​​RBG-only оценка позиции

Камера глубины необязательна, если Вам заранее известны модели манипулируемых объектов. К такому выводу пришли авторы исследования 6D Robotic Assembly Based on RGB-only Object Pose Estimation, в котором продемонстрировали работу системы автоматизированной сборки на базе 2D object detection/pose estimation. Пройдёмся и по этой публикации.

Датасеты для обучения агентов машинного зрения формировались с помощью BlenderProc, процедурного конвейера для генерации фотореалистичных изображений с помощью Blender API. Необходимая в такого рода задачах рандомизация обеспечивалась заменой текстур из библиотеки CC0 Textures library. В качестве движка физики использовался PyBullet. Порядок сборки задавался вручную.

Всего было обучено две нейросети - отдельно для обнаружения объектов по 2D-изображению (YOLOv4) и отдельно для 6D оценки позиции каждого объекта (GDR-Net). Алгоритм сначала определяет регионы отдельных изображений по общей фотографии, после чего подаёт увеличенные фрагменты изображений требуемых деталей в 6D Pose Estimation сеть с помощью Dynamic Zoom-In (DZI). На AMD Ryzen 7 5800 и NVIDIA RTX 3090 задача определения позиций по изображению 640 × 480 заняла 45 мс для восьми объектов, включая 21 мс для обнаружения.

Для каждого объекта генерировались 36 поз захвата (grasp candidates), после чего, используя заранее известные положения объектов, определялись столкновения между захватом и сборкой с помощью Flexible Collision Library (FCL), чтобы исключить неосуществимые позиции захвата. Чтобы облегчить перенос детали в подсборку применялся метод т.н. 6D pose Transformation - деталь перехватывалась таким образом, чтобы снизить погрешность при сборке. Для обеспечения однозначности позиционирования детали в захвате применялась калибровка захватом по трём осям. (см. картинку). Без калибровки даже на примитивных сборках 13 из 15 действий заканчивались неудачей. С калибровкой средний показатель успешного завершения шага сборки составил около 86.7%. Экспериментальные результаты показали, что система способна надежно собирать простые блоки с допусками в 1 мм.

#assembly #cv #blender