srv / avt_vimba_camera

ROS Driver for AVT cameras using VIMBA SDK
23 stars 93 forks source link

Added feature for loading and saving camera_info from/to camera flash memory. #9

Open qbranchmaster opened 9 years ago

qbranchmaster commented 9 years ago

I often change my camera's lens, so there is a need to calibrate camera frequently. For camera calibration I use camera_calibration ROS package, but it is not handy to create ini or yml calibration file and then load them. I added feature for saving camera_info data in camera non-volatile memory. With this feature I run only camera_calibration package and it stores camera_info in camera memory.

miquelmassot commented 9 years ago

Hi @qbranchmaster! Thanks for the contribution. I've seen a similar code in prosilica_nodelet.cpp, however they were saving the calibration in the user memory of the camera. You are using the LUT memory, which can be used as color correction, for storing the calibration. I don't think that's a good idea.

I haven't find any feature on the camera to store calibration or to perform it. Could you explain your motivation on saving this data onboard the camera? I'm not really sure to totally understand you. If you change your lenses, you have to calibrate each time. Why do you load the calibration in the camera?

qbranchmaster commented 9 years ago

I know that using LUT memory for storing camera_info isn't a good idea. If somebody doesn't want to store camera_info in camera memory (because using it for other purposes), can still load camera_info from file.

When I asked Vimba user support about saving user data to camera memory, they told me that I have to use LUT memory. I admit, that I was surprised, but I wasn't able to find another solution in Vimba SDK to store data in camera memory.

Some time ago I was using prosilica_nodlet and this feature was very useful and handy for me. Using camera_calibration ROS package there was a possibility to perform fast camera calibration. New calibration data was saved automatically by service to camera memory and then automatically loaded. I didn't have to transfer ini or yml files between other computers.

I know that this feature which I implemented is rather specific. It is very useful for me. Maybe only for me. But I also think that it is alway good to have two possible solutions.

JWhitleyWork commented 4 years ago

This fork is no longer actively maintained. Please see our new fork at https://github.com/astuff/avt_vimba_camera, which has been updated and recently released.