📚
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. Глава 1. Начало работы с разработкой приложений ROS Robotics
  2. Подглава 1.2 Основы ROS

Подглава 1.2.4 Общение в ROS

PreviousПодглава 1.2.3 Уровень сообщества ROSNextПодглава 1.3 Клиентские библиотеки ROS

Last updated 5 years ago

Was this helpful?

Давайте посмотрим, как два узла взаимодействуют друг с другом, используя topic ROS. Следующая диаграмма показывает, как это происходит:

Как видите, есть два узла, называемые говорящим(talker) и слушающим(listener). Узел говорящего публикует строковое сообщение с именем Hello World в topic /talker, а узел слушателя подписывается на этот topic. Давайте посмотрим, что происходит на каждом этапе, отмеченным (1), (2) и (3):

  1. Прежде чем запускать какие-либо узлы в ROS, мы должны запустить ROS Master. После того, как он был запущен, он будет ждать узлов. Когда узел говорящего (издатель) начинает работать, он сначала подключается к мастеру ROS и обменивается подробностями topicпубликации с мастером. Это включает в себя имя topic, тип сообщения и URI узла публикации. URI мастера является глобальным, и к нему могут подключаться все узлы. Мастер ведет таблицы издателя, связанные с ним. При изменении данных издателя таблица обновляется автоматически.

  2. Когда мы запускаем узел слушателя (подписчик), он подключается к мастеру и обменивается сведениями об узле, такими как topic, на который планируется подписаться, тип ее сообщения и URI узла. Мастер также ведет таблицу подписчиков, аналогичную издателю.

  3. Когда есть подписчик и издатель для одной и того же topic, главный узел будет обмениваться URI издателя с подписчиком. Это поможет обоим узлам соединяться друг с другом и обмениваться данными. После того, как они соединились друг с другом, у мастера нет роли. Данные не проходят через мастер; вместо этого узлы взаимосвязаны и обмениваются сообщениями.

Рисунок 9: Связь между узлами ROS с использованием тем