Используйте узел ROS-usbcam для управления камерой и ее калибровки (поддержка realsense).

робот
Используйте узел ROS-usbcam для управления камерой и ее калибровки (поддержка realsense).

Привет всем, я Xiaoyu, сегодня я расскажу вам песню, если вы используете драйвер камеры, который поставляется с ros, для калибровки камеры.

Существует также небольшой навык.Когда мы используем камеру реального смысла, мы можем использовать канал RGB камеры без установки драйвера, если соответствующий номер видео может быть сопоставлен.

1. Используйте ROS usb_cam для управления камерой

1.1 Установите USB-камеру

Кинетический:

sudo apt-get install ros-kinetic-usb-cam

Мелодичный:

sudo apt-get install ros-melodic-usb-cam

другие версии

sudo apt-get install ros-版本名称-usb-cam

1.2 Изменить файл запуска

Войдите в каталог:

roscd usb_camcd launchsudo gedit usb_cam-test.launch

В настоящее время в основном изменяются два параметра устройства и ширины, которые можно использоватьls /dev/video*Просмотр системных видеоустройств.

<launch>  
    <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >    
        <!-- modify the video device to your device -->    
        <param name="video_device" value="/dev/video2" />    
        <!-- modify the size of your device -->    
        <param name="image_width" value="1280" />    
        <param name="image_height" value="720" />   
        <param name="pixel_format" value="yuyv" />    
        <param name="camera_frame_id" value="usb_cam" />    
        <param name="io_method" value="mmap"/>  
    </node>  
    
    <node name="image_view" pkg="image_view" type="image_view" respawn="false">  
        <remap from="image" to="/usb_cam/image_raw"/>    
        <param name="autosize" value="true" /> 
    </node>
</launch>

1.3 Запустите камеру

roslaunch usb_cam usb_cam-test.launch

2 Калибровка камеры с помощью ROS

2.1 Для калибровки используйте программу калибровки, поставляемую с ROS.

  • мелкие инструменты:Веб-сайт онлайн-генерации Checkerboard pdf: вы можете получить его, ответив на калибровочную доску в фоновом режиме., более точно использовать индивидуальную печать после генерации, чем ручное измерение.
  • После завершения калибровки нажмите «Сохранить», чтобы сохранить изображение и матрицу параметров, использованных для калибровки. Сжатый пакет, созданный в результате калибровки, будет выведен в терминал, который находится в/tmpПод содержанием.

2.2 Запуск процедуры калибровки

Сначала запустите программу камеры в 4.1

roslaunch usb_cam usb_cam-test.launch

Перед запуском нужно изменить параметры в соответствии с вашей шахматной доской

  • Во-первых, параметр размера представляет собой количество угловых точек шахматной доски, например, шахматная доска с сетками 8x9=72, количество угловых точек равно 7x8=63, а параметр размера должен быть записан как 7x8.
  • Другой параметр — квадрат, а входящий параметр — ширина мелкой сетки шахматной доски (обратите внимание, единица измерения — м).
  • image, исходные данные темы изображения по умолчанию равныcamera:=/usb_cam
rosrun camera_calibration cameracalibrator.py --size 10x7 --square 0.015 image:=/usb_cam/image_raw camera:=/usb_cam

2.3 Создание файла калибровки

После завершения калибровки нажатие кнопки "Рассчитать" будет немного зависать. Не беспокойтесь о калибровке в фоновом режиме. После завершения станут доступными кнопки СОХРАНИТЬ и ЗАПИСАТЬ ниже. Нажмите СОХРАНИТЬ, чтобы сохранить файл калибровки.

Нажмите «Подтвердить», чтобы сохранить файл калибровки в системе.~/.ros/camera_info/xxx.yamlсодержание

2.4 Использование этого параметра в ROS

Вы можете добавить следующие параметры в файл запуска usb_cam и перезапустить узел usb_cam, чтобы использовать параметры калибровки.

Значение параметра, которое Сяою написал здесь, равноfile:///home/dev/.ros/camera_info/ost.yaml, чтобы открыть каталог~/.ros/camera_info/смотреть

<param name="camera_info_url" type="string" value="file:///home/dev/.ros/camera_info/ost.yaml"/>

Результат после завершения добавления~

<launch>  
    <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >    
        <!-- modify the video device to your device -->    
        <param name="video_device" value="/dev/video2" />    
        <param name="camera_info_url" type="string" value="file:///home/dev/.ros/camera_info/ost.yaml"/>    
        <!-- modify the size of your device -->    
        <param name="image_width" value="1280" />    
        <param name="image_height" value="720" />    
        <param name="pixel_format" value="yuyv" />    
        <param name="camera_frame_id" value="usb_cam" />    
        <param name="io_method" value="mmap"/>  
    </node>  
    <node name="image_view" pkg="image_view" type="image_view" respawn="false">    
        <remap from="image" to="/usb_cam/image_raw"/>    
        <param name="autosize" value="true" />  
    </node>
</launch>

Оригинальная ссылка:Tickets.WeChat.QQ.com/Yes/as05K-_B0…