FraunhoferIOSB / camera_aravis2

ROS2 camera driver for GenICam-based GigEVision and USB3Vision cameras.
BSD 3-Clause "New" or "Revised" License
15 stars 2 forks source link

how to acquire images when camera calibration hasn't been done yet? #43

Open rursprung opened 1 day ago

rursprung commented 1 day ago

the documentation doesn't seem to go into details about the camera-specific YAML file. however, it seems that it must contain the camera calibration data as otherwise the node doesn't start but fails with this error:

[camera_driver_uv-1] 1732350747.151898587: [camera_calibration_parsers] [WARN]  Exception parsing YAML camera calibration:
[camera_driver_uv-1] invalid node; first invalid key: "rows"
[camera_driver_uv-1] 1732350747.151932311: [camera_calibration_parsers] [ERROR] Failed to parse camera calibration from file [.../install/camera_aravis2/share/camera_aravis2/config/camera_info_cam1.yaml]
[camera_driver_uv-1] 1732350747.151983944: [camera_driver_cam1] [WARN]  Camera calibration file .../install/camera_aravis2/share/camera_aravis2/config/camera_info_cam1.yaml not found

this creates a bit of a chicken-and-egg problem: to do the camera calibration i need the images in a ROS topic so that i can use image_pipeline's camera_calibration functionality. but i can't seem to be able to start camera_aravis2 without having the calibration data 😅

what is the recommended way to go about this?

on another note: the latter error message about the file not being found is wrong & misleading as the file does exist at the specified location, it just failed to parse it (since it didn't find the content it was looking for).

i had set the file to the following content (removing all calibration related options):

image_width: 2048
image_height: 1536
camera_name: cam1