Подглава 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