Camera_aravis ROS node with Allied Vision ALVIUM 1800 U-040c

Hi all,

I have the camera in object connected through usb on Linux pc with Ubuntu 20.04 and ROS noetic.

My goal would be to use the camera_aravis node (a ROS wrapper of the aravis library) to publish the acquired images on ROS topics.

The mentioned node is able to recognize the connected camera. However, it’s throwing exceptions when it tries to discover the camera features:

~$ rosrun camera_aravis cam_aravis _guid:="Allied Vision-01M0C"
[ INFO] [1649869028.430826909]: Initializing nodelet with 4 worker threads.
[ INFO] [1649869028.434634472]: Attached cameras:
[ INFO] [1649869029.441764273]: # Interfaces: 3
[ INFO] [1649869029.441922859]: # Devices: 3
[ INFO] [1649869029.442044405]: Device0: Allied Vision-01M0C
[ INFO] [1649869029.447255022]: Opening: Allied Vision-01M0C
[ INFO] [1649869030.498136604]: Opened: (null)-(null)
[ INFO] [1649869030.551943001]: Feature Root is 1
[ INFO] [1649869030.552093867]: Feature ImageProcessingControl is 1
[ INFO] [1649869030.552198025]: Feature Sharpness is 1
[ INFO] [1649869030.552643269]: Feature RegSharpnessInc is 1
[ INFO] [1649869030.552729498]: Feature Device is 1
[ INFO] [1649869030.552804599]: Feature RegSharpnessIncAvail is 1
[ INFO] [1649869030.552929367]: Feature RegSharpnessIncImpl is 1
[ INFO] [1649869030.553250062]: Feature RegSharpnessMax is 1
[ INFO] [1649869030.553312946]: Feature Device is 1
[ INFO] [1649869030.553371490]: Feature RegSharpnessMaxAvail is 1
[ INFO] [1649869030.553424409]: Feature RegSharpnessMaxImpl is 1
[ INFO] [1649869030.553719958]: Feature RegSharpnessMin is 1
[ INFO] [1649869030.553795372]: Feature Device is 1
[ INFO] [1649869030.553862351]: Feature RegSharpnessMinAvail is 1
[ INFO] [1649869030.553959285]: Feature RegSharpnessMinImpl is 1
[ INFO] [1649869030.554202938]: Feature RegSharpness is 1
[ INFO] [1649869030.554255260]: Feature Device is 1
[ INFO] [1649869030.554300472]: Feature SharpnessLocked is 1
[ INFO] [1649869030.554342472]: Feature TLParamsLocked is 1
[ INFO] [1649869030.554389587]: Feature RegSharpnessLocked is 1
[ INFO] [1649869030.554437077]: Feature RegSharpnessAvail is 1
[ INFO] [1649869030.554479221]: Feature RegSharpnessImpl is 1
[ INFO] [1649869030.554537941]: Feature ContrastControl is 1
[ INFO] [1649869030.554601040]: Feature ContrastAuto is 1
[ INFO] [1649869030.555085147]: Feature RegContrastAuto is 0

(process:2160): Aravis-CRITICAL **: 10:57:10.555: arv_gc_feature_node_is_available: assertion 'error == NULL || *error == NULL' failed
[ INFO] [1649869030.555291354]: Feature Device is 0

(process:2160): Aravis-CRITICAL **: 10:57:10.555: arv_gc_feature_node_is_available: assertion 'error == NULL || *error == NULL' failed
[ INFO] [1649869030.555381340]: Feature ContrastAutoAvail is 0

(process:2160): Aravis-CRITICAL **: 10:57:10.555: arv_gc_feature_node_is_available: assertion 'error == NULL || *error == NULL' failed
[ INFO] [1649869030.555481881]: Feature RegContrastAutoContinuousAvail is 0

(process:2160): Aravis-CRITICAL **: 10:57:10.555: arv_gc_feature_node_is_available: assertion 'error == NULL || *error == NULL' failed
[ INFO] [1649869030.555582648]: Feature RegContrastAutoOnceAvail is 0

(process:2160): Aravis-CRITICAL **: 10:57:10.555: arv_gc_feature_node_is_available: assertion 'error == NULL || *error == NULL' failed
[ INFO] [1649869030.555669322]: Feature RegContrastAutoOffAvail is 0

(process:2160): Aravis-CRITICAL **: 10:57:10.555: arv_gc_feature_node_is_available: assertion 'error == NULL || *error == NULL' failed
[ INFO] [1649869030.555768076]: Feature RegContrastAutoAvail is 0

(process:2160): Aravis-CRITICAL **: 10:57:10.555: arv_gc_feature_node_is_available: assertion 'error == NULL || *error == NULL' failed
[ INFO] [1649869030.555884186]: Feature ContrastAutoImpl is 0

(process:2160): Aravis-CRITICAL **: 10:57:10.555: arv_gc_feature_node_is_available: assertion 'error == NULL || *error == NULL' failed
[ INFO] [1649869030.555999717]: Feature RegContrastAutoContinuousImpl is 0

do you have any idea on how to fix this issue?

Hi,

This is an issue in ROS. The error parameter should be either a NULL pointer or a pointer to a NULL pointer. That is how error handling is designed in Glib.

Cheers.