Подглава 12.11.4 Отслеживание выбранных вручную целей

Напомним, что узел lk_tracker.py позволяет нам выбрать объект с помощью мыши, а затем скрипт будет использовать ключевые точки и оптический поток для отслеживания объекта. Поскольку координаты отслеживаемого объекта публикуются в топике /roi, мы можем использовать узел head tracker точно так же, как мы делали это с лицами и цветами.

Эта демонстрация работает лучше всего, если целевой объект имеет сильно текстурированную поверхность с надежными ключевыми точками, такими как обложка книги или другой графический объект. Это также помогает, если фон довольно однородный, например стена.

Полная последовательность действий будет выглядеть следующим образом. Пропустите все файлы запуска, которые у вас уже запущены. Но используйте Ctrl-C, чтобы прервать работу либо CamShift, либо 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

Включите сервоприводы:

$ roslaunch rbx1_dynamixels dynamixels.launch

Запустите узел lk_tracker.py:

$ roslaunch rbx1_vision lk_tracker.launch

Когда появится окно видео, выберите целевой объект с помощью мыши, а затем запустите узел head tracker:

$ roslaunch rbx1_dynamixels head_tracker.launch

Теперь сервоприводы должны перемещать камеру, чтобы отслеживать выбранную цель. Там будет ограничение на то, как быстро вы можете переместить цель, иначе оптический трекер потока не будет успевать. Кроме того, вы можете повторно выбрать целевую область в любое время с помощью мыши.

Last updated