Hi,
Has anyone been able to get the gscam package working with the meta-ros
layer? I'm trying to send a live video feed from a webcam attached to a
Gumstix Overo COM on a Tobi expansion board to a host machine(where roscore
is running) with Ubuntu 14.04+ROS Indigo. My gumstix-console-image.bb
includes the following:
89 GSCAM_INSTALL = " \
90 gscam \
91 nodelet \
92 cv-bridge \
93 roscpp \
94 theora-image-transport \
95 sensor-msgs \
96 camera-calibration-parsers \
97 camera-info-manager \
98 "
99
100 IMAGE_INSTALL += " \
101 ${FIRMWARE_INSTALL} \
102 ${SYSTEM_TOOLS_INSTALL} \
103 ${DEV_TOOLS_INSTALL} \
104 ${NETWORK_TOOLS_INSTALL} \
105 ${MEDIA_TOOLS_INSTALL} \
106 ${GRAPHICS_LIBS} \
107 ${UTILITIES_INSTALL} \
108 ${GSCAM_INSTALL} \
109 "
The COM recognizes the webcam (Microsoft LifeCam VX3000) and assigns it to
/dev/video0.
I then install some missing plugins:
$ smart update
$ smart install gst-plugins-good-video4linux2
and source the environmental variable:
$ export GSCAM_CONFIG="v4l2src device=/dev/video0 ! video/x-raw-rgb !
ffmpegcolorspace"
but upon launching the gscam node, I am stuck at the following error
message:
root@overo:~# rosrun gscam gscam
[ INFO] [1432936018.001607854]: Using gstreamer config from env: "v4l2src
device=/dev/video0 ! video/x-raw-rgb ! ffmpegcolorspace"
[ INFO] [1432936018.140851232]: using default calibration URL
[ INFO] [1432936018.144604670]: camera calibration URL: file:
///home/root/.ros/camera_info/camera.yaml
[ INFO] [1432936018.147747792]: Unable to open camera calibration file [
/home/root/.ros/camera_info/camera.yaml]
[ WARN] [1432936018.151226588]: Camera calibration file /home/root/.ros/
camera_info/camera.yaml not found.
[ INFO] [1432936018.153820427]: Loaded camera calibration from
** (gscam:1952): CRITICAL **: gst_app_sink_set_caps: assertion 'GST_IS_APP_SINK
(appsink)' failed
** (gscam:1952): CRITICAL **: gst_base_sink_set_sync: assertion
'GST_IS_BASE_SINK
(sink)' failed
(gscam:1952): GStreamer-CRITICAL **: gst_element_link_pads_full: assertion
'GST_IS_ELEMENT
(dest)' failed
[FATAL] [1432936020.927885414]: GStreamer: cannot link launchpipe -> sink
[FATAL] [1432936020.931242147]: Failed to initialize gscam stream!
Based on the error I suspected that GStreamer was the problem, so I ran and
installed:
root@overo:~# gst-launch v4l2src device=/dev/video0 ! video/x-raw-rgb !
ffmpegco
WARNING: erroneous pipeline: no element "ffmpegcolorspace"
root@overo:~# smart install gst-plugins-base-ffmpegcolorspace
Now launching gscam again gives the following:
*root@overo:~# rosrun gscam gscam[ INFO] [1432936847.626166516]: Using
gstreamer config from env: "v4l2src device=/dev/video0 ! video/x-raw-rgb !
ffmpegcolorspace"[ INFO] [1432936847.802852723]: using default calibration
URL[ INFO] [1432936847.806423066]: camera calibration URL:
file:///home/root/.ros/camera_info/camera.yaml[ INFO]
[1432936847.811702291]: Unable to open camera calibration file
[/home/root/.ros/camera_info/camera.yaml][ WARN] [1432936847.815394697]:
Camera calibration file /home/root/.ros/camera_info/camera.yaml not found.[
INFO] [1432936847.819422776]: Loaded camera calibration from**
(gscam:2019): CRITICAL **: gst_app_sink_set_caps: assertion
'GST_IS_APP_SINK (appsink)' failed** (gscam:2019): CRITICAL **:
gst_base_sink_set_sync: assertion 'GST_IS_BASE_SINK (sink)'
failed(gscam:2019): GStreamer-CRITICAL **: gst_bin_add: assertion
'GST_IS_ELEMENT (element)' failed[FATAL] [1432936851.527239271]:
gst_bin_add() failed[FATAL] [1432936851.531999729]: Failed to initialize
gscam stream!*
It looks like it is probably a GStreamer problem, any pointers or
suggestions will be much appreciated!
William