display_driver
Last updated
Last updated
Пакет display_driver позволяет взаимодействовать с физическим экраном головы: выводить на него картинки, видео, выполнять потоковый вывод "сырых" изображений и получать данные с тачскрина.
Доступные (протестированные) форматы для вывода:
Картинки: .jpg, .png
Видео: .mp4
Запуск пакета через CLI:
перед экспериментами отключите все запущенные пакеты. В частности, остановите , чтоб отключить пакеты, запущенные автоматичеси: sudo systemctl stop robohead.service
Для вывода картинки/видео из файла воспользуйтесь ROS-сервисом "/display_driver/PlayMedia" с одноимённым типом сообщения "display_driver/PlayMedia".
Пример вывода на дисплей картинки, расположенной по адресу: "/home/pi/robohead_ws/src/robohead/display_driver/examples/pic.png
" (вводите в новом терминале):
path_to_file - путь до файла. Для остановки воспроизведения (например, неблокирующего зацикленного видео) оставьте это поле пустым.
is_blocking - блокирующий ли вызов сервиса? (0 - нет, 1 - да). Если запустить на воспроизведение видео с параметром is_blocking: 1, то в терминале вызов сервиса будет висеть, пока воспроизведение не завершится.
is_cycled - зациклено ли воспроизведение? Имеет смысл для видео, если оно завершилось, то автоматически начнется воспроизведение сначала.
Будьте аккуратны при использовании блокирующего вызова и зацикленного воспроизведения
При попытке вывода несуществующего файла вызов сервиса вернет -1. При несовпадении разрешения/расширения и других ошибках - подробная информация будет выведена на экран.
Так же имеется пример вызова этого сервиса для вывода изображений на Python, для запуска используйте:
Для потокового вывода (например с веб-камеры) воспользуйтесь ROS-топиком /display_driver/PlayMedia со стандартным типом сообщений sensor_msgs/Image
Пример вывода изображения с веб-камеры (необходим запущенный пакет usb_cam):
Данные о координате касания тачскрина публикуются в топик /display_driver/touchscreen в формате стандартного сообщения geometry_msgs/Pose2D. Для просмотра публикуемых в топик сообщений используйте:
Так же имеется пример работы с данными тачскрина на Python, для его запуска используйте:
Во время подключенного зарядного устройства могут наблюдаться шумы в данных с тачскрина!
В файле display_driver/config/display_driver.yaml указаны настройки для запуска пакета. Там можно изменить разрешение экрана, частоту обновления, поворот изображения, вкл/выкл тачскрин, изменить названия топиков и сервисов. Данные из этого конфигурационного файла используются при запуске display_driver/launch/display_driver_py.launch. Обратите внимание, внесение изменений в этот файл не влияет на настройки этого пакета при запуске через лаунч-файл пакета robohead_controller, для этого используйте конфигурационные файлы именно пакета .