GithubHelp home page GithubHelp logo

camera_umd's Introduction

Old ROS Webcam Drivers Build Status

This repository contains uvc_camera, a Video4Linux-based webcam driver for ROS. It is deprecated, and it has been replaced by libuvc_camera (wiki), a cross-platform driver for USB Video Class cameras. Please consider using libuvc_camera or another camera driver if your camera supports the USB Video Class specification (as most webcams and several machine vision cameras do).

Documentation for this package can be found at its wiki page.

camera_umd's People

Contributors

andreasbihlmaier avatar dbs0412247 avatar k-okada avatar ktossell avatar mikaelarguedas avatar toliver avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

camera_umd's Issues

[ERROR]: Skipping XML Document "/opt/ros/hydro/share/uvc_camera/nodelet_uvc_camera.xml" which had no Root Element.

Hello,

I first reported this as an image_view issue and @trainman419 suggested I post it here.

I am running the latest Debian install of ROS Hydro under Ubuntu 12.04. At some point the following error message started showing up when launching either openni.launch or image_view; e.g.

$ rosrun image_view image_view image:=/camera/rgb/image_color

[ERROR] [1388762076.282169241]: Skipping XML Document "/opt/ros/hydro/share/uvc_camera/nodelet_uvc_camera.xml" which had no Root Element.  This likely means the XML is malformed or missing.

Both the openni node and image_view seem to run OK despite the error but the error itself is a little disconcerting, especially to new users

Why deprecated?

The README says this package is deprecated. But why does it have to be deprecated?

I understand the effort of maintenance is limited. Last time I tested the suggested replacement libuvc_camera, it conflicted with other Video4Linux users. I think it should be a great idea to leverage the features provided by Video4Linux infrastructure instead of circumventing it by building something else from underneath it.

Maybe it can be renamed to v4l_camera. Anyway a Video4Linux webcam driver should have its place in ROS.

Documentation Needed!

Hi,

I'm trying to figure out the relationship between this, the http://wiki.ros.org/uvc_camera project, the http://wiki.ros.org/libuvc_camera and possibly the https://github.com/ericperko/uvc_cam project.

So:
-- I cannot find the source code for http://wiki.ros.org/uvc_camera anywhere -- except perhaps I now have the general idea that it is here? It would be great if http://wiki.ros.org/uvc_camera gave the source code location... It would be great if there was a README or README.md for this repo that explained something like this...

-- Similarly, it looks like maybe https://github.com/ktossell/libuvc_ros is the primary/mainline repo for the http://wiki.ros.org/libuvc_camera project, right? It also doesn't have a README ...

-- Somehow, I get the impression that maybe libuvc_camera is the wave of thefuture, and this project is the older/deprecated branch? Or am I wrong?

-- This project includes a few files from https://github.com/ericperko/uvc_cam ... that project appears to be maybe dead (no updates for 18 months, pull requests are ignored) but some ros nodes still ask for it -- e.g. pi_vision. should pi_vision be getting ported to either libuvc_camera or uvc_camera ??

Sorry for all the questions, I'm a bit lost in the woods...

Parameterize camera control properties

Is there a reason why the camera control properties, such as Exposure, Constrast, Brightness, etc, are hard coded in uvc_cam.cpp?

With Logitech webcams, I find the images to be overexposed, and would like to change these properties without recompiling the driver.

how can i change ros topic name?

Hi,
I want to use 2 caemaras, which is same model(Asus Axion)
The problem is that, their topic name is same so that it conflicts.
My system is based on 1 ros master.

So, Can i change the topic name?
Actually I tried to write "remap" on launch file.

<remap from ="camera/rgb/image_raw" to=""camera1/rgb/image_raw>

But other things(ir camera info, etc... ) remain yet.

Is there any way to change all of /camera -> /camera1 ?

thanks.

Cannot launch stereo nodelet

I used the stereo_nodelet.launch file in the package and it throws the following error:

SUMMARY

PARAMETERS

  • /rosdistro
  • /rosversion
  • /uvc_camera_stereo/fps
  • /uvc_camera_stereo/frame
  • /uvc_camera_stereo/height
  • /uvc_camera_stereo/left/camera_info_url
  • /uvc_camera_stereo/left/device
  • /uvc_camera_stereo/right/camera_info_url
  • /uvc_camera_stereo/right/device
  • /uvc_camera_stereo/width

NODES
/
camera_process (nodelet/nodelet)
uvc_camera_stereo (nodelet/nodelet)

ROS_MASTER_URI=http://localhost:11311/

core service [/rosout] found
process[camera_process-1]: started with pid [8574]
process[uvc_camera_stereo-2]: started with pid [8591]
Loading nodelet /uvc_camera_stereo of type uvc_camera/Stereo to manager /camera_process with the following remappings:
waitForService: Service [/camera_process/load_nodelet] has not been advertised, waiting...
Initializing nodelet with 8 worker threads.
waitForService: Service [/camera_process/load_nodelet] is now available.
Failed to load nodelet [/uvc_camera_stereo] of type [uvc_camera/Stereo]: According to the loaded plugin descriptions the class uvc_camera/Stereo with base class type nodelet::Nodelet does not exist. Declared types are asctec_autopilot/AutoPilotNodelet asctec_proc/AsctecProcNodelet camera1394/driver camera1394stereo/driver ccny_rgbd/RGBDImageProcNodelet cob_image_flip/CobKinectImageFlipNodelet cob_people_detection/SensorMessageGatewayNodelet depth_image_proc/convert_metric depth_image_proc/disparity depth_image_proc/point_cloud_xyz depth_image_proc/point_cloud_xyzrgb depth_image_proc/register dvo_ros/camera_tracker gscam/GSCamNodelet image_proc/crop_decimate image_proc/debayer image_proc/rectify image_view/disparity image_view/image imu_filter_madgwick/ImuFilterNodelet laser_ortho_projector/LaserOrthoProjectorNodelet laser_proc/LaserProcNodelet laser_scan_matcher/LaserScanMatcherNodelet laser_scan_sparsifier/LaserScanSparsifierNodelet laser_scan_splitter/LaserScanSplitterNodelet mv_bluefox_driver/CameraNodelet nodelet_tutorial_math/Plus octomap_server/OctomapServerNodelet openni_camera/driver pcl/BAGReader pcl/ExtractIndices pcl/NodeletDEMUX pcl/NodeletMUX pcl/PCDReader pcl/PCDWriter pcl/PassThrough pcl/PointCloudConcatenateDataSynchronizer pcl/PointCloudConcatenateFieldsSynchronizer pcl/ProjectInliers pcl/StatisticalOutlierRemoval pcl/VoxelGrid stereo_image_proc/disparity stereo_image_proc/point_cloud stereo_image_proc/point_cloud2 uvc_camera/CameraNodelet uvc_camera/StereoNodelet velodyne_driver/DriverNodelet velodyne_pointcloud/CloudNodelet velodyne_pointcloud/RingColorsNodelet velodyne_pointcloud/TransformNodelet
Service call failed!
[uvc_camera_stereo-2] process has died [pid 8591, exit code 255, cmd /opt/ros/hydro/lib/nodelet/nodelet load uvc_camera/Stereo /camera_process __name:=uvc_camera_stereo __log:=/home/hope/.ros/log/f9edba70-a59e-11e3-9883-3c970eb1209e/uvc_camera_stereo-2.log].
log file: /home/hope/.ros/log/f9edba70-a59e-11e3-9883-3c970eb1209e/uvc_camera_stereo-2*.log

uvc_camera_node 0.2.1: runtime_error on Ubuntu 12.04

Tried to run uvc_camera_node with working USB webcam, which supports UVC and it failed spewing runtime error. Using latest version (0.2.1) with ros-groovy on 3.8.0-35-generic #50~precise1-Ubuntu (official Ubuntu back-ported hardware compatible raring kernel). Same problem applies installing ros-groovy-camera-umd from official repositories.

$ rosrun uvc_camera uvc_camera_node

Output:
[$ rosrun uvc_camera uvc_camera_node [ INFO] [1390413931.255962838]: camera calibration URL: file:///home/kamiccolo/Code/catkin/test_ws/src/camera_umd/uvc_camera/example.yaml [ERROR] [1390413931.256135945]: Unable to open camera calibration file [/home/kamiccolo/Code/catkin/test_ws/src/camera_umd/uvc_camera/example.yaml] [ WARN] [1390413931.256204904]: Camera calibration file /home/kamiccolo/Code/catkin/test_ws/src/camera_umd/uvc_camera/example.yaml not found. opening /dev/video0 pixfmt 0 = 'YUYV' desc = 'YUV 4:2:2 (YUYV)' discrete: 640x480: 1/30 1/15 discrete: 352x288: 1/30 1/15 discrete: 320x240: 1/30 1/15 discrete: 176x144: 1/30 1/15 discrete: 160x120: 1/30 1/15 int (Brightness, 0, id = 980900): -10 to 10 (1) int (Contrast, 0, id = 980901): 0 to 20 (1) int (Saturation, 0, id = 980902): 0 to 10 (1) int (Gamma, 0, id = 980910): 100 to 200 (1) menu (Power Line Frequency, 0, id = 980918): 0 to 2 (1) 0: Disabled 1: 50 Hz 2: 60 Hz int (Sharpness, 0, id = 98091b): 0 to 10 (1) terminate called after throwing an instance of 'std::runtime_error' what(): couldn't query control Aborted (core dumped)

Error code:
$ echo $?
134

dmesg:
$ dmesg | tail -n 30
[674317.733342] usb 1-3: Product: Venus USB2.0 Camera [674317.733345] usb 1-3: Manufacturer: Vimicro Corp. [674317.734463] uvcvideo: Found UVC 1.00 device Venus USB2.0 Camera (0ac8:3450) [674317.736407] input: Venus USB2.0 Camera as /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/input/input14 [674317.822580] ------------[ cut here ]------------ [674317.822588] WARNING: at /build/buildd/linux-lts-raring-3.8.0/drivers/usb/core/urb.c:327 usb_submit_urb+0x64/0x80() [674317.822590] Hardware name: MS-7593 [674317.822591] URB ffff88022edb3e40 submitted while active [674317.822592] Modules linked in: snd_hrtimer(F) pci_stub(F) vboxpci(OF) vboxnetadp(OF) vboxnetflt(OF) vboxdrv(OF) dm_crypt(F) nvidia(POF) bnep(F) rfcomm(F) bluetooth(F) uvcvideo(F) videobuf2_core(F) videodev(F) parport_pc(F) videobuf2_vmalloc(F) videobuf2_memops(F) ppdev(F) snd_hda_codec_realtek(F) snd_hda_intel(F) snd_hda_codec(F) snd_hwdep(F) coretemp(F) snd_pcm(F) joydev(F) snd_seq_midi(F) kvm_intel(F) snd_rawmidi(F) snd_seq_midi_event(F) snd_seq(F) kvm(F) snd_timer(F) snd_seq_device(F) drm(F) snd(F) soundcore(F) psmouse(F) snd_page_alloc(F) gpio_ich(F) i7core_edac(F) serio_raw(F) microcode(F) edac_core(F) lpc_ich(F) mac_hid(F) lp(F) parport(F) binfmt_misc(F) btrfs(F) zlib_deflate(F) libcrc32c(F) vesafb(F) pata_acpi(F) hid_generic(F) usbhid(F) hid(F) mxm_wmi(F) firewire_ohci(F) wmi(F) firewire_core(F) crc_itu_t(F) r8169(F) pata_jmicron(F) ahci(F) libahci(F) [674317.822627] Pid: 17381, comm: MediaStreamDevi Tainted: PF O 3.8.0-35-generic #50~precise1-Ubuntu [674317.822628] Call Trace: [674317.822634] [<ffffffff81059b6f>] warn_slowpath_common+0x7f/0xc0 [674317.822636] [<ffffffff81059c66>] warn_slowpath_fmt+0x46/0x50 [674317.822641] [<ffffffffa0359b28>] ? uvc_v4l2_open+0x78/0x140 [uvcvideo] [674317.822643] [<ffffffff81512454>] usb_submit_urb+0x64/0x80 [674317.822647] [<ffffffffa0360f01>] uvc_status_start+0x21/0x30 [uvcvideo] [674317.822650] [<ffffffffa0359b4f>] uvc_v4l2_open+0x9f/0x140 [uvcvideo] [674317.822656] [<ffffffffa031f575>] v4l2_open+0xc5/0x110 [videodev] [674317.822659] [<ffffffff811a0462>] chrdev_open+0xb2/0x1a0 [674317.822661] [<ffffffff811a03b0>] ? cdev_put+0x30/0x30 [674317.822663] [<ffffffff81199a5e>] do_dentry_open+0x21e/0x2a0 [674317.822666] [<ffffffff81199e89>] vfs_open+0x49/0x50 [674317.822669] [<ffffffff811a8356>] do_last+0x246/0x830 [674317.822673] [<ffffffff81313a8c>] ? apparmor_file_alloc_security+0x2c/0x60 [674317.822675] [<ffffffff811aa943>] path_openat+0xb3/0x4d0 [674317.822677] [<ffffffff811aad86>] ? final_putname+0x26/0x50 [674317.822680] [<ffffffff81184c12>] ? kmem_cache_free+0x42/0x160 [674317.822682] [<ffffffff811ab762>] do_filp_open+0x42/0xa0 [674317.822685] [<ffffffff811b9425>] ? __alloc_fd+0xe5/0x170 [674317.822687] [<ffffffff8119b2ba>] do_sys_open+0xfa/0x250 [674317.822689] [<ffffffff8119b431>] sys_open+0x21/0x30 [674317.822693] [<ffffffff816fdf1d>] system_call_fastpath+0x1a/0x1f [674317.822694] ---[ end trace 0ed153b7d0ee16fb ]--- [674334.020058] uvcvideo: Failed to query (GET_CUR) UVC control 8 on unit 1: -32 (exp. 1). [674336.526263] uvcvideo: Failed to query (GET_CUR) UVC control 8 on unit 1: -32 (exp. 1). [674401.754479] uvcvideo: Failed to query (GET_CUR) UVC control 8 on unit 1: -32 (exp. 1). [674873.539595] uvcvideo: Failed to query (GET_CUR) UVC control 8 on unit 1: -32 (exp. 1). [674932.216407] uvcvideo: Failed to query (GET_CUR) UVC control 8 on unit 1: -32 (exp. 1). [675900.343126] uvcvideo: Failed to query (GET_CUR) UVC control 8 on unit 1: -32 (exp. 1). [675926.496861] uvcvideo: Failed to query (GET_CUR) UVC control 8 on unit 1: -32 (exp. 1). [676000.190371] uvcvideo: Failed to query (GET_CUR) UVC control 8 on unit 1: -32 (exp. 1). [676006.614027] uvcvideo: Failed to query (GET_CUR) UVC control 8 on unit 1: -32 (exp. 1). [677954.630030] uvcvideo: Failed to query (GET_CUR) UVC control 8 on unit 1: -32 (exp. 1). [678640.500591] uvcvideo: Failed to query (GET_CUR) UVC control 8 on unit 1: -32 (exp. 1). [678647.663597] uvcvideo: Failed to query (GET_CUR) UVC control 8 on unit 1: -32 (exp. 1). [678651.471439] uvcvideo: Failed to query (GET_CUR) UVC control 8 on unit 1: -32 (exp. 1). [678686.295091] uvcvideo: Failed to query (GET_CUR) UVC control 8 on unit 1: -32 (exp. 1).

Hardware (according to this, it's UVC compatible):
$ lsusb (truncated)
Bus 001 Device 004: ID 0ac8:3450 Z-Star Microelectronics Corp.

EDIT
Compiling with debug info:
$ catkin_make uvc_camera_node --cmake-args "-DCMAKE_BUILD_TYPE=Debug"

Valgrind gives some insights:
$ valgrind --track-origins=yes ./uvc_camera_node

==4930== Memcheck, a memory error detector ==4930== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==4930== Using Valgrind-3.9.0 and LibVEX; rerun with -h for copyright info ==4930== Command: ./uvc_camera_node ==4930== [ INFO] [1390485142.550052057]: camera calibration URL: file:///opt/ros/groovy/stacks/camera_umd/uvc_camera/example.yaml [ERROR] [1390485142.626983580]: Unable to open camera calibration file [/opt/ros/groovy/stacks/camera_umd/uvc_camera/example.yaml] [ WARN] [1390485142.639382695]: Camera calibration file /opt/ros/groovy/stacks/camera_umd/uvc_camera/example.yaml not found. opening /dev/video0 pixfmt 0 = 'YUYV' desc = 'YUV 4:2:2 (YUYV)' ==4930== Syscall param ioctl(generic) points to uninitialised byte(s) ==4930== at 0x66C0C67: ioctl (syscall-template.S:82) ==4930== by 0x421EAC: uvc_cam::Cam::Cam(char const*, uvc_cam::Cam::mode_t, int, int, int) (uvc_cam.cpp:48) ==4930== by 0x418908: uvc_camera::Camera::Camera(ros::NodeHandle, ros::NodeHandle) (camera.cpp:57) ==4930== by 0x416B9C: main (camera_node.cpp:9) ==4930== Address 0xffefff0a8 is on thread 1's stack ==4930== Uninitialised value was created by a stack allocation ==4930== at 0x421913: uvc_cam::Cam::Cam(char const*, uvc_cam::Cam::mode_t, int, int, int) (uvc_cam.cpp:18) ==4930== ==4930== Syscall param ioctl(generic) points to uninitialised byte(s) ==4930== at 0x66C0C67: ioctl (syscall-template.S:82) ==4930== by 0x421DCB: uvc_cam::Cam::Cam(char const*, uvc_cam::Cam::mode_t, int, int, int) (uvc_cam.cpp:61) ==4930== by 0x418908: uvc_camera::Camera::Camera(ros::NodeHandle, ros::NodeHandle) (camera.cpp:57) ==4930== by 0x416B9C: main (camera_node.cpp:9) ==4930== Address 0xffefff070 is on thread 1's stack ==4930== Uninitialised value was created by a stack allocation ==4930== at 0x421913: uvc_cam::Cam::Cam(char const*, uvc_cam::Cam::mode_t, int, int, int) (uvc_cam.cpp:18) ==4930== discrete: 640x480: 1/30 1/15 discrete: 352x288: 1/30 1/15 discrete: 320x240: 1/30 1/15 discrete: 176x144: 1/30 1/15 discrete: 160x120: 1/30 1/15 ==4930== Syscall param ioctl(generic) points to uninitialised byte(s) ==4930== at 0x66C0C67: ioctl (syscall-template.S:82) ==4930== by 0x4221C6: uvc_cam::Cam::Cam(char const*, uvc_cam::Cam::mode_t, int, int, int) (uvc_cam.cpp:110) ==4930== by 0x418908: uvc_camera::Camera::Camera(ros::NodeHandle, ros::NodeHandle) (camera.cpp:57) ==4930== by 0x416B9C: main (camera_node.cpp:9) ==4930== Address 0x10ecbd44 is 356 bytes inside a block of size 720 alloc'd ==4930== at 0x4C2C31E: operator new(unsigned long) (vg_replace_malloc.c:319) ==4930== by 0x4188C6: uvc_camera::Camera::Camera(ros::NodeHandle, ros::NodeHandle) (camera.cpp:57) ==4930== by 0x416B9C: main (camera_node.cpp:9) ==4930== Uninitialised value was created by a heap allocation ==4930== at 0x4C2C31E: operator new(unsigned long) (vg_replace_malloc.c:319) ==4930== by 0x4188C6: uvc_camera::Camera::Camera(ros::NodeHandle, ros::NodeHandle) (camera.cpp:57) ==4930== by 0x416B9C: main (camera_node.cpp:9) ==4930== int (Brightness, 0, id = 980900): -10 to 10 (1) int (Contrast, 0, id = 980901): 0 to 20 (1) int (Saturation, 0, id = 980902): 0 to 10 (1) int (Gamma, 0, id = 980910): 100 to 200 (1) menu (Power Line Frequency, 0, id = 980918): 0 to 2 (1) 0: Disabled 1: 50 Hz 2: 60 Hz int (Sharpness, 0, id = 98091b): 0 to 10 (1) terminate called after throwing an instance of 'std::runtime_error' what(): couldn't query control ==4930== ==4930== HEAP SUMMARY: ==4930== in use at exit: 469,814 bytes in 4,578 blocks ==4930== total heap usage: 323,904 allocs, 319,326 frees, 38,549,112 bytes allocated ==4930== ==4930== LEAK SUMMARY: ==4930== definitely lost: 4,108 bytes in 23 blocks ==4930== indirectly lost: 169,459 bytes in 2,240 blocks ==4930== possibly lost: 71,001 bytes in 1,135 blocks ==4930== still reachable: 225,246 bytes in 1,180 blocks ==4930== suppressed: 0 bytes in 0 blocks ==4930== Rerun with --leak-check=full to see details of leaked memory ==4930== ==4930== For counts of detected and suppressed errors, rerun with: -v ==4930== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0) Killed

This repeating line does not sound very nice:
Syscall param ioctl(generic) points to uninitialised byte(s)

.launch files are not installed.

I have installed uvc_camera package by running:

~/ros_catkin_ws/src $ git clone git://github.com/ktossell/camera_umd.git
~/ros_catkin_ws $ catkin_make_isolated --pkg camera_umd --install
Everything went fine, no errors. But when I'm trying to launch a launch file from this package it says it cannot find it:

~/ros_catkin_ws $ ls /dev/video*
/dev/video0 /dev/video1
~/ros_catkin_ws $ roslaunch uvc_camera stereo_node.launch
[stereo_node.launch] is neither a launch file in package [uvc_camera] nor is [uvc_camera] a launch file name
The stereo_node.launch is still in the src folder:

~/ros_catkin_ws $ sudo find / -name stereo_node.launch
~/ros_catkin_ws/src/camera_umd/uvc_camera/launch/stereo_node.launch

Is it normal that after installation the .launch file is still in the /src folder?
It seems that the installer is not installing the .launch files.

Impossible to change the camera's name

The camera's name is hardcoded here:
camera_umd / uvc_camera / src / camera.cpp:21 info_mgr(_comm_nh, "camera"), cam(0) {

Would be nice to have it as a parameter (important to match the name given in camera_calibration).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.