ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

dynamic reconfigure with libuvc_camera in jade?

asked 2015-11-06 13:23:35 -0500

lucasw gravatar image

updated 2020-11-21 11:34:12 -0500

When I launch the dynamic reconfigure plugin and click on my Logitech C930e running as a libuvc_camera camera_node, using jade and Ubuntu 14.04, I get this error:

 Traceback (most recent call last):
  File "/opt/ros/jade/lib/python2.7/dist-packages/rqt_reconfigure/node_selector_widget.py", line 267, in _selection_changed_slot
    self._selection_selected(index_current, rosnode_name_selected)
  File "/opt/ros/jade/lib/python2.7/dist-packages/rqt_reconfigure/node_selector_widget.py", line 217, in _selection_selected
    item_widget = item_child.get_dynreconf_widget()
  File "/opt/ros/jade/lib/python2.7/dist-packages/rqt_reconfigure/treenode_qstditem.py", line 154, in get_dynreconf_widget
    self._param_name_raw)
  File "/opt/ros/jade/lib/python2.7/dist-packages/rqt_reconfigure/dynreconf_client_widget.py", line 63, in __init__
    self.reconf.config_callback = self.config_callback
  File "/opt/ros/jade/lib/python2.7/dist-packages/dynamic_reconfigure/client.py", line 271, in set_config_callback
    self._config_callback(self.config)
  File "/opt/ros/jade/lib/python2.7/dist-packages/rqt_reconfigure/dynreconf_client_widget.py", line 86, in config_callback
    widget.update_value(config[widget.param_name])
  File "/opt/ros/jade/lib/python2.7/dist-packages/rqt_reconfigure/param_editors.py", line 439, in update_value
    self._update_signal.emit(self.values.index(value))
ValueError: -313638240 is not in list

And no reconfiguration is possible.

This is with the very latest libuvc and libuvc_camera.

With dynparam I can see that scanning_mode has large random values like the -313638240 that generated the plugin errors above:

rosrun dynamic_reconfigure dynparam get /front/cam/uvc_camera 
{'white_balance_RV': 0.0,
'white_balance_BU': 0.0,
'groups': {'groups': {},
'timestamp_method': 'start',
'sharpness': 0,
'height': 360,
'tilt_absolute': 0,
'parameters': {},
'privacy': False,
'scanning_mode': -313638240,
'auto_focus': False,
'width': 640,
'type': '',
'white_balance_temperature': 2926,
'camera_info_url': '',
'auto_exposure': 0,
'vendor': '0x0',
'frame_id': 'camera',
'pan_absolute': 0,
'gain': 32623,
'backlight_compensation': 0,
'name': 'Default',
'brightness': 0,
'video_mode': 'uncompressed',
'focus_absolute': 32767,
'white_balance_BU': 0.0,
'hue': 0.0,
'saturation': 0,
'auto_exposure_priority': 0,
'serial': '',
'id': 0,
'index': 1,
'power_line_frequency': 0,
'iris_absolute': 2.9145808e-316,
'roll_absolute': 0,
'white_balance_RV': 0.0,
'state': True,
'contrast': 0,
'product': '0x0',
'exposure_absolute': 0.0333,
'parent': 0,
'frame_rate': 5.0,
'auto_white_balance': False,
'auto_hue': False,
'gamma': 1.0},
'hue': 0.0,
... and the parameters appear to repeat

Many parameters I try to change from the command line result in scanning_mode warnings:

[ WARN] /front/cam/uvc_camera /home/lwalter/catkin_ws/src/libuvc_ros/libuvc_camera/src/camera_driver.cpp:123 : Unable to set scanning_mode to 0
[ WARN] /front/cam/uvc_camera /home/lwalter/catkin_ws/src/libuvc_ros/libuvc_camera/src/camera_driver.cpp:129 : Unable to set gain to 40000

I also tried this with a Webcam Pro 9000 with the same results.

edit retag flag offensive close merge delete

Comments

1
gvdhoorn gravatar image gvdhoorn  ( 2015-11-07 04:00:42 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2015-11-22 06:24:41 -0500

lucasw gravatar image

updated 2015-11-22 06:25:14 -0500

Current answer is to use http://wiki.ros.org/usb_cam .

There appear to be two flavors of usb camera support usb_cam uses the v4l interface but doesn't provide the uvc controls, while libuvc_camera attempts to provide those controls but only supports uvc cameras. It also doesn't seem quite as stable as usb_cam, and requires taking down the usb kernel modules- you have to restore them yourself if you want to use your usb camera normally outside of ros after using libuvc_camera.

A good interim solution may be to make a standalone uvc control node that doesn't require interfering with v4l, and doesn't attempt to provide an image, just camera controls just like v4l2ucp.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2015-11-06 13:23:35 -0500

Seen: 663 times

Last updated: Nov 22 '15