📚
ROS Robotics Projects
  • Титульная страница
  • Термины
  • Глава 1. Начало работы с разработкой приложений ROS Robotics
    • Подглава 1.1 Начало работы с ROS
      • Подглава 1.1.1 Дистрибутивы ROS
      • Подглава 1.1.2 Поддерживаемые операционные системы
      • Подглава 1.1.3 Роботы и датчики, поддерживаемые ROS
      • Подглава 1.1.4 Почему ROS?
    • Подглава 1.2 Основы ROS
      • Подглава 1.2.1 Уровень файловой системы
      • Подглава 1.2.2 Уровень графов вычислений
      • Подглава 1.2.3 Уровень сообщества ROS
      • Подглава 1.2.4 Общение в ROS
    • Подглава 1.3 Клиентские библиотеки ROS
    • Подглава 1.4 Инструменты ROS
      • Подглава 1.4.1 Rviz (Визуализатор ROS)
      • Подглава 1.4.2 rqt_plot
      • Подглава 1.4.3 rqt_graph
    • Подглава 1.5 Симуляторы ROS
    • Подглава 1.6 Установка ROS kinetic на Ubuntu 16.04 LTS
      • Подглава 1.6.1 Начало работы с установкой
        • Подглава 1.6.1.1 Настройка репозиториев Ubuntu
        • Подглава 1.6.1.2 Настройка source.list
        • Подглава 1.6.1.3 Настройка ключей
        • Подглава 1.6.1.4 Установка ROS
        • Подглава 1.6.1.5 Инициализация rosdep
        • Подглава 1.6.1.6 Настройка среды ROS
        • Подглава 1.6.1.7 Получение rosinstall
    • Подглава 1.7 Настройка ROS на VirtualBox
    • Подглава 1.8 Настройка рабочего пространства ROS
    • Подглава 1.9 Возможности для ROS в отраслях и исследованиях
    • Подглава 1.10 Вопросы
    • Подглава 1.11 Заключение
  • Глава 2. Обнаружение и отслеживание лиц с использованием ROS, OpenCV и Dynamixel Servos
    • Подглава 2.1 Обзор проекта
    • Подглава 2.2 Аппаратные и программные предпосылки
      • Подглава 2.2.1 Установка зависимых пакетов ROS
        • Подглава 2.2.1.1 Установка пакета usb_cam ROS
          • Подглава 2.2.1.1.1 Создание рабочей области ROS для зависимостей
    • Подглава 2.3 Взаимодействие Dynamixel с ROS
      • Подглава 2.3.1 Установка пакетов ROS dynamicixel_motor
    • Подглава 2.4 Создание ROS-пакетов для трекера лица
      • Подглава 2.4.1 Интерфейс между ROS и OpenCV
    • Подглава 2.5 Работа с ROS-пакетом для отслеживания лиц
      • Подглава 2.5.1 Понимание кода трекера лица
      • Подглава 2.5.2 Понимание CMakeLists.txt
      • Подглава 2.5.3 Файл track.yaml
      • Подглава 2.5.4 Файлы запуска
      • Подглава 2.5.5 Запуск узла отслеживания лица
      • Подглава 2.5.6Пакет face_tracker_control
        • Подглава 2.5.6.1 Файл запуска start_dynamixel
        • Подглава 2.5.6.2 Файл запуска контроллера панорамирования
      • Подглава 2.5.7 Файл конфигурации контроллера панорамирования
      • Подглава 2.5.8 Файл конфигурации параметров сервосистемы
      • Подглава 2.5.9 Узел контроллера трекера лица
      • Подглава 2.5.10 Создание CMakeLists.txt
      • Подглава 2.5.11 Тестирование пакета управления трекером лица
      • Подглава 2.5.12 Соединение всех узлов вместе
      • Подглава 2.5.13 Закрепление кронштейна и настройка цепи
      • Подглава 2.5.14 Финальный запуск
    • Подглава 2.6 Вопросы
    • Подглава 2.7 Заключение
Powered by GitBook
On this page

Was this helpful?

  1. Глава 2. Обнаружение и отслеживание лиц с использованием ROS, OpenCV и Dynamixel Servos
  2. Подглава 2.4 Создание ROS-пакетов для трекера лица

Подглава 2.4.1 Интерфейс между ROS и OpenCV

PreviousПодглава 2.4 Создание ROS-пакетов для трекера лицаNextПодглава 2.5 Работа с ROS-пакетом для отслеживания лиц

Last updated 5 years ago

Was this helpful?

Open Source Computer Vision (OpenCV) - это библиотека, в которой есть API для выполнения приложений компьютерного зрения. Проект был начат в Intel Russia, а позже его поддержали Willow Garage и Itseez. В 2016 году Itseez была приобретена Intel.

OpenCV website:

Willow Garage:

Itseez:

OpenCV - это кроссплатформенная библиотека, которая поддерживает большинство операционных систем. Теперь у него также есть лицензия BSD с открытым исходным кодом, поэтому мы можем использовать ее для исследовательских и коммерческих приложений. Версия OpenCV, взаимодействующая с ROS Kinetic, - 3.1. В версиях 3.x OpenCV есть несколько изменений в API по сравнению с версиями 2.x.

Библиотека OpenCV интегрирована в ROS через пакет под названием vision_opencv, Этот пакет уже был установлен, когда мы установили ros-kinetic-desktop-full в главе 1, Начало работы с разработкой приложений ROS Robotics.

vision_opencv В metapackage есть два пакета:

· cv_bridge: Этот пакет отвечает за преобразование типа данных изображения OpenCV (cv::Mat) в ROS Образ Сообщения (sensor_msgs/Image.msg).

· image_geometry: Этот пакет помогает нам интерпретировать изображения геометрически. Этот узел поможет в обработке, такой как калибровка камеры и выпрямление изображения.

Из этих двух пакетов мы в основном имеем дело с cv_bridge. Используя cv_bridge, узел отслеживания лица может конвертировать сообщения ROS Image из usb_cam в эквивалент OpenCV, cv::Mat. После преобразования в cv::Mat мы можем использовать API OpenCV для обработки изображения с камеры.

Вот блок-схема, которая показывает роль cv_bridge в этом проекте:

Здесь cv_bridge работает между узлом usb_cam и узлом отслеживания лица. Мы узнаем больше об узле отслеживания лица в следующем разделе. До этого будет хорошо, если вы получите представление о его работе.

Это все об OpenCV и интерфейсе ROS. В следующем разделе мы будем работать с первым пакетом этого проекта: face_tracker_pkg.

Полный исходный код этого проекта может быть клонирован из следующего репозитория Git. Следующая команда клонирует репозиторий проекта:

$ git clone https://github.com/qboticslabs/ros_robotics_projects

Еще один пакет, который мы используем для передачи сообщений ROS Image между двумя узлами ROS, это image_transport (). Этот пакет всегда используется для подписки и публикации данных изображений в ROS. Пакет может помочь нам транспортировать изображения с низкой пропускной способностью, применяя методы сжатия. Этот пакет также устанавливается вместе с полной установкой ROS на рабочем столе.

http://wiki.ros.org/image_transport
h
t
t
p
://o
p
e
n
c
v
.
o
r
g
/
h
t
t
p
://w
w
w
.
w
i
l
l
o
w
g
a
r
a
g
e
.
c
o
m
/
http://itseez.com
Рисунок 14: роль cv_bridge