kumarrobotics / camera_base Goto Github PK
View Code? Open in Web Editor NEWSome base classes for simplifing ROS camera driver node.
Some base classes for simplifing ROS camera driver node.
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)?
Hi.
I would like to write a ros driver for this camera:
http://www.uctronics.com/arducam-cmos-ar0134-1-3-inch-1-2mp-color-camera-module.html
which is used togheter with its shield:
http://www.uctronics.com/arducam-usb-camera-shield.html
Do you think I could use this package in order to create a ros wrapper/driver?
Any hint?
Thank you!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.