Code Monkey home page Code Monkey logo

depthview's Introduction

3D Camera viewer

New laptops will soon be shipping with 3D webcams. The official SDK from intel only supports windows. This is a tool to get the data feed, and show video on Linux.

Old Demo
https://www.youtube.com/watch?v=Ht9PzVjWOgI

See blog posts about it.
First investigation
Camera Controls
3d model export

This branch currently requires a linux kernel patch to work. Available as another branch on the same repo. https://github.com/teknotus/depthview/tree/kernelpatchfmt

Prepatched Linux kernel available from Ubuntu 14.10 PPA

sudo apt-add-repository ppa:teknotus/rs-kernel-ppa

There is also a userspace driver that works with the camera that I hope to add support for soon.

https://github.com/mcguire-steve/libuvc

depthview's People

Contributors

teknotus 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

depthview's Issues

Error compiling udev branch

Hi,

when compiling the udev branch i get the following:
fatal error: linux/compiler.h: No such file or directory

so i added " -I ~/linux-3.13.0/include/ " in the makefile. (this is the kernel source i needed for the kernel patch) which got me this:

fatal error: asm/linkage.h: No such file or directory
when i add " -I ~/linux-3.13.0/arch/x86/include/ " which is where the file in the sources
or " -I /usr/src/linux-headers-3.13.0-57/arch/x86/include/ " i get tons of errors.

i had the same problem a few weeks ago but i cant remember how i did it.

any suggestions?

Alternate videoformats not shown by v4l2-ctl

Just to clarify, do I need your kernel patch for uvcvideo to actually use depthview? Right now, when I plug the camera in, I get both video devices, however, uvcvideo explicitly complains in the kernel log about "Unknown video formats" and doesn't list them when queried with v4l2-ctl --list-formats --device=/dev/video2. I'm on Ubuntu 14.04 with kernel 3.16. Is there a quirk or similar trick to let uvcvideo pass all formats to userspace, even unknown ones?

How to run this on Ubuntu 20.04.1 LTS

Sincere,
I'm trying to run your repo on Ubuntu 20.04.1 LTS with little luck.

Could you aid me on how to run your basic app?

Running sudo apt-add-repository ppa:teknotus/rs-kernel-ppa returns:
` Kernel patched to support Intel realsense F200 3d camera
More info: https://launchpad.net/~teknotus/+archive/ubuntu/rs-kernel-ppa
Press [ENTER] to continue or Ctrl-c to cancel adding it.

Ign:1 http://ppa.launchpad.net/teknotus/rs-kernel-ppa/ubuntu focal InRelease
Hit:2 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:3 http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo focal InRelease
Err:4 http://ppa.launchpad.net/teknotus/rs-kernel-ppa/ubuntu focal Release
404 Not Found [IP: 91.189.95.83 80]
Hit:5 http://us.archive.ubuntu.com/ubuntu focal InRelease
Hit:6 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:7 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease
Hit:8 http://packages.ros.org/ros/ubuntu focal InRelease
Reading package lists... Done
E: The repository 'http://ppa.launchpad.net/teknotus/rs-kernel-ppa/ubuntu focal Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
`

Thank you greatly.
M

Bitcoin donations?

BTW, this is awesome work and I'd like to donate to help you develop depth-color registration, too. Is it possible to donate using bitcoin?

Install manual for Ubuntu 14.04 lacking

I just wanted to apply your patch to my Ubuntu 14.04.
It doesn't want to compile, because the include videodev2.h was still not patched.
To make it compile with your manual, I needed to hit the following copy command as well, after patching:

sudo cp include/uapi/linux/videodev2.h /usr/src/linux-headers-`uname -r`/include/uapi/linux/videodev2.h

Is your manual for another version, or should it generally be done my way?

linux-libc-dev missing from PPA?

Hi there,

I'm looking at https://launchpad.net/~teknotus/+archive/ubuntu/rs-kernel-ppa/+build/7338621. I am having trouble compiling without the libc files, but the built files seem to be missing from this list. I was successful at installing all the other files, but if I want to install linux-libc-dev for 3.16.0-37.49+realsense:

E: Version '3.16.0-37.49+realsense' for 'linux-libc-dev' was not found

I also tried patching the kernel from Torvald's git repository, unfortunately there were lots of compile time errors, so I gave up on that.

Without this I get the error linux/compiler.h no such file or directory from videodev2.h. I am assuming that this is because I am missing linux-libc-dev. How do I proceed? Thanks.

Control ioctl results in No such file or directory

Every UVCIOC_CTRL_QUERY ioctl results in a errno 2: No such file or directory on my system,

I'm running in a Ubuntu 14.04 with a 3.13.0-45 kernel. The application is running fine, I can see the camera feed, just the controls do not work for me.

Disconnecting Issur with SR300

Hello, I am currently using realsense SR300 in Ubuntu 14.04.
(model name : Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz) -using USB 3.0

After connecting the SR300 camera to the computer, computer cannot detect the USB from SR300.
Error saying that "cannot detect video4linux". In my understanding, this might be the power problem. So we tried with powered hub USB that has 4 Port USB 3.0 Hub with 5V/2.5A power adapter, it did not work neither.

-Can anyone know the exact power draw of realsense SR300?
-If someone already have used the powered hub for SR300 or F200, please let me know the information about the that product. Thank you !

missing some index/formats

Hi ,

I am using SR300, odroid xu4, ubuntu 14.04. After patching I can not see some Index compare to your output, for example I could not see "FlickerIR 8-bit (RELI) ", What would be the problem?

v4l2-ctl --device /dev/video1 --list-formats
ioctl: VIDIOC_ENUM_FMT
    Index       : 0
    Type        : Video Capture
    Pixel Format: 'YUYV'
    Name        : YUV 4:2:2 (YUYV)

    Index       : 1
    Type        : Video Capture
    Pixel Format: 'INVZ'
    Name        : Depth 16-bit (INVZ)

    Index       : 2
    Type        : Video Capture
    Pixel Format: 'INZI'
    Name        : Depth:IR 16:8 24-bit (INZI)

    Index       : 3
    Type        : Video Capture
    Pixel Format: ''
    Name        : 435a4e49-b602-480f-978c-e4e88ae

    Index       : 4
    Type        : Video Capture
    Pixel Format: 'INVI'
    Name        : Infrared 8-bit (INVI)

Make issue in "make -C /usr/src/linux-headers-`uname -r` M=`pwd` modules"

Hi, I get the following error after applying patch and trying to make:

nima@Nimani:$ cd linux-*
nima@Nimani:
/linux-lts-vivid-3.19.0$ git apply ../0001-Add-video-formats-for-Intel-real-sense-F200-camera.patch
nima@Nimani:/linux-lts-vivid-3.19.0$ sudo cp include/uapi/linux/videodev2.h /usr/include/linux/videodev2.h
[sudo] password for nima:
nima@Nimani:
/linux-lts-vivid-3.19.0$ (cd drivers/media/usb/uvc/ && make -C /usr/src/linux-headers-uname -r M=pwd modules)
make: Entering directory /usr/src/linux-headers-3.19.0-30-generic' CC [M] /home/nima/linux-lts-vivid-3.19.0/drivers/media/usb/uvc/uvc_driver.o /home/nima/linux-lts-vivid-3.19.0/drivers/media/usb/uvc/uvc_driver.c:148:11: error: ‘V4L2_PIX_FMT_INVZ’ undeclared here (not in a function) .fcc = V4L2_PIX_FMT_INVZ, ^ /home/nima/linux-lts-vivid-3.19.0/drivers/media/usb/uvc/uvc_driver.c:153:11: error: ‘V4L2_PIX_FMT_INZI’ undeclared here (not in a function) .fcc = V4L2_PIX_FMT_INZI, ^ /home/nima/linux-lts-vivid-3.19.0/drivers/media/usb/uvc/uvc_driver.c:158:11: error: ‘V4L2_PIX_FMT_INVR’ undeclared here (not in a function) .fcc = V4L2_PIX_FMT_INVR, ^ /home/nima/linux-lts-vivid-3.19.0/drivers/media/usb/uvc/uvc_driver.c:163:11: error: ‘V4L2_PIX_FMT_INRI’ undeclared here (not in a function) .fcc = V4L2_PIX_FMT_INRI, ^ /home/nima/linux-lts-vivid-3.19.0/drivers/media/usb/uvc/uvc_driver.c:168:11: error: ‘V4L2_PIX_FMT_INVI’ undeclared here (not in a function) .fcc = V4L2_PIX_FMT_INVI, ^ /home/nima/linux-lts-vivid-3.19.0/drivers/media/usb/uvc/uvc_driver.c:173:11: error: ‘V4L2_PIX_FMT_RELI’ undeclared here (not in a function) .fcc = V4L2_PIX_FMT_RELI, ^ make[1]: *** [/home/nima/linux-lts-vivid-3.19.0/drivers/media/usb/uvc/uvc_driver.o] Error 1 make: *** [_module_/home/nima/linux-lts-vivid-3.19.0/drivers/media/usb/uvc] Error 2 make: Leaving directory/usr/src/linux-headers-3.19.0-30-generic'

It seems like a header (videodev2.h) is missing. Any ideas are much appreciated.

Problem with instructions for applying kernel patch

Hi @teknotus

I had problems applying the patch to any kernel in Ubuntu 14.04 LTS. Perhaps you can see the mistake I'm making and can point me in the right direction:

  1. Patch fails to automatically apply with git apply -- the patch failed to apply to 3.13, 3.16, and 4.0 kernel sources, both from Ubuntu sources as well as vanilla kernels from github.com/torvalds. The patch isn't that large so I was able to apply all the diffs by hand.

  2. When I went to compile as it was looking at headers in /usr/source/uname-r versus the headers in the downloaded source where modified videodev2.h and uvc_camera.h reside. This results in compile errors because all the new macros in videodev2.h are not found.

Now based on the step:

sudo cp include/uapi/linux/videodev2.h /usr/include/linux/videodev2.h

I'm guessing that that step was intended so that the code would build against /usr/include/linux/videodev2.h. So I tried taking the modified videodev2.h and copying it to /usr/source/uname-r/include/linux/videodev2.h as well. Once I did this I was able to compile the module

  1. Once I installed the module, then I attempt to load it and I got tons of missing symbol errors. Here's the output of dmesg:
[ 3790.016461] uvcvideo: Unknown symbol vb2_queue_init (err 0)
[ 3790.016498] uvcvideo: Unknown symbol v4l2_fh_exit (err 0)
[ 3790.016535] uvcvideo: Unknown symbol vb2_streamoff (err 0)
[ 3790.016561] uvcvideo: Unknown symbol vb2_queue_release (err 0)
[ 3790.016585] uvcvideo: Unknown symbol vb2_poll (err 0)
[ 3790.016607] uvcvideo: Unknown symbol v4l2_prio_max (err 0)
[ 3790.016625] uvcvideo: Unknown symbol v4l2_fh_del (err 0)
[ 3790.016642] uvcvideo: Unknown symbol v4l2_fh_add (err 0)
[ 3790.016665] uvcvideo: Unknown symbol v4l2_prio_change (err 0)
[ 3790.016693] uvcvideo: Unknown symbol vb2_dqbuf (err 0)
[ 3790.016720] uvcvideo: Unknown symbol vb2_reqbufs (err 0)
[ 3790.016749] uvcvideo: Unknown symbol video_devdata (err 0)
[ 3790.016766] uvcvideo: Unknown symbol vb2_streamon (err 0)
[ 3790.016786] uvcvideo: Unknown symbol v4l2_ctrl_replace (err 0)
[ 3790.016817] uvcvideo: Unknown symbol v4l2_prio_check (err 0)
[ 3790.016844] uvcvideo: Unknown symbol v4l_printk_ioctl (err 0)
[ 3790.016868] uvcvideo: Unknown symbol vb2_querybuf (err 0)
[ 3790.016885] uvcvideo: Unknown symbol vb2_qbuf (err 0)
[ 3790.016910] uvcvideo: Unknown symbol vb2_buffer_done (err 0)
[ 3790.016924] uvcvideo: Unknown symbol vb2_plane_vaddr (err 0)
[ 3790.016938] uvcvideo: Unknown symbol v4l2_fh_init (err 0)
[ 3790.016956] uvcvideo: Unknown symbol video_unregister_device (err 0)
[ 3790.016972] uvcvideo: Unknown symbol v4l2_prio_init (err 0)
[ 3790.016990] uvcvideo: Unknown symbol v4l2_event_subscribe (err 0)
[ 3790.017008] uvcvideo: Unknown symbol video_device_alloc (err 0)
[ 3790.017024] uvcvideo: Unknown symbol vb2_vmalloc_memops (err 0)
[ 3790.017044] uvcvideo: Unknown symbol v4l2_device_register (err 0)
[ 3790.017063] uvcvideo: Unknown symbol v4l2_ctrl_merge (err 0)
[ 3790.017090] uvcvideo: Unknown symbol __video_register_device (err 0)
[ 3790.017109] uvcvideo: Unknown symbol v4l2_event_dequeue (err 0)
[ 3790.017124] uvcvideo: Unknown symbol v4l2_device_unregister (err 0)
[ 3790.017140] uvcvideo: Unknown symbol video_usercopy (err 0)
[ 3790.017153] uvcvideo: Unknown symbol video_device_release (err 0)
[ 3790.017168] uvcvideo: Unknown symbol vb2_mmap (err 0)
[ 3790.017183] uvcvideo: Unknown symbol v4l2_event_queue_fh (err 0)
[ 3790.017206] uvcvideo: Unknown symbol v4l2_event_unsubscribe (err 0)

Looks like a lot of v4l2 calls weren't linked into the module. If you have any insights into what I"m doing wrong, please let me know. Thanks!

Depth image is green and wrong resolution

Hi teknotus,
I try to use VLC application to read raw data from realsense, and I also use the patch to add UVC format. However, the depth image is green and resolution is not the same with RGB image.
Could you please teach me how to solve them ?

Thanks
Regards

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.