Las cámaras Basler se muestran en dos (múltiples) dispositivos bajo ros

En muchos casos, necesitamos usar varias cámaras, entonces, ¿cómo debemos configurarlas?

De manera análoga a la visualización de dos pequeñas tortugas en Turtlesim (tortuga 1 y tortuga 2), lectura recomendada: Una introducción suave a ros;

Sabemos que solo necesitamos crear dos espacios de nombres.

Para saber cómo configurar Basler en ROS, puede consultar:

Basler pylon-ros-camera driver Xavier AGX registro de depuración (arquitectura Arm)_Blog de Mendoza-CSDN Blog La arquitectura x86 del driver se puede iniciar normalmente de acuerdo con el manual y las instrucciones de github. Verifique el controlador clonado, verifique los archivos en él y no encuentre una biblioteca vinculada (x86 y la biblioteca arm no se comparten), luego puede intentar instalarlo. Como recordatorio, puede usar el siguiente comando para ver las propiedades de la biblioteca readelf -h xxxxx.so Dado que se usa Xavier AGX con arquitectura armv8, los pasos son diferentes a los del manual. Siga los pasos generales primero: maneje la dirección de github: https://github.com/basler/pylon-ros-camera/tree/master/pylon_ca https://blog.csdn.net/m0_46611008/article/details/123804337?spm =1001.2014.3001.5501 Solo necesitamos modificar el archivo de configuración y ejecutar el archivo

En la ruta anterior, haga dos copias de default.yaml y asígneles el nombre anterior.

Abra dos archivos yaml y configure la identificación del dispositivo (tenga en cuenta que la identificación debe configurarse manualmente)

método de configuración de device_id (la última versión ha cambiado el documento cpp de write-xxxxxxxx, y el nombre del nodo también ha cambiado):

 El método anterior no es intuitivo y se puede asignar directamente a través de la configuración de IP de pylon

 Proporcione 01 y 02 respectivamente (u otros nombres que desee, que deben ser coherentes con el archivo .yaml )

 A continuación, cambie el archivo de inicio y modifique pylon_camera_node.lauch para:

<?xml version="1.0"?>
<launch>
    <arg name="respawn" default="false" />
    <arg name="debug" default="false" />
    <arg name="node_name" default="pylon_camera_node" />
    <arg name="mtu_size" default="1500" />
    <arg name="startup_user_set" default="CurrentSetting" />
    <arg name="enable_status_publisher" default="true" />
    <arg name="enable_current_params_publisher" default="true" />

    <arg unless="$(arg debug)" name="launch_prefix" value="" />
    <arg     if="$(arg debug)" name="launch_prefix" value="gdb -ex run --args" />
  
<group ns ="01">
    <arg name="config_file" default="$(find pylon_camera)/config/01.yaml" />
    <node name="$(arg node_name)" pkg="pylon_camera" type="pylon_camera_node" output="screen"
          respawn="$(arg respawn)" launch-prefix="$(arg launch_prefix)">
        <rosparam command="load" file="$(arg config_file)" />
        <param name="gige/mtu_size" value="$(arg mtu_size)"/>
        <param name="startup_user_set" value="$(arg startup_user_set)"/>
        <param name="enable_status_publisher" value="$(arg enable_status_publisher)"/>
        <param name="enable_current_params_publisher" value="$(arg enable_current_params_publisher)"/>
    </node>
  </group>

<group ns ="02">
    <arg name="config_file" default="$(find pylon_camera)/config/02.yaml" />
    <node name="$(arg node_name)" pkg="pylon_camera" type="pylon_camera_node" output="screen"
          respawn="$(arg respawn)" launch-prefix="$(arg launch_prefix)">
        <rosparam command="load" file="$(arg config_file)" />
        <param name="gige/mtu_size" value="$(arg mtu_size)"/>
        <param name="startup_user_set" value="$(arg startup_user_set)"/>
        <param name="enable_status_publisher" value="$(arg enable_status_publisher)"/>
        <param name="enable_current_params_publisher" value="$(arg enable_current_params_publisher)"/>
    </node>
  </group>

</launch>

Dos de los espacios de nombres (ns) se pueden elegir a voluntad, siempre que sean diferentes.

Después de la modificación, ejecute el lanzamiento

roslaunch pylon_camera pylon_camera_node.launch

Seleccione el tema para mostrar en image_view de rviz o rqt:

 Si no se muestra, simplemente agregue un conjunto de transformaciones tf.


rosrun tf static_transform_publisher 0 0 0 0 0 0 base_link pylon_camera 50

Supongo que te gusta

Origin blog.csdn.net/m0_46611008/article/details/124049232
Recomendado
Clasificación