Giter Site home page Giter Site logo

astuff / avt_vimba_camera Goto Github PK

View Code? Open in Web Editor NEW

This project forked from srv/avt_vimba_camera

21.0 6.0 43.0 4.19 MB

ROS1/2 Driver for AVT cameras using VIMBA SDK.

License: Other

CMake 1.51% Python 2.82% C 16.19% C++ 79.47%
camera driver ros ros2

avt_vimba_camera's Introduction

avt_vimba_camera (ROS1)

This repo contains a ROS driver for cameras manufactured by Allied Vision Technologies. The driver relies on libraries provided by AVT as part of their Vimba SDK.

See the ROS2 version of this README here.

Installation

Dependencies

First, you will need to install the Vimba SDK. Download it from AVT's website here.

Also see the linux vimba installation instructions.

It is highly recommended to open the "Vimba Viewer" tool that came along with the SDK and make sure you can connect to your camera.

It may be useful to create a desktop shortcut to Vimba Viewer:

ln -sf "Vimba_5_0/Tools/Viewer/Bin/x86_64bit/VimbaViewer" "$HOME/Desktop"

ROS Driver

Once you've successfully connected to your camera using Vimba Viewer, you can continue with the ROS driver install:

sudo apt install ros-$ROS_DISTRO-avt-vimba-camera

Operational Advice

MTU Size

If you are using a GigE camera (ethernet-based camera), it is recommended to adjust some settings in your network interface to be able to handle the potentially high bandwidth usage of the camera stream.

On Linux, you will need to increase the MTU (Maximum Transmission Unit) on the network interface attached to the camera.

You can check what your current mtu setting is by running the following command:

ip a | grep mtu

According to AVT documentation, increase the mtu to 9014. If you use Network Manager, this can be done by opening the network interface settings and editing the "MTU" box under the "Identity" tab.

See the "Optimize system performance" section of your camera's technical manual for full details. For example, the Mako camera technical manual is available here.

Receive Buffer Size

It is also recommended to increase your network receive buffer size. By default, Ubuntu uses 212992.

You can check what your current buffer size is:

sudo sysctl 'net.core.rmem_max'

Update the buffer size with the following command:

sudo sysctl -w 'net.core.rmem_max=26214400'

26214400 has been tested successfully, but anything above 2000000 is likely fine.

Once you find a value that works for you, you can make the change permanent (persist across reboots) by updating the /etc/sysctl.conf file with the following line:

net.core.rmem_max=26214400

Camera Settings in General

If you are having difficulty getting the camera to do what you want using the ROS driver, it is suggested to first use Vimba Viewer to play around with settings that work. The Vimba Viewer GUI will help you determine what settings are available to your camera model and help you tune them easier. Once you have settings that you are happy with, save them into your own rosparam file or launch file, and the driver will use those settings every time it launches.

Note that this driver makes use of both ROS parameters and dynamic reconfigure. When the driver first starts, the dyanmic reconfigure server will initialize with all current ROS param values, then trigger a callback to configure the camera. This means ROS params will take precedence and should be the preferred way to save camera configs meant to be reused. After the driver initializes, changes to the parameters can be made using dynamic reconfigure RQT tool (rqt_reconfigure).

ROS Nodes

mono_camera_node

The mono_camera_node is the main driver that connects to the camera, configures it according to ROS parameters/dynamic reconfigure, and starts publishing image frames. The driver uses image_transport to publish image frames, so all expected image topics should be available. See the config file (cfg/AvtVimbaCamera.cfg) for documentation regarding the various parameters that can be used to configure the camera itself. See the launch file (launch/mono_camera.launch) for documentation regarding the operational parameters of the driver.

trigger_node

The trigger_node is a standalone node for sending out ethernet-based action commands to AVT cameras. Action commands are useful for triggering frame captures over ethernet. See AVT's application note for more details. Note that cameras must be configured to receive the action commands in addition to running the trigger_node.

Clock Synchronization

If you wish to use the exact time the image was measured in the header of the ROS messages, it is suggested to use PTP synchronization. PTP will ensure the clock on the camera is synchronized with the computer, so that measurement times are all based off of the same clock. Setting the use_measurement_time parameter will set the ROS header timestamp to the frame timestamp, but it is up to you to make sure the camera clock is synced with the computer. linuxptp is a great tool for PTP synchronization and is suggested for ensuring the camera is in sync with the computer. See the links below for more details on PTP sync.

Useful Technical References and Application Notes

avt_vimba_camera's People

Contributors

130s avatar chewwt avatar cottsay avatar dagata-mining avatar gbartyzel avatar icolwell-as avatar jilinzhouas avatar josepqp avatar lucasb-eyer avatar mikomikarro avatar mintar avatar miquelmassot avatar philippschmaelzle avatar pkok avatar shaun-edwards avatar vbrebion avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

avt_vimba_camera's Issues

Bug in AvtVimbaCamera::getTriggerModeInt function

Here is the code of the function:

int AvtVimbaCamera::getTriggerModeInt(std::string mode_str)
{
  int mode;
  if (mode_str == TriggerMode[Freerun])
  {
    mode = Freerun;
  }
  else if (mode_str == TriggerMode[FixedRate])
  {
    mode = FixedRate;
  }
  else if (mode_str == TriggerMode[Software])
  {
    mode = Software;
  }
  else if (mode_str == TriggerMode[SyncIn0])
  {
    mode = SyncIn0;;
  }
  else if (mode_str == TriggerMode[SyncIn1])
  {
    mode = SyncIn1;
  }
  else if (mode_str == TriggerMode[SyncIn2])
  {
    mode = SyncIn2;
  }
  else if (mode_str == TriggerMode[SyncIn3])
  {
    mode = SyncIn3;
  }
  else if (mode_str == TriggerMode[SyncIn4])
  {
    mode = SyncIn4;
  }
  else if (mode_str == TriggerMode[Action0])
  {
    mode = Action0;
  }
  else if (mode_str == TriggerMode[Action1])
  {
    mode = Action1;
  }
  return mode;
}

If the input string argument carries the unrecognized mode, the function returns an undefined integer mode.

munmap_chunk(): invalid pointer on api_.start() in mono_camera.cpp

The same thing happens when using the newer vimba API, where the same error is thrown on

m_system.Startup();

Where m_system is initialized as follows

    AVT::VmbAPI::VimbaSystem &       m_system(AVT::VmbAPI::VimbaSystem::GetInstance()) ;                   // A reference to our Vimba singleton
    m_system.Startup();

Issue cross posted in original repo as well: srv#33

No image data in the published topic

Hey there,

I am using ROS noetic and I deployed your drivers by extracting them and making them into package by catkin workspace. The drivers do run (I had to manually edit GUID in Roslaunch file) and they do publish a camera/image-raw topic but when we try to view it with rqt_image_view - we dont have any images.

The camera works fine in Vimba Viewer SDK run from terminal. So SDK install is fine.

Can you point us in right direction to get this working?

The sudo install version of this same package gives us error of not able to start continuous capturing of images.

Problem with camera info message after process of camera calibration

I'm using a mako G319 camera whose maximum resolution is 1536x2064. I applied binning to reduce the resolution by four times, that is, to 384x516. When performing the calibration of the set (camera and lenses) the calibration parameters were loaded and the camera info of the camera driver is published as follows:
height: 1544
width: 2064
distortion_model: "plumb_bob"
D: [-0.097715, 0.08086, -0.003701, 0.001999, 0.0]
K: [299.54396, 0.0, 254.14465, 0.0, 300.14093, 183.94307, 0.0, 0.0, 1.0]
A: [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
P: [298.52789, 0.0, 255.89954, 0.0, 0.0, 300.0076, 182.47257, 0.0, 0.0, 0.0, 1.0, 0.0]
binning_x: 4
binning_y: 4

As a result, the rectified image is distorted and approximately one-quarter of the actual size. I created a new publish for the camera info with the resolution considering the binning applied as follows:
height: 384
width: 516
distortion_model: "plumb_bob"
D: [-0.097715, 0.08086, -0.003701, 0.001999, 0.0]
K: [299.54396, 0.0, 254.14465, 0.0, 300.14093, 183.94307, 0.0, 0.0, 1.0]
A: [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
P: [298.52789, 0.0, 255.89954, 0.0, 0.0, 300.0076, 182.47257, 0.0, 0.0, 0.0, 1.0, 0.0]
binning_x: 0
binning_y: 0

After this last change, the image was correctly rectified and was as expected. Is there a way to publish the correct camera info without having to republish it by changing resolution and binning? Could there be an error during the calibration process that led to this issue?

Gain cannot be set

I cannot set the gain in dynamic reconfigure. I am getting the following warnings when the camera node is launched.

[ WARN] [1601656937.760431651]: [/cam_vo]: Could not get feature Gain
Error: Not found.
[ WARN] [1601656937.764869844]: [/cam_vo]: Could not get feature DecimationHorizontal
Error: Not found.
[ WARN] [1601656937.764939937]: [/cam_vo]: Could not get feature DecimationVertical
Error: Not found.
[ WARN] [1601656937.770969267]: [/cam_vo]: Could not get feature PtpMode
Error: Not found.
[ WARN] [1601656937.777396508]: [/cam_vo]: Could not get feature IrisAutoTarget
Error: Not found.
[ WARN] [1601656937.777619918]: [/cam_vo]: Could not get feature IrisMode
Error: Not found.
[ WARN] [1601656937.777709050]: [/cam_vo]: Could not get feature IrisVideoLevelMax
Error: Not found.
[ WARN] [1601656937.777808284]: [/cam_vo]: Could not get feature IrisVideoLevelMin

Any idea about what this could be related.

Improve rosout/logging output

Currently there is either way too much debug prints, or too little.
Improve the logging/console output so that the default output is useful without being too verbose.

Resolution is wrong when using binning / decimation.

First of all, what is the difference between binning and decimation ?

I believe decimation_x and binning_x will reduce the width. And I believe decimation_y and binning_y will reduce the height. Am I right ? But

When setting the launch parameters :

  • binning_x and binning_y to 2
    OR
  • decimation_x and decimation_y to 2

I believe that the values of the parameters width and height should be divided by 2 as well. Because those values will be outputted in the camera_info topic. am I right ?

It works fine for the y values (height) but doesn't for the x values (width). Setting the width to half will crop the image half just like if the decimation happened after the cropping which shouldn't be the case.


Config that works :

  • binning_x and binning_y to 2 OR decimation_x and decimation_y to 2
  • Height divided by 2 (1032)
  • Width unchanged (1544)

In the topic /camera_fx/image_raw we get images of good resolution : 1032x772

⚠️ But the reported resolution in /camera_fx/camera_info is wrong, giving the values given as parameters : 1032x1544.


Have you ever had this problem ?

Thanks !

Update Launch Files

  • Add some args for easier inclusion in other launch files
  • Add some model-specific launch files like the velodyne driver. Mako G-319C launch file will be provided.

why I only get the grayscale image?

I have a camera: avt-camera GT6600C(Mono camera). When I ran avt_vimba_camera when I ran mono_camera_nodelet.launch in this path, it is grayscale image even if I ran ROSRUN_NAMESPACE=camera rosrun image_proc image_proc, it made no sense. Can u tell me what is the problem?

Frequent trashed frames

Seems to happen about every 5-10 seconds with the Mako G-319C. It puts a dent in the output frequency of the driver since it appears as though some frames are not coming through correctly.

06-04-2020 10:09:09.450 [T] 1900 Data.Buffer ==NULL
06-04-2020 10:09:09.450 [T] Trashed frame! 3156,1 0
06-04-2020 10:09:09.500 [T] 1900 Data.Buffer ==NULL
06-04-2020 10:09:09.500 [T] Trashed frame! 3157,1 0
06-04-2020 10:09:09.550 [T] 1900 Data.Buffer ==NULL
ERR: FrameObserver VmbFrameStatusIncomplete
06-04-2020 10:09:09.550 [T] Trashed frame! 3158,1 0
06-04-2020 10:09:14.127 [T] Trashed frame! 3249,1481 0
ERR: FrameObserver VmbFrameStatusIncomplete
06-04-2020 10:09:14.837 [T] Trashed frame! 3263,2137 0
ERR: FrameObserver VmbFrameStatusIncomplete
06-04-2020 10:09:15.024 [T] Trashed frame! 3267,1117 0
ERR: FrameObserver VmbFrameStatusIncomplete
06-04-2020 10:09:28.899 [T] 1900 Data.Buffer ==NULL
06-04-2020 10:09:28.900 [T] Trashed frame! 3545,1 0
06-04-2020 10:09:28.949 [T] 1900 Data.Buffer ==NULL
06-04-2020 10:09:28.950 [T] Trashed frame! 3546,1 0
06-04-2020 10:09:28.999 [T] 1900 Data.Buffer ==NULL
06-04-2020 10:09:29.000 [T] Trashed frame! 3547,1 0

Multiple Launch Files

RLException: multiple files named [mono_camera.launch] in package [avt_vimba_camera]:
- /opt/ros/melodic/share/avt_vimba_camera/mono_camera.launch
- /opt/ros/melodic/share/avt_vimba_camera/launch/mono_camera.launch
Please specify full path instead
The traceback for the exception was written to the log file

Update CI

Currently there is an old unused TravisCI file. Setup CircleCI like most of our other open-source ROS repos.

Unable to get color image on Mako G319

When using the Mako G319 I get a grayscale image instead of the color one I see in VimbaViewer using the same format. The only way for me to get a color image with this ROS driver is to use RGB8 or BGR8 but that requires 24 bits per pixel and throttles the speed a lot. Is there a way to get a color image using the 8 bits per pixel option?

Release new ROS1 version

Release a new ROS2 version on both Melodic and Noetic.
Then use this new version as the basis for porting to ROS2.

USB camera, error "Could not start Vimba system: TL not loaded."

Hello! I plugged my USB Alvium 1800 U-319c camera and installed this ROS driver on my ubuntu 20.04 with ROS Noetic according to the instruction sudo apt install ros-$ROS_DISTRO-avt-vimba-camera.

When I do roslaunch avt_vimba_camera mono_camera.launch on a sourced terminal, it says: [ERROR] [1614724799.379538586]: [Vimba System]: Could not start Vimba system: TL not loaded.

Then, I downloaded Vimba 4.2 from https://www.alliedvision.com/en/products/software.html, installed it, and set up the proper path to GENICAM_GENTL64_PATH so that when I do echo $GENICAM_GENTL64_PATH it gives me the correct path. However, when I try roslaunch avt_vimba_camera mono_camera.launch, it gives me the same error.

I can add that when I open the VimbaViewer from /vimba/Vimba_4_2/Tools/Viewer/Bin/x86_64bit, everything works - I can see the listed camera and the video. But when I make for example /vimba/Vimba_4_2/VimbaCPP/Examples/ListCameras/Build/Make and then run ./vimba/Vimba_4_2/VimbaCPP/Examples/ListCameras/Build/Make/binary/x86_64bit/ListCameras I get almost the same error Could not start system. Error code: -16(TL not loaded.)

Please help! How can successfully roslaunch your driver on ROS?

How to configure PTP with Mako G-319C

Hi,

This issue may not be related to the Vimba camera driver.

Our team is hoping to enable PTP on our Vimba cameras, all of Mako G-319C model. We want to use our host computer as the PTP master clock and cameras as the slave. The cameras are connected to host computer via an Ethernet switch.

Following are our current procedures:

  1. Set the PtpMode attribute in VimbaViewer to Slave
  2. Start PTP service on our host computer.

Problems we are encountering:
The PtpStatus attribute in VimbaViewer is stuck at Listening which means it keeps looking for the best master clock on the network.

I'm curious to know if you have had any similar issues with setting up PTP on Vimba cameras?

What should be the expected output I am looking for to make sure PTP is properly synchronized.

Thank you!

Driver stamps images with ROS time rather than camera time

The frameCallback method stamps new images with rost_time = ros::Time::now();
We are synchronizing the clocks of all our cameras using PTP and it would therefore be of interest to stamp the images with the timestamp provided by the camera, which can be easily accessed as ((double)vimba_frame_ptr->GetTimeStamp())/((double)freq)

Seems like it could be a small fix to add a ROS parameter that would allow the user to select which clock to use (with the default being the ros_time for compatibility).

Remove stereo camera code

Upon review of the stereo camera code, it doesn't appear to be doing anything special or vastly different than the mono camera code.
It does seem to use a buffer to sync images and publish them at the same time, but the same result could likely be achieved by launching two mono camera drivers and using message_filters on the user side, or other means such as PTP sync, hardware/ethernet triggers, etc.

I seems to be worth it to remove the stereo code in order to reduce code duplication and maintenance efforts.

camera Ros synchronization

Hi,
I'm actually using a Mako camera and I should synchronize it with ros time in order to get images having their timestamp at acquisition time. For the moment I have found a way to get the camera time at acquisition instant instead of reception one but now I would like to give to the camera the correct ros time.

A first idea I have is to set the camera timer to 0 when it is initialized saving also the ros time. Then when a frame is acquired give to it the timestamp obtained as sum of the camera time at acquisition instant and the previously saved ros time.
Is there a better way to perform such operation?

Thanks in advance and sorry if this is not the right place to ask a question.

Driver does not support Trigger over Ethernet

We are working with Mako G-319C cameras and would like to use their trigger over ethernet capability to synchronize multiple cameras. This can supposedly be achieved by using Action Commands. Does anybody have experience using this capability?
It seems like it will require several changes:

  • Adding the TriggerMode Action0 and Action1
  • Adding parameters for ActiondDeviceKey, ActionGroupKey and ActionGroupMask
  • Creating the capability to send the corresponding Action Commands -- this may be best done as a separate ROS node that can trigger any number of cameras.

My students and I are willing to put in the effort to implement this, but before we get started, it would be good to discuss the approach with somebody who is more familiar with the details of the current implementation.

error: ‘avt_vimba_camera::AvtVimbaCamera::Config’ {aka ‘class avt_vimba_camera::AvtVimbaCameraConfig’} has no member named ‘offset_y’; did you mean ‘roi_offset_y’?

Hi,

Thank you for the amazing driver first of all!

I'm encountering this following error when compiling (catkin_make) the latest GitHub version. I'm using Vimba_5.0 library in Noetic with Mako g-319c. I suppose these errors come from refactoring?

/workspace/src/avt_vimba_camera/src/avt_vimba_camera.cpp:917:14: error: ‘avt_vimba_camera::AvtVimbaCamera::Config’ {aka ‘class avt_vimba_camera::AvtVimbaCameraConfig’} has no member named ‘action_device_key’
  917 |   if (config.action_device_key != config_.action_device_key || on_init_) {
      |              ^~~~~~~~~~~~~~~~~
/workspace/src/avt_vimba_camera/src/avt_vimba_camera.cpp:917:43: error: ‘avt_vimba_camera::AvtVimbaCamera::Config’ {aka ‘class avt_vimba_camera::AvtVimbaCameraConfig’} has no member named ‘action_device_key’
  917 |   if (config.action_device_key != config_.action_device_key || on_init_) {
      |                                           ^~~~~~~~~~~~~~~~~
/workspace/src/avt_vimba_camera/src/avt_vimba_camera.cpp:919:47: error: ‘avt_vimba_camera::AvtVimbaCamera::Config’ {aka ‘class avt_vimba_camera::AvtVimbaCameraConfig’} has no member named ‘action_device_key’
  919 |     setFeatureValue("ActionDeviceKey", config.action_device_key);
      |                                               ^~~~~~~~~~~~~~~~~
/workspace/src/avt_vimba_camera/src/avt_vimba_camera.cpp:921:14: error: ‘avt_vimba_camera::AvtVimbaCamera::Config’ {aka ‘class avt_vimba_camera::AvtVimbaCameraConfig’} has no member named ‘action_group_key’
  921 |   if (config.action_group_key != config_.action_group_key || on_init_) {
      |              ^~~~~~~~~~~~~~~~
/workspace/src/avt_vimba_camera/src/avt_vimba_camera.cpp:921:42: error: ‘avt_vimba_camera::AvtVimbaCamera::Config’ {aka ‘class avt_vimba_camera::AvtVimbaCameraConfig’} has no member named ‘action_group_key’
  921 |   if (config.action_group_key != config_.action_group_key || on_init_) {
      |                                          ^~~~~~~~~~~~~~~~
/workspace/src/avt_vimba_camera/src/avt_vimba_camera.cpp:923:46: error: ‘avt_vimba_camera::AvtVimbaCamera::Config’ {aka ‘class avt_vimba_camera::AvtVimbaCameraConfig’} has no member named ‘action_group_key’
  923 |     setFeatureValue("ActionGroupKey", config.action_group_key);
      |                                              ^~~~~~~~~~~~~~~~
/workspace/src/avt_vimba_camera/src/avt_vimba_camera.cpp:925:14: error: ‘avt_vimba_camera::AvtVimbaCamera::Config’ {aka ‘class avt_vimba_camera::AvtVimbaCameraConfig’} has no member named ‘action_group_mask’
  925 |   if (config.action_group_mask != config_.action_group_mask || on_init_) {
      |              ^~~~~~~~~~~~~~~~~
/workspace/src/avt_vimba_camera/src/avt_vimba_camera.cpp:925:43: error: ‘avt_vimba_camera::AvtVimbaCamera::Config’ {aka ‘class avt_vimba_camera::AvtVimbaCameraConfig’} has no member named ‘action_group_mask’
  925 |   if (config.action_group_mask != config_.action_group_mask || on_init_) {
      |                                           ^~~~~~~~~~~~~~~~~
/workspace/src/avt_vimba_camera/src/avt_vimba_camera.cpp:927:47: error: ‘avt_vimba_camera::AvtVimbaCamera::Config’ {aka ‘class avt_vimba_camera::AvtVimbaCameraConfig’} has no member named ‘action_group_mask’
  927 |     setFeatureValue("ActionGroupMask", config.action_group_mask);
      |                                               ^~~~~~~~~~~~~~~~~
/workspace/src/avt_vimba_camera/src/avt_vimba_camera.cpp: In member function ‘void avt_vimba_camera::AvtVimbaCamera::updateGainConfig(avt_vimba_camera::AvtVimbaCamera::Config&)’:
/workspace/src/avt_vimba_camera/src/avt_vimba_camera.cpp:1041:14: error: ‘avt_vimba_camera::AvtVimbaCamera::Config’ {aka ‘class avt_vimba_camera::AvtVimbaCameraConfig’} has no member named ‘gain_auto_adjust_tol’; did you mean ‘gain_auto_tol’?
 1041 |   if (config.gain_auto_adjust_tol != config_.gain_auto_adjust_tol || on_init_) {
      |              ^~~~~~~~~~~~~~~~~~~~
      |              gain_auto_tol
/workspace/src/avt_vimba_camera/src/avt_vimba_camera.cpp:1041:46: error: ‘avt_vimba_camera::AvtVimbaCamera::Config’ {aka ‘class avt_vimba_camera::AvtVimbaCameraConfig’} has no member named ‘gain_auto_adjust_tol’; did you mean ‘gain_auto_tol’?
 1041 |   if (config.gain_auto_adjust_tol != config_.gain_auto_adjust_tol || on_init_) {
      |                                              ^~~~~~~~~~~~~~~~~~~~
      |                                              gain_auto_tol
/workspace/src/avt_vimba_camera/src/avt_vimba_camera.cpp:1044:52: error: ‘avt_vimba_camera::AvtVimbaCamera::Config’ {aka ‘class avt_vimba_camera::AvtVimbaCameraConfig’} has no member named ‘gain_auto_adjust_tol’; did you mean ‘gain_auto_tol’?
 1044 |                     static_cast<VmbInt64_t>(config.gain_auto_adjust_tol));
      |                                                    ^~~~~~~~~~~~~~~~~~~~
      |                                                    gain_auto_tol

Thank you!

Remove Sync Node

I just realized that the sync node doesn't really do anything other than print to the console if two image feeds lose synchronization.
I think it makes sense to remove the sync node, since it serves very little practical purpose.

G-319 Frame rate issues

I'm running two G-319 with this driver - the Frame rate is set to 35 Hz, the driver says it can "only set it to 33" which is fine. After just a few seconds the frame rate starts to drop until it eventually gets to about 3.6 Hz (according to rostopic hz).

Is this a known issue?

Thank you

Issue of the published topic

When I launched the launch.file, it showed:
[ WARN] [1600431979.605538713]: The input topic '/camera/image_raw' is not yet advertised
[ WARN] [1600431979.607691868]: The input topic '/camera/camera_info' is not yet advertised
[ WARN] [1600431983.054640699]: [/camera]: Feature PixelFormat is available now.
[ WARN] [1600431983.097872189]: [/camera]: Could not get feature IrisAutoTarget
Error: Not found.
[ WARN] [1600431983.098439489]: [/camera]: Could not get feature IrisMode
Error: Not found.
[ WARN] [1600431983.099186270]: [/camera]: Could not get feature IrisVideoLevelMax
Error: Not found.
[ WARN] [1600431983.099850811]: [/camera]: Could not get feature IrisVideoLevelMin
Error: Not found.
I waant to know how to solve the problem of the topic: /camera/image_raw and /camera/camera_info

Improve README

  • Explain various nodes
  • Install instructions
  • ROS API
  • Brief examples on how to use
  • Note about dynamic reconfigure and launch params coinciding.

[camera-3] process has died

When I have the roslaunch avt_vimba_camera mono_camera.launch , I am getting the following error.

auto-starting new master
process[master]: started with pid [11738]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 0811afbc-7ac3-11ea-91a1-a86daa182d15
process[rosout-1]: started with pid [11751]
started core service [/rosout]
process[camera/image_proc-2]: started with pid [11768]
process[camera-3]: started with pid [11769]
[camera-3] process has died [pid 11769, exit code -11, cmd /home/sreejith/catkin_ws/devel/lib/avt_vimba_camera/mono_camera_node __name:=camera __log:=/home/sreejith/.ros/log/0811afbc-7ac3-11ea-91a1-a86daa182d15/camera-3.log].
log file: /home/sreejith/.ros/log/0811afbc-7ac3-11ea-91a1-a86daa182d15/camera-3*.log

The same package in another computer works fine with the Allied Vision Camera. Can anyone have any ideas what might be the problem in my pc with this package?

`/camera/image_raw` header contains no useful information

Hi,

Thank you for the amazing driver support!

When I ran roslaunch avt_vimba_camera Mako_G-319.launch ip:=192.168.0.XXX, the generated /camera/image_raw contains no useful header.

Reproduce:

roslaunch avt_vimba_camera Mako_G-319.launch ip:=192.168.0.XXX
rostopic echo /camera/image_raw/header

A sample output is the following:

seq: 31
stamp:
  secs: 0
  nsecs:         0
frame_id: ''

Thank you!

Triggering avt-camera via GPS

Hi:
I had a ublox GPS and I would like to trigger my avt-camera via PPS for synchronization. But for the setup in the driver of avt-camera, I do not know how to achieve it. Could you please tell me how to do the setup to achieve this function? Thx!
I used ROS melodic.

ROS2 Version

I'm wondering if AutonomouStuff is interested in maintaining a ROS2 version of this driver. One has been created at https://github.com/neil-rti/avt_vimba_camera by @neil-rti but I'm not sure that RTI wants to maintain it long-term. If RTI does want to maintain the ROS2 version, we should clarify on this repo that RTI's should be used for ROS2 and vice versa. If not, a PR should be made from Neil's repo to this repo (@icolwell-as - could you make a ros2 branch in case this is the desired outcome?).

more PixelFormat support

Hi,
I will use a Mako G192C camera, but the raw pixelformat is BayerGB8 (BayerGB10 also available).
In avt_vima_camera.cpp, I can read that implemented pixelformats are in:
static const char* PixelFormatMode[] = {
"Mono8",
"Mono12",
"Mono12Packed",
"BayerRG8",
"BayerRG12Packed",
"BayerRG12",
"RGB8Packed",
"BGR8Packed"};
Is it possible to add other bayer formats?
Or, how could I do it myself?
Thanks

ROS1: Camera feature names differ for USB Alvium series

I'm using an Alvium 1800 U-1236c USB camera in ROS Melodic. I noticed that some feature configuration names are incorrect in the main avt_vimba_camera.cpp source file.

When the node tries to configure the camera, ROS warning messages pop up for certain features like:

Could not get feature AcquisitionFrameRateAbs, your camera probably doesn't support it.
Could not get feature TriggerDelayAbs, your camera probably doesn't support it.
Could not get feature ExposureTimeAbs, your camera probably doesn't support it.

I'm not sure if feature names differ between the different cameras, but Alvium's documentation refer to some feature names that conflict with those in the config functions in avt_vimba_camera.cpp.
e.g AcquisitionFrameRateAbs -> AcquisitionFrameRate and ExposureTimeAbs -> ExposureTime

Can't find the GUID of the usb camera.

Hi,

I'm pretty new to ros.
I'm currently working with the following camera: alvium U-319C.
When I try to roslaunch mono_camera.launch, the following error is showing: Can't connect to the camera: at least GUID or IP need to be set.

Following one or two tutorial, i found that the GUID could be the serial number , or that the GUID can be found with vimba Viewer.
The issue with that the S/N is only 5 character long and does not solve the problem.
The other issues is that the Vimba Viewer does not show the GUID.

Some information about how I can find the GUID would be appreciated.
Link to tutorial that could help me to understand more how to work with this package would also be nice.

Thank you for your time and your support,
Sam

Cannot get Iris related features

Hi,

When I run the driver using G-319.launch, following warnings related to Iris show up. I am compiling using catkin_make in ROS noetic using Vimba 5.0 library and G-319C camera. Compiling under 2c37ec8

[ WARN] [1637874022.257594157]: [/camera]: Could not get feature IrisAutoTarget
 Error: Not found.
[ WARN] [1637874022.257746718]: [/camera]: Could not get feature IrisMode
 Error: Not found.
[ WARN] [1637874022.257874293]: [/camera]: Could not get feature IrisVideoLevelMax
 Error: Not found.
[ WARN] [1637874022.258003698]: [/camera]: Could not get feature IrisVideoLevelMin
 Error: Not found.

Thank you! Any insights would be appreciated!

when I run the "roslaunch avt_vimba_camera mono_camera.launch ",I met the problem

tsinghualion@tsinghualion-Nuvo-6108GC:~/catkin_ws$ roslaunch avt_vimba_camera mono_camera.launch
... logging to /home/tsinghualion/.ros/log/8eea1734-a937-11ea-85dc-78d00426c89d/roslaunch-tsinghualion-Nuvo-6108GC-6465.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://tsinghualion-Nuvo-6108GC:45533/

SUMMARY

PARAMETERS

  • /camera/acquisition_mode: Continuous
  • /camera/acquisition_rate: 10
  • /camera/binning_x: 1
  • /camera/binning_y: 1
  • /camera/camera_info_url: file:///home/tsin...
  • /camera/decimation_x: 1
  • /camera/decimation_y: 1
  • /camera/exposure: 1000
  • /camera/exposure_auto: Continuous
  • /camera/frame_id: left_optical
  • /camera/gain: 0
  • /camera/gain_auto: Continuous
  • /camera/guid: 06-0536913354
  • /camera/height: 1440
  • /camera/ip: 192.168.1.210
  • /camera/pixel_format: BayerRG8
  • /camera/show_debug_prints: True
  • /camera/stream_bytes_per_second: 45000000
  • /camera/trig_timestamp_topic:
  • /camera/trigger_source: FixedRate
  • /camera/whitebalance_auto: Continuous
  • /camera/width: 1920
  • /camera/x_offset: 0
  • /camera/y_offset: 0
  • /rosdistro: kinetic
  • /rosversion: 1.12.14

NODES
/
camera (avt_vimba_camera/mono_camera_node)

auto-starting new master
process[master]: started with pid [6477]
ROS_MASTER_URI=http://tsinghualion-Nuvo-6108GC:11311/

setting /run_id to 8eea1734-a937-11ea-85dc-78d00426c89d
process[rosout-1]: started with pid [6490]
started core service [/rosout]
process[camera-2]: started with pid [6503]
[camera-2] process has died [pid 6503, exit code -11, cmd /home/tsinghualion/catkin_ws/devel/lib/avt_vimba_camera/mono_camera_node __name:=camera __log:=/home/tsinghualion/.ros/log/8eea1734-a937-11ea-85dc-78d00426c89d/camera-2.log].
log file: /home/tsinghualion/.ros/log/8eea1734-a937-11ea-85dc-78d00426c89d/camera-2*.log

ROS1: Dynamic exposure time limit?

I'm using an Alvium 1800 U-1236c USB camera in ROS Melodic. I am able to successfully use dynamic_reconfigure to update the camera's exposure time. However, I noticed that I can't set the value to less than 180 microseconds for some reason. I couldn't find anything in the docs that indicates a minimum exposure limit.

Not sure why there would be a minimum exposure time using this driver. I got a little lost and wasn't able to find much within the Vimba library. Here is a sample output after running dynamic_reconfigure for different exposure values:

Tried to set ExposureTime to 180 but the camera used 178.465 instead
Tried to set ExposureTime to 100 but the camera used 178.465 instead
Tried to set ExposureTime to 200 but the camera used 198.99 instead
Tried to set ExposureTime to 300 but the camera used 301.616 instead
Tried to set ExposureTime to 100 but the camera used 301.616 instead

Possibility of this ROS driver for USB3 camera

Hi:

I used AV Alvium 1800U camera but the problem is that I do not have IP for my AVT-camera. Do you know how to use this driver for my usb camera? Is it enough if I just use the GUID?
Thx!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.