Работа с камерой
При включении робота автоматический стартует вещание видео необходимое для работы web интерфейса. Для этого используется launch
файл camera_stream.launch
, который запускает ROS ноду mjpg_camera
Web интерфейс для просмотра видео и управления роботом доступен на URL http://192.168.0.100:8080
где 192.168.0.100
IP вашего робота. Данный способ работы с камерой не создает ROS топика с данными камеры. Но его удобно использовать для работы с камерой в браузере, без дополнительных настроек.
Работа с камерой через ROS
Если вам необходимо получить данные из камеры в ROS, то вам необходимо поменять запускаемый launch
файл для работы с пакетом uvc_camera.
Для запуска ноды uvc_camera
необходимо использовать файл camera_ros.launch
Две ноды не могут одновременно работать с камерой, поэтому необходимо переконфигурировать файл запуска /etc/ros/turtlebro.d/turtlebro.launch
в части:
Выключить веб интерфейс run_turtlebro_web
и включить run_camera_ros
Пакет uvc_camera
Пакет публикует сжатые данные sensor_msgs/CompressedImage
в топик front_camera/compressed
Официальная документация пакета http://wiki.ros.org/uvc_camera
Пакет cv_camera
Данный пакет работает с камерой через библиотеку ОpenCV
, может работать как в режиме node
, так и вnodelet
Конфигурация в файле camera_cv.launch
данные в формате sensor_msgs/Image
в топик front_camera/image_raw
Данные передаются в RAW формате (без компрессии), что удобно для дальнейшей программной обработки.
Конвертация из sensor_msgs/Image
в формат OpenCV возможна через библиотеку http://wiki.ros.org/cv_bridge
Работа с камерой через OpenCV
На роботе установлена библиотека OpenCV
, поэтому с камерой можно работать напрямую, подключившись к камере "стандартной" для opencv функцией вида cap = cv2.VideoCapture(0)
Далее производить с видео все необходимые манипуляции, и после этого, при необходимости, публиковать видео в топики.
Пример программы на pytnon, которая, используя opencv
, следит за цветным мячиком и управляет роботом: ball_tracking.py
Last updated