Foxglove vs RViz
Проект Foxglove динамично развивается, помогает развивать ROS-экосистему, заставляет обращать на себя внимание со стороны разработчиков и позиционируется как альтернатива RViz. Оба проекта имеют много общего - открытый исходный код, визуализируют трёхмерные данные о сцене, достаточно легко конфигурируются и расширяются с помощью системы плагинов - rviz с помощью компилируемых плагинов, Foxglove с помощью HTML/JS модулей. Но есть и отличия. Давайте попробуем разобраться в том стоит ли пересаживаться с Rviz на Foxglove и обеспечит ли он существенные преимущества вашему проекту. Для этого разберём преимущества Foxglove относительно RViz из одноимённой статьи на сайте разработчика.
Тезис №1. Rviz изначально спроектирован для визуализации трёхмерных изображений и маркеров, поэтому не рассматривает визуализацию того, для чего в экосистеме ROS есть соответствующие пакеты - rqt-multiplot, rqt-runtime_monitor и rqt-graph. Foxglove же даёт возможность комбинировать данные представления (3D, графики, изображения и т.д.) в рамках единого UI layout.
> Преимущество одного окна против много-оконности. Многие линуксоиды (подавляющее большинство разработчиков ROS) могли бы записать это в недостаток - с помощью тайлинга можно распределить окна по дисплею так, как им этого хочется, не прибегая к настройке Layout. Однако, Foxglove предоставляет возможность сохранять Layout и управлять ими, что, однозначно, обеспечивает дополнительное удобство.
Тезис №2. Rviz не поддерживает по умолчанию проигрывание rosbag-файлов. Для просмотра требуются отдельные утилиты (rosbag, ros2bag).
> Проигрывание файлов bag возможно в RViz, но при этом нужно пользоваться утилитой командной строки в двух терминалах - в одном запускать RViz, в другом - rosbag play.
Тезис №3. Кроссплатформенность. Сейчас RViz требует ROS для установки и на тех системах, где ROS не установлен, Вы не сможете запустить RViz. Foxglove построен на базе web-технологий, что позволяет запускать его как в браузере, так и в виде desktop-приложения, построенного на базе Electron.
> Бесспорно, веб-технологии обеспечивают изоляцию от аппаратной платформы ценой дополнительных ресурсов компьютера.
Тезис №4. Коллаборация. Foxglove предоставляет инструменты для настройки многопользовательского доступа к данным визуализации.
> Де-факто в ROS2 этот функционал реализуется с помощью разграничения доступа к машине. Если Вы можете настроить виртуальную сеть (VPN) с удалённой машиной или роботом, то DDS-трафик становится доступен всем, кто к этой сети подключён. Само представление информации остаётся на клиентской стороне.
Если подытожить, то все представленные преимущества над RViz не имеют принципиального характера. Так или иначе, все они могут быть обеспечены имеющимися в экосистеме инструментами. Foxglove даёт дополнительные удобства с точки зрения современного внешнего вида, возможностей кастомизации UI, но нужно быть готовыми к тому, что могу отсутствовать функции, к которым все привыкли. Например, для наших специфических нужд текущего функционала Foxglove не хватило - их 3D Viewer не отрисовывает по умолчанию URDF (визуализирует состояние манипулятора с помощью дополнительных маркеров), а текущие пресеты не позволяют из коробки настроить представление и требуют доработки расширений.
Оба проекта активно поддерживаются, а итоговое решение по выбору средства визуализации может быть обусловлено и нефункциональными факторами - такими как наличие веб-разработчиков в робо-проекте, распределённость команды и предпочтения между Qt и веб-технологиями.
#foxglove #rviz #ros
Проект Foxglove динамично развивается, помогает развивать ROS-экосистему, заставляет обращать на себя внимание со стороны разработчиков и позиционируется как альтернатива RViz. Оба проекта имеют много общего - открытый исходный код, визуализируют трёхмерные данные о сцене, достаточно легко конфигурируются и расширяются с помощью системы плагинов - rviz с помощью компилируемых плагинов, Foxglove с помощью HTML/JS модулей. Но есть и отличия. Давайте попробуем разобраться в том стоит ли пересаживаться с Rviz на Foxglove и обеспечит ли он существенные преимущества вашему проекту. Для этого разберём преимущества Foxglove относительно RViz из одноимённой статьи на сайте разработчика.
Тезис №1. Rviz изначально спроектирован для визуализации трёхмерных изображений и маркеров, поэтому не рассматривает визуализацию того, для чего в экосистеме ROS есть соответствующие пакеты - rqt-multiplot, rqt-runtime_monitor и rqt-graph. Foxglove же даёт возможность комбинировать данные представления (3D, графики, изображения и т.д.) в рамках единого UI layout.
> Преимущество одного окна против много-оконности. Многие линуксоиды (подавляющее большинство разработчиков ROS) могли бы записать это в недостаток - с помощью тайлинга можно распределить окна по дисплею так, как им этого хочется, не прибегая к настройке Layout. Однако, Foxglove предоставляет возможность сохранять Layout и управлять ими, что, однозначно, обеспечивает дополнительное удобство.
Тезис №2. Rviz не поддерживает по умолчанию проигрывание rosbag-файлов. Для просмотра требуются отдельные утилиты (rosbag, ros2bag).
> Проигрывание файлов bag возможно в RViz, но при этом нужно пользоваться утилитой командной строки в двух терминалах - в одном запускать RViz, в другом - rosbag play.
Тезис №3. Кроссплатформенность. Сейчас RViz требует ROS для установки и на тех системах, где ROS не установлен, Вы не сможете запустить RViz. Foxglove построен на базе web-технологий, что позволяет запускать его как в браузере, так и в виде desktop-приложения, построенного на базе Electron.
> Бесспорно, веб-технологии обеспечивают изоляцию от аппаратной платформы ценой дополнительных ресурсов компьютера.
Тезис №4. Коллаборация. Foxglove предоставляет инструменты для настройки многопользовательского доступа к данным визуализации.
> Де-факто в ROS2 этот функционал реализуется с помощью разграничения доступа к машине. Если Вы можете настроить виртуальную сеть (VPN) с удалённой машиной или роботом, то DDS-трафик становится доступен всем, кто к этой сети подключён. Само представление информации остаётся на клиентской стороне.
Если подытожить, то все представленные преимущества над RViz не имеют принципиального характера. Так или иначе, все они могут быть обеспечены имеющимися в экосистеме инструментами. Foxglove даёт дополнительные удобства с точки зрения современного внешнего вида, возможностей кастомизации UI, но нужно быть готовыми к тому, что могу отсутствовать функции, к которым все привыкли. Например, для наших специфических нужд текущего функционала Foxglove не хватило - их 3D Viewer не отрисовывает по умолчанию URDF (визуализирует состояние манипулятора с помощью дополнительных маркеров), а текущие пресеты не позволяют из коробки настроить представление и требуют доработки расширений.
Оба проекта активно поддерживаются, а итоговое решение по выбору средства визуализации может быть обусловлено и нефункциональными факторами - такими как наличие веб-разработчиков в робо-проекте, распределённость команды и предпочтения между Qt и веб-технологиями.
#foxglove #rviz #ros
foxglove.dev
Foxglove vs. RViz
How Foxglove compares to the original ROS visualization tool.
Быстрые плагины RViz из yaml
https://github.com/Juancams/rviz_publisher
При отладке ROS-проектов часто приходится публиковать тестовые сообщения для проверки логики. Обычно для этой задачи используется rqt_publisher, но в случаях когда проект большой можно запутаться при переключениях между инструментом визуализации и многочисленными терминалами. RViz Publisher реализует идею объединения всех GUI в рамках "одного окна" - отправляем сообщение и смотрим сразу результат. Он позволяет быстро сформировать интерфейсы для отладочных сообщений с помощью rosidl_defaults_generator (тот же пакет, что используется для создания кастомных сообщений в ROS). Для запуска нужно описать желаемые кнопки и сообщения в YAML-файле и добавить путь к нему в CMakeLists.txt.
Пример конфига:
В планах разработчика добавить слайдеры для динамического изменения значений, поддержку ROS-сервисов и экшенов, реализовать генерацию комбинированных интерфейсов (например, кнопка + отображение топика).
#rviz #ros #gui
https://github.com/Juancams/rviz_publisher
При отладке ROS-проектов часто приходится публиковать тестовые сообщения для проверки логики. Обычно для этой задачи используется rqt_publisher, но в случаях когда проект большой можно запутаться при переключениях между инструментом визуализации и многочисленными терминалами. RViz Publisher реализует идею объединения всех GUI в рамках "одного окна" - отправляем сообщение и смотрим сразу результат. Он позволяет быстро сформировать интерфейсы для отладочных сообщений с помощью rosidl_defaults_generator (тот же пакет, что используется для создания кастомных сообщений в ROS). Для запуска нужно описать желаемые кнопки и сообщения в YAML-файле и добавить путь к нему в CMakeLists.txt.
Пример конфига:
panel:
- name: "Hello"
topic: "/example"
topic_type: "std_msgs/msg/String"
message:
data: "Hello, world!"
- name: "Forward"
topic: "/cmd_vel"
topic_type: "geometry_msgs/msg/Twist"
message:
linear:
x: 0.5
- name: "Move"
topic: "/cmd_vel"
topic_type: "geometry_msgs/msg/Twist"
message:
linear:
x: 0.5
y: 0.0
angular:
z: 0.5
В планах разработчика добавить слайдеры для динамического изменения значений, поддержку ROS-сервисов и экшенов, реализовать генерацию комбинированных интерфейсов (например, кнопка + отображение топика).
#rviz #ros #gui
GitHub
GitHub - Juancams/rviz_publisher: Tool to generate RVIZ plugins using a yaml
Tool to generate RVIZ plugins using a yaml. Contribute to Juancams/rviz_publisher development by creating an account on GitHub.
👍9
TAMSViz - RViz на максималках
Пока многие пытаются внедрить в ROS веб-технологии и Rust, эти ребята выжимают максимум из имеющихся в экосистеме инструментов визуализации.
Проект TAMSViz дополняет всем знакомый RViz новыми фичами:
По визуализации: высококачественный рендеринг с тенями, сглаживанием, создание интерактивных маркеров без написания кода, визуализация траекторий, исправлением нормалей мешей и т.д.
Для работы с rosbag: загрузка rosbag-файлов, их визуализация, аннотирование; возможность перемотки с несколькими TF-издателями без разрыва TF
А также: примитивы для работы с графиками, встроенная фильтрация сообщений, поддержка многопоточности, асинхронные загрузка сообщений и рендеринг.
Кликайте по ссылке на документацию, там много скриншотов.
https://tams-group.github.io/tamsviz/index.html
Проект не то чтобы активно разрабатываемый, но и не совсем мёртвый - последний коммит 8 месяцев назад. Поддерживается TAMS - департаментом информатики Университета Гамбурга.
#rviz #extention #ros
Пока многие пытаются внедрить в ROS веб-технологии и Rust, эти ребята выжимают максимум из имеющихся в экосистеме инструментов визуализации.
Проект TAMSViz дополняет всем знакомый RViz новыми фичами:
По визуализации: высококачественный рендеринг с тенями, сглаживанием, создание интерактивных маркеров без написания кода, визуализация траекторий, исправлением нормалей мешей и т.д.
Для работы с rosbag: загрузка rosbag-файлов, их визуализация, аннотирование; возможность перемотки с несколькими TF-издателями без разрыва TF
А также: примитивы для работы с графиками, встроенная фильтрация сообщений, поддержка многопоточности, асинхронные загрузка сообщений и рендеринг.
Кликайте по ссылке на документацию, там много скриншотов.
https://tams-group.github.io/tamsviz/index.html
Проект не то чтобы активно разрабатываемый, но и не совсем мёртвый - последний коммит 8 месяцев назад. Поддерживается TAMS - департаментом информатики Университета Гамбурга.
#rviz #extention #ros
GitHub
GitHub - TAMS-Group/tamsviz: Visualization and Annotation Tool for ROS
Visualization and Annotation Tool for ROS. Contribute to TAMS-Group/tamsviz development by creating an account on GitHub.
👍8