Closed boitumeloruf closed 3 weeks ago
Just tested your package with a Ximea USB3 camera. I was impressed by the quality of error messages I got, nice job. Are you still looking for help implementing this, or has work already begun? PS: I'm the author/maintainer of the FLIR Spinnaker driver which is also GeniCam based.
Thank you. No, we have not started work on USB3 camera support. Mainly due to the fact that we don't have a suitable camera with which to test it.
So we would be happy if you could support us. We already have an idea of how we would structure the code (see description above). Maybe you can start a new branch with support for USB3 cameras.
Is the dev for USB3 camera still at the same stage ("to be started") ? I'm ready to help but I'd be delighted to hear what you think is the quickest way to achieve the goal.
I've started to establish the USB3 equivalence of what you've already established for GigE cameras. I'm having a few problems (I connect to my camera but don't get a video stream, the camera disconnection must be going wrong because I can't launch my node twice - to reconnect to my camera, I have to reboot my computer; the camera is also inaccessible for the aravis viewer). I imagine that your knowledge of aravis would be a great help in resolving them quickly.
Great, thank you. Can you please push your code into a new Branch called 'Usb3Support' so that I can have a look at it?
For sure. I'll do that on Tuesday (I'm teleworking and I don't have the PC with me). I had prepared a ‘usb3’ branch (which I'm going to rename ‘usb3support’) but I didn't want to push it without your prior approval.
So I have looked at your code here: https://github.com/lr-sncf/camera_aravis2/blob/usb3support/camera_aravis2/src/camera_driver_uv.cpp
Thank you for your effort.
At this point I see two possible problems:
Hope this helps. I don't have any experience using Aravis with USB3 cameras. Maybe someone else has additional ideas.
There is no 'arv_camera_uv_select_stream_channel' method. The aravis documentation is poor on that point. I don't clearly understand what this stream selection is.
In my camera XML file, I do not see any attribute "DeviceStreamChannel" nor "GevStreamChannel"
Ok. Have you tried my second suggestion?
Yes. After commenting this line, I still have the same behaviour. I try now to find a quite simple example of an aravis based usb3 driver to see how the connection is managed.
I just push an updated version. This version is working on my personal computer with another usb3 camera (same vendor, same model). I'll test it next week at work.
The code is now working on my 2 machines with 2 different cameras. On the first machine I have used, I had to install aravis manually with meson (aravis 0.8.33).
Great! Can you please open a Pull Request, so I can merge it into this repository?!
Hi @lr-sncf, I have refactored and cleaned up the code. Could you please test the current implementation in branch 'usb3support', if it still runs with your cameras. That would be great, thank you!
Hi all, is there anyone who can test the current implementation in branch 'usb3support' on a GenICam compatible USB camera?
I have a ximea camera that I could test with but I can't access it for the next two weeks (house got flooded, camera survived though).
I've got a ximea (MQ042MG-CM, RGB+NIR CFA) USB3 camera here. I don't have ROS2 running on my machine yet, but I'll see what I can do.
I'll update you on this next week.
Hi all, I was finally able to test it with a borrowed USB3 camera and it worked fine with me. Happy to hear about other test during this week and then I will merge it into the 'devel' branch sometime next week.
Hi all, I have now merged the changes and the new feature into 'devel' and 'main'. With this, I have closed the issue. If any further problems arise, feel free to reopen it again.
I am planning for another official release in mid of December.
Thank you for the merge @boitumeloruf!
I am late to the game, but I can confirm that this branch worked with my XIMEA MQ042MG-CM USB3 camera.
Tested the main branch with a XIMEA GmbH-MQ013CG-E2 (USB3) camera and it works fine.
So far the development was only done for GigE Vision cameras as we have only such cameras to test it. We are happy for some help to extend camera_aravis2 for USB3 Vision cameras.
For this, we have already created a corresponding node class, i.e.
CameraDriverUv
incamera_driver_uv.cpp
. Our idea is to create another class calledCameraDriver
which subclassesCameraAravisNodeBase
and which serves as a parent forCameraDriverGv
andCameraDriverUv
. In this, all common functionality should be implemented. Only the code, which is specific to GigE and USB3 cameras should beCameraDriverGv
andCameraDriverUv
, respectively.