Запуск публикации изображений с камеры с помощью пакета ROS
Last updated
Was this helpful?
Last updated
Was this helpful?
Запуск пакетов ROS из командной строки не удобен по ряду причин: командную строку долго набирать с клавиатуры, в ней неудобно настраивать параметры, командная строка не запускается сама при старте системы. Поэтому далее мы выполним создание собственного учебного пакета ROS zuza, в рамках которого будем запускать автоматически публикацию изображений с камеры, а также вести дальнейшие разработки для создания системы автономной навигации.
ROS пакет создаётся с помощью системы catkin – официальной системы компиляции/сборки пакетов ROS (на момент написания учебного пособия). В catkin используются макросы cmake и скрипты Python для реализации дополнительного функционала поверх системы cmake ( ). Работа catkin похожа на cmake, но в catkin добавлен автоматический поиск пакетов и возможность одновременной сборки нескольких взаимосвязанных проектов. Подробно концепция системы сборки catkin описана на странице .
Для создания catkin пакета нужно создать рабочую область в каталоге пользователя:
Команда catkin_make – инструмент для работы с рабочими областями catkin (англ. catkin workspaces). После первого выполнения она создаёт ссылку на файл CMakeLists.txt в каталоге src, а также создаёт каталоги ‘build’ и ‘devel’. Внутри каталога devel находятся несколько предустановочных скриптов, которые настраивают системные переменные для нашей рабочей области. Нужно запустить соответствующий установочный файл с помощью команды source:
Чтобы проверить правильность инициализации переменных окружения установочным скриптом, убедитесь, что переменная окружения ROS_PACKAGE_PATH включает в себя текущий каталог, в котором Вы находитесь:
Далее мы переходим к созданию ROS пакета. Каждый catkin пакет должен соответствовать нескольким условиям:
Содержать в себе файл с описанием пакета package.xml соответствующего формата;
Содержать в себе файл CMakeLists.txt, который будет использовать система сборки catkin;
Каждый пакет должен храниться в своём собственном каталоге.
Создание пакета производится с помощью команд:
Данные команды создадут и соберут пустой catkin пакет в указанном каталоге (в нашем примере – catkin_ws).
Для того чтобы пакеты в catkin_ws были доступны сразу при запуске сеанса, нужно добавить строчку в файл .bashrc:
Создадим launch-файл zuza.launch для старта пакета cv_camera в каталоге ~/catkin_ws/src/zuza/launch , следующего содержания:
Запуск нашего пакета на выполнение осуществляется с помощью команды
Проверить работу пакета можно с помощью утилит командной строки (rostopic list и прочих), a также с помощью программы image_view:
После успешного запуска работы камеры через ROS можно приступать к калибровке камеры.
Данный файл описывает параметры запуска модулей nodelet ( ) и cv_camera () в режиме нодлета с указанными параметрами. Пакет nodelet является механизмом запуска разных алгоритмов внутри одного процесса с передачей массивов данных по ссылке (без копирования) между этими алгоритмами.
Подробно про создание и запуск ROS пакетов можно прочитать по ссылке: