This repository was archived by the owner on Apr 27, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 44
This repository was archived by the owner on Apr 27, 2022. It is now read-only.
Bottleneck in CameraRosBase::PublishCamera #5
Copy link
Copy link
Open
Description
I am using this package in conjunction with bluefox2 package for matrixvision bluefox MLC200wC camera with resolution 752x480. Settings are adjusted so as to acquire images at a rate ~80 FPS. Turns out the method CameraRosBase::PublishCamera takes too long to process images and the max. FPS that I can get is ~35 FPS.
Also, my launch file is following.
test_triggering.launch:
<launch>
<!-- Start mavros -->
<include file="$(find mavros)/launch/px4.launch">
<arg name="fcu_url" value="/dev/ttyOffboard:921600"/>
</include>
<!-- Start camera driver -->
<include file="$(find bluefox2)/launch/single_node.launch">
<arg name="record_cameras" value="false"/>
<arg name="expose_us" value="10000"/>
<arg name="rate" value="150"/>
</include>
</launch>single_node.launch:
<launch>
<!-- Common Interface -->
<arg name="device" default="26807563"/>
<arg name="rate" default="15"/>
<!-- Record data? -->
<arg name="record_cameras" default="true"/>
<!-- Camera Settings -->
<arg name="serial" default="$(arg device)"/>
<arg name="camera_name" default="camera_0"/>
<arg name="camera" default="$(arg camera_name)"/>
<arg name="frame_id" default="$(arg camera)"/>
<arg name="calib_url" default="file://${ROS_HOME}/camera_info/$(arg camera_name).yaml"/>
<arg name="fps" default="$(arg rate)"/>
<arg name="idpf" default="2"/>
<arg name="aec" default="false"/>
<arg name="expose_us" default="15000"/>
<arg name="agc" default="true"/>
<arg name="gain_db" default="0.0"/>
<arg name="cbm" default="0"/>
<arg name="dcfm" default="0"/>
<arg name="cpc" default="40000"/>
<arg name="hdr" default="false"/>
<arg name="wbp" default="-1"/>
<arg name="request" default="0"/>
<arg name="mm" default="0"/>
<arg name="jpeg_quality" default="80"/>
<!-- Trigger mode (ctm): 1=on demand (default), 3=hardware trigger -->
<arg name="ctm" default="3"/>
<arg name="cts" default="0"/>
<!-- Node Settings -->
<arg name="output" default="screen"/>
<arg name="proc" default="false"/>
<arg name="view" default="true"/>
<arg name="calib" default="false"/>
<!-- Node -->
<node pkg="bluefox2" type="bluefox2_single_node" name="$(arg camera)" output="$(arg output)" ns="hawk">
<param name="identifier" type="string" value="$(arg serial)"/>
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="camera_name" type="string" value="$(arg camera_name)"/>
<param name="calib_url" type="string" value="$(arg calib_url)"/>
<param name="fps" type="double" value="$(arg fps)"/>
<param name="idpf" type="int" value="$(arg idpf)"/>
<param name="aec" type="bool" value="$(arg aec)"/>
<param name="expose_us" type="int" value="$(arg expose_us)"/>
<param name="agc" type="bool" value="$(arg aec)"/>
<param name="gain_db" type="double" value="$(arg gain_db)"/>
<param name="cbm" type="int" value="$(arg cbm)"/>
<param name="ctm" type="int" value="$(arg ctm)"/>
<param name="cpc" type="int" value="$(arg cpc)"/>
<param name="cts" type="int" value="$(arg cts)"/>
<param name="dcfm" type="int" value="$(arg dcfm)"/>
<param name="hdr" type="bool" value="$(arg hdr)"/>
<param name="wbp" type="int" value="$(arg wbp)"/>
<param name="request" type="int" value="$(arg request)"/>
<param name="mm" type="int" value="$(arg mm)"/>
<param name="image_raw/compressed/jpeg_quality" type="int" value="$(arg jpeg_quality)"/>
</node>
<!-- View -->
<arg name="image" default="image_raw"/>
<node if="$(arg view)"
pkg="image_view" type="image_view" name="viewer" ns="hawk/$(arg camera)"
args="image:=$(arg image)" output="$(arg output)">
</node>
</launch>So, my question is, are any methods tried that can overcome this bottleneck and acquire images at high frame rate (atleast 70)?
Metadata
Metadata
Assignees
Labels
No labels