Basler カメラは ros の下の 2 つ(複数)のデバイスに表示されます

多くの場合、複数のカメラを使用する必要がありますが、どのように設定すればよいでしょうか?

Turtlesim での 2 匹の小さなカメ (turtle1 と Turtle2) の表示に似ており、推奨読書: ros への優しい入門。

2 つの名前空間を作成するだけでよいことがわかりました。

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_ca https://blog.csdn.net/m0_46611008/article/details/123804337? spm =1001.2014.3001.5501設定ファイルを変更してファイルを起動するだけです

上記のパスで、default.yaml のコピーを 2 つ作成し、上記のような名前を付けます。

2 つの yaml ファイルを開き、デバイスの ID を設定します (ID は手動で設定する必要があることに注意してください)

device_id の設定方法(最新版では write-xxxxxxxx の cpp ドキュメントが変更され、ノード名も変更されます):

 上記の方法は直感的ではないため、pylon の IP 構成を通じて直接割り当てることができます。

 それぞれ 01 と 02 (または.yaml ファイルと一致する必要がある他の名前)を指定します。

 次に、起動ファイルを変更し、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) のうち 2 つは、異なっていれば自由に選択できます。

変更後、起動を実行します

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