很多情况我们都需要使用到多台相机,那么我们应当如何和配置呢?
类比turtlesim中两只小乌龟的显示(turtle1与turtle2),推荐阅读:A gentle introduction to ros ;
我们知道,我们只需要建立两个命名空间即可。
关于如何在ROS上配置Basler可以查看:
在上述路径中将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