Представляем: Пакет визуализаций Unity Robotics

Благодаря этому набору инструментов для визуализации и отладки внутреннего состояния робототехнических симуляторов Unity можно использовать как универсальный инструмент для симуляции и визуализации ROS.
Одна из проблем, с которой сталкиваются робототехники, - это необходимость понимать, что происходит в их системе. В сложной взаимосвязанной сети компонентов, когда что-то не работает, как выяснить, какая именно деталь вышла из строя? Компонент A генерирует плохие данные, или компонент B обрабатывает их неправильно? Очень важно иметь возможность визуализировать данные, перемещающиеся по системе.
Учитывая это, сегодня мы с радостью объявляем о следующем релизе от Unity Robotics: Robotics Visualizations Package - это новый пакет для отображения и настройки визуализации сообщений ROS.
Команда Unity Robotics усердно работает, выпустив несколько проектов с примерами робототехники, таких как Pick-and-Place и Object Pose Estimation. Совсем недавно мы выпустили пример Nav2-SLAM, демонстрирующий автономного робота, ориентирующегося в неизвестном пространстве и составляющего карту, смоделированную в Unity.
Пакет "Визуализации робототехники" развивает и поддерживает эти пакеты, предлагая библиотеку настраиваемых визуализаций для всех распространенных типов сообщений ROS: фигуры, позы, облака точек, изображения, датчики всех видов и многое другое. Он поддерживает дерево преобразований ROS и позволяет включать, отключать и настраивать визуализации для любой темы ROS во время выполнения.
Вот как просто использовать пакет визуализаций для робототехники, чтобы добавить визуализацию в существующий проект по робототехнике:
Импортируйте пакет Robotics Visualizations в Unity с помощью диспетчера пакетов.
Перетащите префаб DefaultVisualizationSuite в сцену Unity.
Нажмите Play, и вы увидите несколько новых кнопок в Heads-Up Display (HUD). Нажмите на кнопку "Темы", чтобы увидеть список всех тем, о которых знает ROS.
Нажмите на те темы, для которых вы хотите увидеть визуализации!

Трансформации представляют собой отношения между координатными рамками в роботизированной системе. Все ваши данные генерируются в разных системах координат. Данные лидара находятся в кадре лидара, данные камеры - в кадре камеры, а данные карты - в кадре карты. Чтобы разобраться во всех этих разрозненных источниках данных, нам необходимо иметь общую систему координат. Преобразования помогают нам в этом, отслеживая отношения между этими кадрами. Отладка роботов без включения датчиков и алгоритмов в этот 3D-контекст практически невозможна. С помощью пакета визуализаций для робототехники вы можете просматривать данные в реальном времени вместе со сценами и активами Unity и плавно переключаться между симуляцией и реальными данными.

Картографирование роботов - дело непростое. Карты могут разрушаться, роботы - дрейфовать. Правильно ли настроена ваша одометрия или карта просто разорвалась пополам из-за того, что алгоритм SLAM, основанный на оптимизации, сломался? Пакет визуализаций Unity Robotics позволяет визуализировать сетку занятости, трансформации, локализацию и облако точек лидара поверх друг друга, что дает возможность наглядно увидеть, где алгоритмы дают сбой.
Пакет визуализаций для робототехники поддерживает большинство распространенных типов сообщений ROS, включая трансформации, сетки занятости, 3D-облака точек, маркеры, лазерные сканы, изображения (jpeg, png и без сжатия) и многое другое. И имеет возможности для настройки, если у вас есть уникальный тип данных, который вам нужно просмотреть!

Пакет визуализаций Robotics также поддерживает визуализации, созданные пользователем: он включает мощный набор инструментов для рисования всего, что вам нужно, и/или для создания и настройки встроенных визуализаций. Вот некоторые основные моменты:
Drawing3d - это простой в использовании класс для рисования произвольных текстурированных/цветных линий, фигур, сеток и меток в 3D-пространстве. Например, с его помощью вы можете нарисовать призрак объекта в том месте, где вы его предсказываете, линию, показывающую траекторию, по которой он будет двигаться, и еще несколько линий вокруг него, чтобы обозначить полосы погрешностей.
PointCloudDrawing - это оптимизированный для GPU рендерер облака точек, который может отображать до 10 миллионов точек, каждая из которых имеет свой размер и цвет, с интерактивной скоростью. С его помощью можно отображать объемные данные, такие как 3D-сканы или изображения глубины.
Отображайте исторические тенденции данных, 3D-траектории движения и многое другое с помощью шаблона HistoryDrawingVisualizer , который ведет историю сообщений, отправленных в теме, с настраиваемой длиной. Вы можете анализировать и отображать эту историю по своему усмотрению.
И конечно, все это подкреплено мощью и простотой использования движка Unity Engine, предлагающего такие возможности, как поддержка AR и VR, пользовательские шейдеры с Unity Shader Graph, вычислительные шейдеры, облачное моделирование и многое другое.
Мы с нетерпением ждем, что вы сделаете с пакетом визуализаций "Робототехника"!
Чтобы начать работу с пакетом визуализаций робототехники, ознакомьтесь с новым расширением к учебнику Nav2-SLAM, демонстрирующим, как использовать новый пакет.

Наш пакет визуализации робототехники - это лишь часть нашей растущей экосистемы пакетов и функций для робототехники в Unity. Другие проекты по робототехнике можно найти на сайте Unity Robotics Hub на GitHub.
Обязательно заходите к нам на Форум робототехники или пишите нам на unity-robotics@unity3d.com со своими отзывами и предложениями!
