Giter Site home page Giter Site logo

Comments (8)

tonyromarock avatar tonyromarock commented on June 3, 2024

Hi @bonjiman,

thank you for using the camera_aravis package.
I'll give you some pointers on what you could try to get an image published from your Imperx P67-C1911C camera.

Create a .launch file similar to camera_aravis.launch and make sure to adjust the parameters to conform with the valid settings available for your camera.

This often means setting the serial_no to the device name used for the camera in aravis. You can find this by running arv-tool-0.8 in the terminal and copying the printed name (excluding the IP address in parentheses). If left empty, it uses the first available genicam camera available in the network.

You also want to select a valid pixel_format. Here you can also use the arv-tool-0.8 to download the genicam XML file stored on the camera. For this call arv-tool-0.8 --name=<device_name> genicam > <output_file>, where <device name> is the aravis name for the camera and <output_file> is the file, where you are going to write the genicam XML content to. In the file you can search for PixelFormat and find the available enum entries for your camera (probably something like Mono8 and BayerRG8). This same information is maybe also available in the user manual of your camera.

Also make sure that the width and height are set to a valid range for your camera.

These four arguments have to be set correctly for the camera_aravis driver to work correctly on its default settings.

P.S. As you noticed, the package produces still quite a lot of output on the screen. You can set output="log" in your custom .launch file if you don't need the printed information for debugging purposes.

from camera_aravis.

kledom avatar kledom commented on June 3, 2024

@bonjiman Were you able to resolve your issue?

To add to @tonyromarock , I would like to note that the package in its current form only works with camera_aravis-0.6, which is included in the Ubuntu 20.04 Universe repository (sudo apt install aravis-tools).

from camera_aravis.

bonjiman avatar bonjiman commented on June 3, 2024

Hi everyone,

Sorry for the very response, but our design team pivoted away from the aforementioned camera since our competition was nearing. We're on the other end of that now, though, and I'm back to trying to get these Imperx cameras working in ROS.

I followed @tonyromarock 's tips to get things started, and I can confirm that fixed most of the issues related to the stream of error messages on startup. However, I seem to be running up against a new, weird issue where the nodelet crashes after printing "Number of supported stream channels 0.". Basically, on lines 552 and 555 of camera_aravis_nodelet.cpp, the camera aravis nodelet tries to pull DeviceStreamChannelCount and GevStreamChannelCount from the camera. Following @tonyromarock 's instructions, I dumped the XML file to my computer and checked all the Genicam fields of this camera. There are NO VALUES matching these XXXStreamChannelCount variables. Does this mean I won't be able to use camera aravis with my camera? Or maybe the number of supported streams is always 1?

Further, at the top of the dumped XML file, I see a reference to the fact that this camera uses Genicam's GenAPI version 1.1 with SFNC version 2.3.0. I checked this version of GenAPI, and there appear to be several changes that have been made since version 1.1 came out. Out of curiosity, does anyone know which version of GenAPI this camera_aravis ROS package uses/assumes? The SFNC version 2.3.0 standards state that the DeviceStreamChannelCount and GevStreamChannelCount are "Optional" parameters that may not be located on the camera.

Please let me know if anyone has anything to add.

from camera_aravis.

tonyromarock avatar tonyromarock commented on June 3, 2024

Hi @bonjiman,

Sorry to hear about the last minute changes on your project.

camera_aravis makes use of many camera features that are available in SFNC version 2.6.0.
We should therefore probably set the stream channel count to 1 if nothing else is given by DeviceStreamChannelCount or GevStreamChannelCount. All the cameras we've tested the ROS package had this camera feature implemented eventhough it is just optional.

To get the camera_aravis driver to work will unfortunately require you to make some changes directly in the code for any instances were different camera features are used in GenAPI 1.1 / SFNC 2.3

Are you able to upload the GenICam XML dump of your Imperx camera?
This might help me in finding other parts of the code, where you might run into similar issues.

from camera_aravis.

bonjiman avatar bonjiman commented on June 3, 2024

Thanks for the help, @tonyromarock.

I can upload the XML tomorrow morning (east coast USA time) when I have access to the camera.

I am not afraid to mess around with the existing code to get my specific application working, so if you are able to give me any more heads up after looking at the XML, then I think I'll be able to get it working.

I'm guessing the XXXStreamChannelCount variables are for devices that have multiple outputs? I'd imagine most cameras would have a value of 1 anyway

from camera_aravis.

bonjiman avatar bonjiman commented on June 3, 2024

@tonyromarock Here is the XML file of the camera. I had to change the file extension to .TXT to make GitHub happy to host the file, but you should be able to change it back to an .xml.
genicam_params.txt

from camera_aravis.

tonyromarock avatar tonyromarock commented on June 3, 2024

@bonjiman
Thank you for uploading the genicam XML file.

After looking at it, I think the only esssential change is where you mentioned around line 552, where you want num_streams_ to be 1 if the features DeviceStreamChannelCount and GevStreamChannelCount are not defined (which is the case for your camera).

All the other essential features are included in the XML file (DeviceSerialNumber,PixelFormat,...).

In case you wanted to use the ExtendedCameraInfo.msg, then you might have to change the name of some features. Your camera has a CurrentFrameTime feature, while we assume a ExposureTimeAbs or ExposureTime.

Check camera_aravis.launch on how to setup a launch file for your camera.

I hope this was helpful and let me know if you run into any issues!

from camera_aravis.

tonyromarock avatar tonyromarock commented on June 3, 2024

@bonjiman, were you able to get the driver working for your Imperx camera?
Would consider creating a PR of your updated code?

from camera_aravis.

Related Issues (7)

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.