Basler相机在ros下两台(多台)设备显示

很多情况我们都需要使用到多台相机,那么我们应当如何和配置呢?

类比turtlesim中两只小乌龟的显示(turtle1与turtle2),推荐阅读:A gentle introduction to ros ;

我们知道,我们只需要建立两个命名空间即可。

关于如何在ROS上配置Basler可以查看:

Basler pylon-ros-camera驱动 Xavier AGX调试记录 (Arm架构)_MendozaG的博客-CSDN博客该驱动的x86架构根据手册和github说明步骤来即可,可以正常启动。检查克隆下来的驱动,检查其中的文件没有发现链接的库(x86与arm库不共用),则可以尝试安装。提示,可以通过下述指令来查看库的属性readelf -h xxxxx.so由于使用的是armv8架构的Xavier AGX,步骤和手册中有所不同。先按一般步骤来处理:驱动github地址:https://github.com/basler/pylon-ros-camera/tree/master/pylon_cahttps://blog.csdn.net/m0_46611008/article/details/123804337?spm=1001.2014.3001.5501我们只需要修改配置文件和launch文件即可

在上述路径中将defaul.yaml复制两份按照如上方式命名。

打开两个yaml文件,设置设备的id(注该id需要手动设置)

device_id设置方法(最新版本将write-xxxxxxx的cpp文档更改了,节点名字也改变了):

 以上方式并不直观可以通过pylon的IP configure直接赋予

 分别赋予01及02(或者其他你想要的名字,需要与.yaml文件保持一致

 接下来更改launch文件,将pylon_camera_node.lauch修改为:

<?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>

其中两个命名空间(ns)可以随意取,不同即可。

修改完毕后,运行该launch

roslaunch pylon_camera pylon_camera_node.launch

在rviz或rqt种的image_view选择话题显示即可:

 如果不显示,添加一组tf转换即可。


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

猜你喜欢

转载自blog.csdn.net/m0_46611008/article/details/124049232