📚
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.5 Работа с ROS-пакетом для отслеживания лиц

Подглава 2.5.2 Понимание CMakeLists.txt

По умолчанию файл CMakeLists.txt, созданный при создании пакета, должен быть отредактирован, чтобы скомпилировать предыдущий исходный код. Здесь CMakeLists.txt - файл, используемый для построения face_tracker_node.cpp класса.

В первых двух строках указывается минимальная версия cmake, необходимая для сборки этого пакета, а в следующей строке указывается имя пакета:

cmake_minimum_required(VERSION 2.8.3)
project(face_tracker_pkg)

Следующая строка ищет зависимые пакеты face_tracker_pkg и выдает ошибку, если она не найдена:

find_package(catkin REQUIRED COMPONENTS cv_bridge
image_transport roscpp
rospy sensor_msgs std_msgs
message_generation
)

Эта строка кода содержит зависимости системного уровня для сборки пакета:

find_package(Boost REQUIRED COMPONENTS system)

Как мы уже видели, мы используем пользовательское определение сообщения centroid.msg, которое содержит два поля: int32 x и int32 y. Чтобы создать и сгенерировать эквивалентные заголовки C ++, мы должны использовать следующие строки:

add_message_files( FILES centroid.msg )
## Генерирует добавленные сообщения и сервисы с любыми зависимостями, перечисленными здесь
generate_messages( DEPENDENCIES std_msgs )

Функция catkin_package() - это предоставляемый Catkin макрос CMake, необходимый для генерации PKG-config CMake файлов.

catkin_package (CATKIN_DEPENDS roscpp rospy std_msgs message_runtime )
include_directories ( $ {catkin_INCLUDE_DIRS} )

Здесь мы создаем исполняемый файл face_tracker_node и связываем его с библиотеками catkin и OpenCV:

add_executable(face_tracker_node src/face_tracker_node.cpp) target_link_libraries(face_tracker_node ${catkin_LIBRARIES} ${OpenCV_LIBRARIES} )
PreviousПодглава 2.5.1 Понимание кода трекера лицаNextПодглава 2.5.3 Файл track.yaml

Last updated 5 years ago

Was this helpful?