Подглава 12.11.3 Отслеживание цветных объектов
Мы можем использовать тот же самый узел head_tracker.py для отслеживания цветных объектов или произвольных объектов, выбранных с помощью мыши. Скрипт head tracker просто следует координатам, опубликованным в топике /roi, поэтому любой узел, публикующий сообщения RegionOfInterest в этом топике, может управлять движением камеры.
Чтобы отслеживать цветной объект, просто запустите узел CamShift, который мы разработали ранее, вместо узла face tracker, используемого в первом примере отслеживания головы.
Полная последовательность действий будет выглядеть следующим образом. Пропустите все файлы запуска, которые у вас уже запущены. Но Ctrl-C из запуска face tracker, если он все еще работает.
Сначала убедитесь, что драйвер камеры включен и работает.
Для Microsoft Kinect:
$ roslaunch freenect_launch freenect-registered-xyzrgb.launch
Для камер Asus Xtion, Xtion Pro или Primesense 1.08/1.09:
$ roslaunch openni2_launch openni2.launch depth_registration:=true
или если вы используете веб-камеру:
$ roslaunch rbx1_vision usb_cam.launch video_device:=/dev/video0
(Смените видеоустройство, если это необходимо.)
Теперь запустите launch-файл сервопривода, если он еще не запущен:
$ roslaunch rbx1_dynamixels dynamixels.launch
Затем запустите узел CamShift:
$ roslaunch rbx1_vision camshift.launch
Когда появится окно видео CamShift, выберите целевую область с помощью мыши и отрегулируйте ползунок hue/value по мере необходимости, чтобы выделить целевую область из фона. Когда вы закончите, поднимите узел отслеживания головы(head tracker):
$ roslaunch rbx1_dynamixels head_tracker.launch
Теперь сервоприводы должны перемещать камеру, чтобы отслеживать цветную цель.
Примечание: смотрите предыдущий раздел, касающийся разрешения камеры. В частности, для отслеживания цвета обычно достаточно использовать разрешение 320x240 (QVGA), что обеспечит более плавное отслеживание и меньшую нагрузку на ваш процессор.
Last updated