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