forked from ros-visualization/rviz
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
dkaznacheev edited this page Jun 12, 2017
·
7 revisions
Проект №1: rviz::MessageFilterDisplay has a hardcoded subscriber queue size #1035
Ссылка на pull request
Избавиться от hardcoded параметра в классе rviz::MessageFilterDisplay.
Класс MessageFilterDisplay- базовый класс для всех плагинов визуализации робота, датчиков, системы координат и окружения в программе rviz.
В его функционал входит сбор данных с помощью rviz::Subscriber и хранение их в очереди для последующей обработки.
Изначально размер очереди был строго задан числом 10 в коде, поставленная задача — параметризовать его.
- Разобраться в устройстве классов tf::MessageFilter и rviz::Subscriber — классов, задействующих hardcoded параметр размера очереди.
- Использовать стандартную систему хранения и передачи параметров, принятую в проекте, чтобы решить первоначальную проблему.
- Проверить наследников класса MessageFilterDisplay (то есть каждый плагин визуализации), и исправить проблемы с совместимостью.
- Добавить свои тесты, проверяющие корректное задание параметра, в существующий набор тестов для rviz.
- В файле src/rviz/message_filter_display.h создан параметр queue_size_property_ вида IntProperty, и добавлена функция, вызываемая при обновлении размера очереди. Также параметр, который был задан вручную, теперь запрашивает метод getInt() у объекта-параметра.
- В файле src/rviz/default_plugin/effort_display.h также добавлена поддержка параметра размера очереди.
- В директории src/test добавлен набор тестов queue_size_test.cpp
- В src/test/CMakeList.txt добавлены тесты queue_size_test
- Установить ROS из исходников на сайте ros.org (инструкция)
- В созданном workspace заменить содержимое папки src/rviz/src/ на содержимое этого репозитория (в формате pull request подразумевается, что файлы из этого репозитория уже включены в проект)
- Собрать проект:
./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release - Настроить workspace:
source ~/%WORKSPACE%/install_isolated/setup.bash
- Отдельно собрать rviz:
catkin_make -DCATKIN_WHITELIST_PACKAGES="rviz" - Запустить тесты:
catkin_make run_tests_rviz
За тестирование длины очереди отвечает пакет тестов QueueSizeProperty.
Результаты тестов можно найти:
- В логах тестирования в консоли
- В файле
~/%WORKSPACE%/build/test_results/rviz/gtest-queue_size_test.xml