flir_camera_driver icon indicating copy to clipboard operation
flir_camera_driver copied to clipboard

Enumeration TriggerMode not available

Open linzha0 opened this issue 3 years ago • 0 comments

Hi, I have a stereo-camera system (2 flir blackfly s usb3 cameras). I use one as primary camera and the other one as secondary camera (Master-slave mode). Use MCU trigger primary camera, use primary camera's exposure state as trigger signal for secondary camera.

I use following launch file to start stereo-camera. Every thing seems working fine, when I change trigger rate in MCU, I can find two camera frame rate change as I set. Also, both camera exposure time are look same (expect camera system jitter).

Launch file:

<?xml version="1.0"?>

<launch>
  <!-- Common parameters -->
  <arg name="camera_name" default="rov/sensors/stereo" />
  <arg name="camera_manager" default="stereo_camera_manager" />
  <!-- Right = primary, Left = secondary -->
  <arg name="right_camera_serial" default="20181913" />
  <arg name="right_camera_calibrated" default="0" />
  <arg name="left_camera_serial" default="20181918" />
  <arg name="left_camera_calibrated" default="0" />
  <arg name="start_delay_right" default="3.0" />


  <node pkg="nodelet" type="nodelet" name="$(arg camera_manager)"
        args="manager" output="screen" required="true" >
        <param name="num_worker_threads" value="4" />
  </node>


  <group ns="$(arg camera_name)" >
    <group ns="right" >

      <node pkg="nodelet" type="nodelet" name="camera_nodelet"
            args="load spinnaker_camera_driver/SpinnakerCameraNodelet /$(arg camera_manager)" 
            launch-prefix="bash -c 'sleep $(arg start_delay_right); $0 $@'" >
            
        <!-- +++++++++++ Basic +++++++++++ -->
        <param name="frame_id" value="right_camera" />
        <param name="serial" value="$(arg right_camera_serial)" />
        <param name="image_format_color_coding" value="BGR8" />       <!-- BayerRG8 -->

        <!-- +++++++++++ Acquisition +++++++++++ -->
        <param name="acquisition_mode" value="Continuous" />          <!-- Continuous: acquires image continously -->
        <param name="acquisition_frame_rate_enable" value="False" />  <!--False: controlled by trigger -->
        <!-- <param name="acquisition_frame_rate" value="20" />           Value: image captured by given framte rate -->

        <!-- +++++++++++ Trigger +++++++++++  -->
        <param name="trigger_source" value="Line3" />                 <!-- Line3: Green color and Pin 1 -->
        <param name="enable_trigger" value="On" />
        <param name="trigger_activation_mode" value="RisingEdge" />
        <!-- +++++++++++ Exposure +++++++++++ -->
        <param name="exposure_mode" value="Timed" />                  <!-- Timed: exposure time in a specified value -->
        <param name="exposure_auto" value="Continuous" />             <!-- Off: given fixed exposure time; Continuous: auto exposure time -->
        <param name="auto_exposure_time_upper_limit" value="5500" /> 
        <param name="auto_exposure_time_lower_limit" value="1000" />
        <!-- <param name="exposure_time" value="5000" />                  exposure time in microseconds -->
        <param name="line_selector" value="Line2" />                  <!--Line2: Red color and Pin 3-->
        <param name="line_mode" value="Output" />                     <!--Output: output exposure state-->
        <param name="line_source" value="ExposureActive" />           <!--ExposureActive: indicates when the image sensor is exposing-->
        <param name="line_inverter" value="False"/>

        <!-- +++++++++++ Analog +++++++++++ -->
        <param name="auto_gain" value="Continuous" />
        <param name="auto_white_balance" value="Continuous" />

        <!-- +++++++++++ Calibration +++++++++++ -->
          <!-- Use the camera_calibration package to create this file -->
          <!-- <param name="camera_info_url" if="$(arg right_camera_calibrated)"
              value="file://$(env HOME)/.ros/camera_info/$(arg right_camera_serial).yaml" /> -->
      </node>

    </group> <!-- end of group "right" -->

    <group ns="left" >

      <node pkg="nodelet" type="nodelet" name="camera_nodelet"
            args="load spinnaker_camera_driver/SpinnakerCameraNodelet /$(arg camera_manager)" >
            
        <!-- +++++++++++ Basic +++++++++++ -->
        <param name="frame_id" value="left_camera" />
        <param name="serial" value="$(arg left_camera_serial)" />
        <param name="image_format_color_coding" value="BGR8" />       <!-- BayerRG8 -->

        <!-- +++++++++++ Acquisition +++++++++++ -->
        <param name="acquisition_mode" value="Continuous" />          <!-- Continuous: acquires image continously -->
        <param name="acquisition_frame_rate_enable" value="False" />  <!--False: controlled by trigger -->
        <!-- <param name="acquisition_frame_rate" value="20" />           Value: image captured by given framte rate -->

        <!-- +++++++++++ Trigger +++++++++++  -->
        <param name="trigger_source" value="Line3" />                 <!-- Line3: Green color and Pin 1 -->
        <param name="enable_trigger" value="On" />
        <param name="trigger_activation_mode" value="RisingEdge" />
        <param name="trigger_overlap_mode" value="ReadOut" />

        <!-- +++++++++++ Exposure  +++++++++++ -->
        <param name="exposure_mode" value="TriggerWidth" />           <!-- Timed: exposure time in a specified value; TriggerWidth: same as primary camera -->
        <!-- <param name="exposure_auto" value="Off" />           Off: given fixed exposure time; Continuous: auto exposure time -->
        <!-- <param name="auto_exposure_time_upper_limit" value="10000" /> --> 
        <!-- <param name="auto_exposure_time_lower_limit" value="300" /> -->
        <!-- <param name="exposure_time" value="3000" />                 exposure time in microseconds -->
        <param name="line_selector" value="Line2" />                   <!-- Line2: Red color and Pin 3 -->
        <param name="line_mode" value="Output" />                      <!-- Output: output exposure state -->
        <param name="line_source" value="ExposureActive" />            <!-- ExposureActive: indicates when the image sensor is exposing -->
        <param name="line_inverter" value="False"/>

        <!-- +++++++++++ Analog +++++++++++ -->
        <param name="auto_gain" value="Continuous" />
        <param name="auto_white_balance" value="Continuous" />

        <!-- Calibration -->
        <!-- Use the camera_calibration package to create this file -->
        <!-- <param name="camera_info_url" if="$(arg left_camera_calibrated)"
               value="file://$(env HOME)/.ros/camera_info/$(arg left_camera_serial).yaml" /> -->
      </node>
 
      
    </group> <!-- end of group "left" -->

  </group> <!-- end of group "rov/sensors/stereo" -->

</launch>

However, I found the secondary camera has a warning:

[ WARN] [1517155368.152494293]: [SpinnakerCamera]: (20181918) Enumeration TriggerMode not available.

I don't why is this come from? The secondary camera output is below, I can see the TriggerMode setup is processed twice, and second setup process cased this warning.

[ INFO] [1517155367.620637249]: [SpinnakerCamera]: (20181918) BinningHorizontal set to 1.
[ INFO] [1517155367.630002278]: [SpinnakerCamera]: (20181918) BinningVertical set to 1.
[ INFO] [1517155367.638626422]: [SpinnakerCamera]: (20181918) DecimationHorizontal set to 1.
[ INFO] [1517155367.647655396]: [SpinnakerCamera]: (20181918) DecimationVertical set to 1.
[ INFO] [1517155367.653561507]: [SpinnakerCamera]: (20181918) OffsetX set to 0.
[ INFO] [1517155367.658148698]: [SpinnakerCamera]: (20181918) OffsetY set to 0.
[ INFO] [1517155367.663546767]: [SpinnakerCamera]: (20181918) Width set to 1616.
[ INFO] [1517155367.668263397]: [SpinnakerCamera]: (20181918) Height set to 1240.
[ INFO] [1517155367.672312823]: [SpinnakerCamera]: (20181918) OffsetX set to 0.
[ INFO] [1517155367.675959150]: [SpinnakerCamera]: (20181918) OffsetY set to 0.
[ INFO] [1517155367.684918451]: [SpinnakerCamera]: (20181918) PixelFormat set to BGR8.
[ INFO] [1517155367.687783076]: [SpinnakerCamera]: (20181918) AcquisitionFrameRateEnable set to 1.
[ INFO] [1517155367.692248715]: [SpinnakerCamera]: (20181918) AcquisitionFrameRate set to 9.99935.
[ INFO] [1517155367.695046456]: [SpinnakerCamera]: (20181918) AcquisitionFrameRateEnable set to 0.
[ INFO] [1517155367.697960812]: [SpinnakerCamera]: (20181918) TriggerMode set to Off.
[ INFO] [1517155367.700327335]: [SpinnakerCamera]: (20181918) TriggerSource set to Line3.
[ INFO] [1517155367.700980752]: [SpinnakerCamera]: (20181918) TriggerSelector set to FrameStart.
[ INFO] [1517155367.703373727]: [SpinnakerCamera]: (20181918) TriggerActivation set to RisingEdge.
[ INFO] [1517155367.705400091]: [SpinnakerCamera]: (20181918) TriggerMode set to On.
[ INFO] [1517155367.706998764]: [SpinnakerCamera]: (20181918) LineSelector set to Line2.
[ INFO] [1517155367.708921083]: [SpinnakerCamera]: (20181918) LineMode set to Output.
[ INFO] [1517155367.710987302]: [SpinnakerCamera]: (20181918) LineSource set to ExposureActive.
[ INFO] [1517155367.712004283]: [SpinnakerCamera]: (20181918) LineInverter set to 0.
[ INFO] [1517155367.714010063]: [SpinnakerCamera]: (20181918) ExposureMode set to TriggerWidth.
[ INFO] [1517155367.717270060]: [SpinnakerCamera]: (20181918) ExposureAuto set to Continuous.
[ INFO] [1517155367.718477016]: [SpinnakerCamera]: (20181918) SharpeningEnable set to 0.
[ INFO] [1517155367.719554854]: [SpinnakerCamera]: (20181918) SaturationEnable set to 0.
[ INFO] [1517155367.721591318]: [SpinnakerCamera]: (20181918) AutoExposureExposureTimeUpperLimit set to 5000.
[ INFO] [1517155367.722248133]: [SpinnakerCamera]: (20181918) GainSelector set to All.
[ INFO] [1517155367.725972085]: [SpinnakerCamera]: (20181918) GainAuto set to Continuous.
[ INFO] [1517155367.729330549]: [SpinnakerCamera]: (20181918) BlackLevel set to 1.7.
[ INFO] [1517155367.730712346]: [SpinnakerCamera]: (20181918) GammaEnable set to 1.
[ INFO] [1517155367.733309692]: [SpinnakerCamera]: (20181918) Gamma set to 1.
[ INFO] [1517155367.737149456]: [SpinnakerCamera]: (20181918) BalanceWhiteAuto set to Continuous.
[ INFO] [1517155367.863459450]: devicePoll
[ INFO] [1517155368.073567504]: [SpinnakerCamera]: (20181918) BinningHorizontal set to 1.
[ INFO] [1517155368.082702864]: [SpinnakerCamera]: (20181918) BinningVertical set to 1.
[ INFO] [1517155368.090565057]: [SpinnakerCamera]: (20181918) DecimationHorizontal set to 1.
[ INFO] [1517155368.098278958]: [SpinnakerCamera]: (20181918) DecimationVertical set to 1.
[ INFO] [1517155368.103432738]: [SpinnakerCamera]: (20181918) OffsetX set to 0.
[ INFO] [1517155368.107335154]: [SpinnakerCamera]: (20181918) OffsetY set to 0.
[ INFO] [1517155368.111795406]: [SpinnakerCamera]: (20181918) Width set to 1616.
[ INFO] [1517155368.115756466]: [SpinnakerCamera]: (20181918) Height set to 1240.
[ INFO] [1517155368.119603925]: [SpinnakerCamera]: (20181918) OffsetX set to 0.
[ INFO] [1517155368.123237972]: [SpinnakerCamera]: (20181918) OffsetY set to 0.
[ INFO] [1517155368.131168332]: [SpinnakerCamera]: (20181918) PixelFormat set to BGR8.
[ INFO] [1517155368.133387492]: [SpinnakerCamera]: (20181918) AcquisitionFrameRateEnable set to 1.
[ INFO] [1517155368.143458168]: [SpinnakerCamera]: (20181918) AcquisitionFrameRate set to 9.99935.
[ INFO] [1517155368.145961634]: [SpinnakerCamera]: (20181918) AcquisitionFrameRateEnable set to 0.

[ WARN] [1517155368.147043030]: [SpinnakerCamera]: (20181918) Enumeration TriggerMode not available.

[ INFO] [1517155368.149143044]: [SpinnakerCamera]: (20181918) TriggerSource set to Line3.
[ INFO] [1517155368.149475091]: [SpinnakerCamera]: (20181918) TriggerSelector set to FrameStart.
[ INFO] [1517155368.151953354]: [SpinnakerCamera]: (20181918) TriggerActivation set to RisingEdge.

[ WARN] [1517155368.152494293]: [SpinnakerCamera]: (20181918) Enumeration TriggerMode not available.

[ INFO] [1517155368.153380937]: [SpinnakerCamera]: (20181918) LineSelector set to Line2.
[ INFO] [1517155368.155167917]: [SpinnakerCamera]: (20181918) LineMode set to Output.
[ INFO] [1517155368.156854540]: [SpinnakerCamera]: (20181918) LineSource set to ExposureActive.
[ INFO] [1517155368.157734194]: [SpinnakerCamera]: (20181918) LineInverter set to 0.
[ INFO] [1517155368.159028074]: [SpinnakerCamera]: (20181918) ExposureMode set to TriggerWidth.
[ INFO] [1517155368.161325725]: [SpinnakerCamera]: (20181918) ExposureAuto set to Continuous.
[ INFO] [1517155368.162597994]: [SpinnakerCamera]: (20181918) SharpeningEnable set to 0.
[ INFO] [1517155368.163781288]: [SpinnakerCamera]: (20181918) SaturationEnable set to 0.
[ INFO] [1517155368.165277358]: [SpinnakerCamera]: (20181918) AutoExposureExposureTimeUpperLimit set to 5000.
[ INFO] [1517155368.166048543]: [SpinnakerCamera]: (20181918) GainSelector set to All.
[ INFO] [1517155368.168656855]: [SpinnakerCamera]: (20181918) GainAuto set to Continuous.
[ INFO] [1517155368.171032388]: [SpinnakerCamera]: (20181918) BlackLevel set to 1.7.
[ INFO] [1517155368.171999992]: [SpinnakerCamera]: (20181918) GammaEnable set to 1.
[ INFO] [1517155368.173630921]: [SpinnakerCamera]: (20181918) Gamma set to 1.
[ INFO] [1517155368.176634444]: [SpinnakerCamera]: (20181918) BalanceWhiteAuto set to Continuous.
[ INFO] [1517155368.313266939]: [SpinnakerCamera::connect]: Detected device type: USB3Vision
[ INFO] [1517155368.941746277]: [SpinnakerCamera::connect]: Camera model name: Blackfly S BFS-U3-19S4C
[ INFO] [1517155368.947454334]: [SpinnakerCamera]: (20181913) DeviceLinkThroughputLimit set to 500000000.

linzha0 avatar Jan 28 '22 00:01 linzha0