Comment on page
Работа с камерой
При включении робота автоматический стартует вещание видео необходимое для работы web интерфейса. Для этого используется
launch
файл camera_stream.launch
, который запускает ROS ноду mjpg_camera
Web интерфейс для просмотра видео и управления роботом доступен на URL
http://192.168.0.100:8080
где 192.168.0.100
IP вашего робота. Данный способ работы с камерой не создает ROS топика с данными камеры. Но его удобно использовать для работы с камерой в браузере, без дополнительных настроек.Если вам необходимо получить данные из камеры в ROS, то вам необходимо поменять запускаемый
launch
файл для работы с пакетом uvc_camera.
Для запуска ноды
uvc_camera
необходимо использовать файл camera_ros.launch
Две ноды не могут одновременно работать с камерой, поэтому необходимо переконфигурировать файл запуска
/etc/ros/turtlebro.d/turtlebro.launch
в части:<arg name="run_turtlebro_web" default="true"/>
<arg name="run_camera_ros" default="false"/>
Выключить веб интерфейс
run_turtlebro_web
и включить run_camera_ros
Пакет публикует сжатые данные
sensor_msgs/CompressedImage
в топик front_camera/compressed
Данный пакет работает с камерой через библиотеку
О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 функцией вида cap = cv2.VideoCapture(0)
Далее производить с видео все необходимые манипуляции, и после этого, при необходимости, публиковать видео в топики.
Пример программы на pytnon, которая, используя
opencv
, следит за цветным мячиком и управляет роботом: ball_tracking.py