Визуализация в RVIZ

Когда rviz запускается в первый раз – на экране отображается пустое окно:

Большой чёрный квадрат – это 3D – вид сцены (пустой, поскольку ещё пока ничего не видим). Слева – список дисплеев Displays, на котором отображаются все настроенные дисплеи. В начальный момент на нём отображаются только глобальные настройки.

Дисплеи

Дисплей в rviz – это нечто, имеющее отображение в 3D – мире и имеющее опции настройки. Например: облако точек, позиция робота, и т.д. Добавление нового дисплея – кнопка Add на панели внизу:

Появится окно добавления дисплея:

В списке вверху перечислены типы дисплеев. Тип дисплея определяет, какой тип данных дисплей визуализирует. В текстовом окне приводится описание выбранного типа дисплея. Внизу следует задать наименование дисплея. Например, если у Вашего робота два лазерных сканера – вы можете создать два дисплея типа «Laser Scan» и назвать их «Лазер База» и «Лазер Голова». У каждого дисплея есть собственные параметры, например:

У каждого дисплея также отображается статус, чтобы пользователь знал, всё ли с ним в порядке. Есть 4 варианта статуса: ОК, Warning (предупреждение), Error (ошибка) или Disabled (выключен). Статус отображается в названии дисплея в виде цвета фона, а также в строке Status в параметрах дисплея:

Перемещение дисплеев выше/ниже реализовано с помощью механизма Drag’n’Drop указателем мыши. Встроенные типы дисплеев:

Axes

Effort

Camera

Различные конфигурации дисплеев часто полезны для разных задач визуализации. Поэтому rviz позволяет загружать и сохранять различные конфигурации. Конфигурация содержит: дисплеи + их параметры, параметры инструментов, тип камеры + начальную точку зрения. Недавно использованные конфигурации отображаются в меню Recent Configs:

Для просмотра 3D сцены доступны несколько типов камер, по мере развития rviz добавляются новые типы:

Тип камеры определяет как способы управления камерой, так и разные типы проекции (ортографический, перспективный и т.д.) Орбитальная камера (Orbital Camera) всегда вращается вокруг точки фокуса, всё время смотря в эту точку. Точка фокуса отображается в виде маленького диска, когда вы перемещаете камеру:

Управление: левая кнопка мыши – вращение камеры вокруг точки фокуса, средняя кнопка – перемещение фокальной точки, правая кнопка или колёсико мышки – приближение к/ удаление от фокальной точки.

Камера от первого лица (FPS First Person Camera) – представление сцены от лица зрителя. Управление: левая кнопка мыши – вращение камеры, средняя кнопка – перемещение камеры, правая кнопка или колёсико мышки – перемещение зрителя вперёд/назад.

Ортографическая камера (Top-down Orthographic) – всегда направлена вниз по оси Z и отображает ортографическую проекцию (т.е. объекты по мере удаления от камеры не становятся больше/меньше). Управление: левая кнопка мыши – вращение вокруг оси Z, средняя кнопка – перемещение камеры в плоскости XY, правая кнопка или колёсико мышки – увеличение/уменьшение изображения. XY Orbit – то же, что орбитальная камера, но точка фокуса ограничена плоскостью XY. Third Person Follower – камера сохраняет постоянный угол зрения относительно установленной системы координат. В отличие от XY Orbit камера вращается вместе с поворотом целевой системы координат. Панель Views (Виды) также позволяет сохранять несколько именованных видов и переключаться между ними. Вид состоит из целевой системы координат, типа и положения камеры. Вид может быть сохранён с помощью кнопки Save Current.

@page { size: 21cm 29.7cm; margin: 2cm } p { margin-bottom: 0.25cm; direction: ltr; line-height: 115%; text-align: left; orphans: 2; widows: 2; background: transparent } a:visited { color: #954f72; text-decoration: underline } a:link { color: #0000ff; text-decoration: underline }

Вид состоит из типа контроллера, конфигурации вида (положение, ориентация, и т.д.), целевой системы координат.

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

Системы координат

RVIZ использует пакет трансформации TF для перевода данных из исходной системы координат в глобальную систему. О двух системах координат визуализатора важно знать: Fixed Frame и Target frame.

Наиболее важная система координат – это Fixed Frame. Эта система координат соответствует системе координат «мир» робота. Обычно она называется «map», или «world». В случае протокола mavros этим параметрам соответствует «local_origin».

Если fixed frame по ошибке присвоен, например, базе робота, тогда все объекты о которых робот знает, появятся в визуализаторе в положении относительно робота, в тех положениях, в которых их обнаружили сенсоры. Для получения корректных результатов, fixed frame не должен перемещаться относительно реального мира. Если в настройках меняется fixed frame – все отображаемые данные будут очищены, а не трансформированы. Target frame – это целевая система координат для вида камеры. Например, если target frame – это карта местности map – мы увидим робота, двигающегося относительно карты. Если target frame – это база робота – на 3D сцене робот будет стоять на месте, а всё остальное будет двигаться относительно него. Также эти системы координат описаны в видео: https://www.youtube.com/watch?v=nD1Faww4m2c

В визуализаторе также реализован набор инструментов, доступных в соответствующей панели: движение камеры, выбор объектов на 3D сцене, задание цели движения, оценка положения в пространстве. Панель времени (Time) наиболее полезна при использовании симулятора: она позволяет отследить как много времени ROS затрачено относительно реального времени. Также она позволяет сбросить внутреннее время визуализатора – при этом сбрасываются все дисплеи и внутренний кэш модуля TF. Если не использовать симуляцию – эта панель скорее бесполезна и её можно закрыть, освободив место на экране.

RVIZ может отображать 3D стерео, если это поддерживает графический адаптер, монитор и очки. Установка стерео описана по ссылке http://wiki.ros.org/rviz/Tutorials/Rviz%20in%20Stereo

Также новые типы дисплеев могут быть подключены в rviz в виде внешних плагинов.

Last updated