GithubHelp home page GithubHelp logo

intelrealsense / librealsense Goto Github PK

View Code? Open in Web Editor NEW
7.3K 7.3K 4.8K 242.98 MB

Intel® RealSense™ SDK

Home Page: https://www.intelrealsense.com/

License: Apache License 2.0

Shell 0.90% C 37.12% C++ 51.46% CMake 1.02% PowerShell 0.05% Python 3.29% C# 3.25% ShaderLab 0.10% Cuda 0.23% MATLAB 0.66% Java 1.90% Dockerfile 0.02%
camera-api computer-vision developer-kits hardware library librealsense sdk

librealsense's People

Contributors

aangerma avatar abernste avatar alowenst01 avatar annaromanov avatar belkinirena avatar bfulkers-i avatar cspungin avatar daversintel avatar ddiakopoulos avatar dorodnic avatar doronhi avatar ev-mp avatar gwen2018 avatar icarpis avatar maloel avatar matkatz avatar mmirbach avatar nhershko avatar nir-az avatar nohayassin avatar ogoshen avatar ohadmeir avatar radfordi avatar remibettan avatar samerkhshiboun avatar sgorsten avatar shiritbrook avatar tamir91 avatar tingshao avatar zivsha 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  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  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

librealsense's Issues

Pointcloud Bending/Warping (Wrong intrinsics?)

We are working with the Realsense F200 camera and encountered a problem with generated pointclouds based on the code below. We tested the camera on a flat surface , but the resulting point cloud seems to bend towards the camera. I attached two examples, one of them showing a flat surface. The second image contains the realsense box, also with the bending effekt.

There seems to be a problem with the way the SDK interprets the depth informations.

Flat Surface:
toportho2

Rectangle Box:
box

...
const float depth_scale = dev.get_depth_scale();
const rs::intrinsics depth_intrin = dev.get_stream_intrinsics(rs::stream::depth);

auto depth = reinterpret_cast<const uint16_t *>(dev.get_frame_data(rs::stream::depth));
for (int y = 0; y < depth_intrin.height; ++y)
        {
            for (int x = 0; x < depth_intrin.width; ++x)
            {
                if (uint16_t d = *depth++)
                {
                    const rs::float3 point = depth_intrin.deproject({ static_cast<float>(x),static_cast<float>(y) }, d*depth_scale);
                    pointCloud.push_back(point);
                }
            }
        }

Spikes, twisted edges and waves in pointcloud [F200]

  • Partially reflective materials cause spikes (peaks and valleys) in resulting pointcloud.
  • Flat surfaces are often projected with wavy/dancing points (varies with distance from camera) and even more often the same flat surfaces have twisted (upwards) edges.

Example (average distance from camera ~30cm):
pc_example_5_annotated
pc_example_6_annotated
config_example_annotated

By twiddling and adjusting all parameters, best results for getting rid of the spikes gave drastic reduction of the laser power which also reduces the pointcloud size, and effectively renders it useless (even then the spikes and twisted edges are not completely eliminated).

Is this an expected behavior or something worthy to resolve?

Another example of twisted edges (37cm average distance):
2pc_example_annotated
2config_example

Note: Screenshots are made after camera was tested and running (non-continuously) for several hours; I observed better average results than in the first ~hour after a cold start.

PS: While running cpp-config-ui I ran into TemperatureControlLoop error (#26 but only on one camera; also had it couple of times when running cpp-tutorial-3-pointcloud) and one-time irreproducible timed_mutex::try_lock_for(...) timed out exception which didn't freeze neither view.

More angles from the first example:
pc example
pc example 2
pc example 3
pc example 4

Unity in Mac OSX?

I was wondering if anyone was successfully able to get the Intel cameras working in Unity on Mac OSX?
Is there any work being done to make this possible?
Thanks!

F200: cpp-config-ui crash when setting accuracy to 0

Was just playing around with the cpp-config-ui example on my F200, got the following when setting accuracy to 0:

rs.error: TemperatureControlLoop: libusb_bulk_transfer(...) returned LIBUSB_ERROR_TIMEOUT
RealSense error calling rs_set_device_option(device:0x2546018, option:F200_ACCURACY, value:0):
    UVCIOC_CTRL_QUERY:UVC_SET_CUR error 5, Input/output error

Linking issue attempting to make all

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

The symbols missing are:
"rsimpl::uvc::get_control(rsimpl::uvc::device const&, int, unsigned char, void*, int)", referenced from: rsimpl::f200::xu_read(rsimpl::uvc::device const&, unsigned char, void*, unsigned int) in f200-private.o rsimpl::r200::xu_read(rsimpl::uvc::device const&, rsimpl::r200::control, void*, unsigned int) in r200-private.o rsimpl::r200::send_command_and_receive_response(rsimpl::uvc::device&, rsimpl::r200::CommandResponsePacket const&) in r200-private.o rsimpl::r200::read_device_pages(rsimpl::uvc::device&, unsigned int, unsigned char*, unsigned int) in r200-private.o rsimpl::r200::read_arbitrary_chunk(rsimpl::uvc::device&, unsigned int, void*, int) in r200-private.o rsimpl::r200::read_admin_sector(rsimpl::uvc::device&, unsigned char*, int) in r200-private.o rsimpl::r200::read_firmware_version(rsimpl::uvc::device&) in r200-private.o ... "rsimpl::uvc::set_control(rsimpl::uvc::device&, int, unsigned char, void*, int)", referenced from: rsimpl::f200::xu_write(rsimpl::uvc::device&, unsigned char, void*, unsigned int) in f200-private.o rsimpl::r200::xu_write(rsimpl::uvc::device&, rsimpl::r200::control, void*, unsigned int) in r200-private.o rsimpl::r200::send_command_and_receive_response(rsimpl::uvc::device&, rsimpl::r200::CommandResponsePacket const&) in r200-private.o rsimpl::r200::read_device_pages(rsimpl::uvc::device&, unsigned int, unsigned char*, unsigned int) in r200-private.o rsimpl::r200::read_arbitrary_chunk(rsimpl::uvc::device&, unsigned int, void*, int) in r200-private.o rsimpl::r200::read_admin_sector(rsimpl::uvc::device&, unsigned char*, int) in r200-private.o rsimpl::r200::read_firmware_version(rsimpl::uvc::device&) in r200-private.o ... "rsimpl::uvc::bulk_transfer(rsimpl::uvc::device&, unsigned char, void*, int, int*, unsigned int)", referenced from: rsimpl::f200::execute_usb_command(rsimpl::uvc::device&, std::__1::timed_mutex&, unsigned char*, unsigned long, unsigned int&, unsigned char*, unsigned long&) in f200-private.o "rsimpl::uvc::get_vendor_id(rsimpl::uvc::device const&)", referenced from: rs_context::rs_context() in context.o rs_context::rs_context() in context.o "rsimpl::uvc::init_controls(rsimpl::uvc::device&, int, rsimpl::uvc::guid const&)", referenced from: rsimpl::make_f200_device(std::__1::shared_ptr<rsimpl::uvc::device>) in f200.o rsimpl::make_sr300_device(std::__1::shared_ptr<rsimpl::uvc::device>) in f200.o rsimpl::make_r200_device(std::__1::shared_ptr<rsimpl::uvc::device>) in r200.o "rsimpl::uvc::query_devices(std::__1::shared_ptr<rsimpl::uvc::context>)", referenced from: rs_context::rs_context() in context.o rs_context::rs_context() in context.o "rsimpl::uvc::create_context()", referenced from: rs_context::rs_context() in context.o rs_context::rs_context() in context.o "rsimpl::uvc::get_product_id(rsimpl::uvc::device const&)", referenced from: rs_context::rs_context() in context.o rs_context::rs_context() in context.o "rsimpl::uvc::get_pu_control(rsimpl::uvc::device const&, int, rs_option)", referenced from: rsimpl::f200_camera::get_options(rs_option const*, int, double*) in f200.o rsimpl::r200_camera::get_options(rs_option const*, int, double*) in r200.o "rsimpl::uvc::set_pu_control(rsimpl::uvc::device&, int, rs_option, int)", referenced from: rsimpl::make_sr300_device(std::__1::shared_ptr<rsimpl::uvc::device>) in f200.o rsimpl::f200_camera::set_options(rs_option const*, int, double const*) in f200.o rsimpl::r200_camera::set_options(rs_option const*, int, double const*) in r200.o "rsimpl::uvc::stop_streaming(rsimpl::uvc::device&)", referenced from: rs_device::stop() in device.o "rsimpl::uvc::claim_interface(rsimpl::uvc::device&, rsimpl::uvc::guid const&, int)", referenced from: rsimpl::f200::claim_ivcam_interface(rsimpl::uvc::device&) in f200-private.o "rsimpl::uvc::start_streaming(rsimpl::uvc::device&, int)", referenced from: rs_device::start() in device.o "rsimpl::uvc::set_subdevice_mode(rsimpl::uvc::device&, int, int, int, unsigned int, int, std::__1::function<void (void const*)>)", referenced from: rs_device::start() in device.o "rsimpl::uvc::get_pu_control_range(rsimpl::uvc::device const&, int, rs_option, int*, int*)", referenced from: rs_device::get_option_range(rs_option, double&, double&, double&) in device.o

Segmentation fault when using multicam in 14.04.03

When connecting multiple cameras and runing multicam example file, I get the following output:

Segmentation fault (core dumped)
2016-01-25 13:23:45 INFO: UVC device detected with VID = 0x8086 PID = 0xa66
2016-01-25 13:23:45 INFO: Connecting to Intel RealSense F200
2016-01-25 13:23:45 INFO: UVC device detected with VID = 0x8086 PID = 0xa66

It seems like the devices aren't being registered separately.

Recovering from streaming timeout error (question)

Running my app with 8 R200s, I found that individual cameras would start throwing timeout errors. The error handling allowed me to recognize and skip the future wait-for-frames call for the affected devices, but I wasn't able to find the correct way to recover the error without restarting the application.

This was a live installation so I didn't have the opportunity to stop & restart the app, let alone unplug/replug the device, so my number of active cameras simply dropped over time.

Is there a correct way to allow for a camera that's not returning frames to be closed, unplugged/replugged, and then recover streaming?

Distorted pointcloud from SR300

Got color image and pointcloud from example code. The sensor was facing a corner of a wall (see color image), pointcloud is distorted. Any thoughts on calibration? Thanks

pointcloud
29-rgb

Extended exposure times

Hi there.

I have been trying to use your library to capture individual images rather than for use as a stream. It looks as though the exposure is bounded from 0 to 1000 and that it is restricted by the frame rate. If for example, I wanted to take long exposure images. I have tried lowering the frame rate to 1-2 FPS with no success, there does not seem to be change. I also replaced the FPS check with '1' to see if I could get around that check. Is this a limitation of the hardware or of your library?

Multicam issues on Ubuntu v4l2 backend w/ 3.19 kernel

I followed the installation instructions and was able to run the capture and enumerate examples. The multicam example did not work (got UVCIOC_CTRL_QUERY:UVC_SET_CUR error 5, Input/output error) with 2 cameras plugged in.

However, there is a bigger problem now. I started writing my own example code just to get the hang of things, with only this in main:

rs::context ctx;
std::cout << "Found "<< ctx.get_device_count() << " devices" << std::endl;`

When run with 0 or 1 camera plugged in, the result was as expected. When I had 2 cameras plugged in, the program entered an uninterruptible sleep, so I had to reboot the system. After the reboot, I can't even get a single camera to function correctly. c-capture reports UVCIOC_CTRL_QUERY:UVC_SET_CUR error 2, No such file or directory, and dmesg shows

[   79.060507] uvcvideo: Failed to set UVC commit control : -32 (exp. 34).
[   79.060514] uvcvideo 4-2:1.1: resume error -5
[   79.062588] uvcvideo: Failed to set UVC commit control : -32 (exp. 34).
[   79.062594] uvcvideo 4-2:1.3: resume error -5
[   79.063175] uvcvideo: Failed to query (GET_LEN) UVC control 1 on unit 2: -32 (exp. 2).

I have re-run the patch-uvcvideo-ko-generic.sh script followed by sudo modprobe uvcvideo, but the result is still the same. I'm using the 3.19.0-36-generic kernel.

Any idea what could have caused this?

Thanks,

Adam

Unable to build librealsense on Nvidia Jetson TK1

Hello,

I am trying to install the drivers to get the RealSense R200 working on my Jetson TK1 board (ARM processor) which runs Ubuntu14.04 (Linux4Tegra). I'm having issues patching the uvcvideo.ko file. For the Video4Linux backend, when I run the "patch-uvcvideo-4.4.sh v4.4-wily" it hangs on when cloning the repository linux-v4.4-wily even though I've let it sit for a long period of time. In addition, when I try and use the "patch-ucvvideo-3.19.sh" script the patch cannot be applied because apt-get cannot retrieve a linux-image (which I believe is due to the fact that the Nvidia Linux4Tegra kernel is only available for download through the Nvidia site).

I've also tried the LibUVC backend but when I go to build "make BACKEND=LIBUVC" I get the error:

mkdir -p obj/libuvc
mkdir -p lib
mkdir -p bin
g++ src/context.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_LIBUVC_BACKEND pkg-config --cflags --libs libusb-1.0 -c -o obj/context.o
g++: error: unrecognized command line option '-mssse3'
make: *** [obj/context.o] Error 1

Any help would be greatly appreciated!

USB 2.0 support

I asked about USB 2.0 compatibility on the RealSense SDK forum and was given the following answer:

even weak USB 3.0 does not meet the requirements. USB 2.0 is not supported.

There is already a tremendous amount of validation required just within the given specs, pushing on other setups is outside the scope of this forum.

Is there any chance librealsense can support USB 2.0? The bandwidth is sufficient for low resolutions and frame rates and it would help integrating RealSense into embedded systems, which mostly lack USB 3.0 support.

cpp-multicam std::runtime_error at memory location...

After importing all the example projects into Visual Studio Profession 2013 with update 5 on Windows 10, all the example projects run fine, besides cpp-multicam, which crashes immediately.

My error output is shown below, and I see that toward the bottom, there are runtime_errors...

'cpp-multicam-d.exe' (Win32): Loaded 'C:\Users\Granger Lang\Desktop\test\librealsense-master\bin\Win32\cpp-multicam-d.exe'. Symbols loaded.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Users\Granger Lang\Desktop\test\librealsense-master\bin\Win32\glfw3.dll'. Module was built without symbols.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\opengl32.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Users\Granger Lang\Desktop\test\librealsense-master\bin\Win32\realsense-d.dll'. Symbols loaded.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcrt.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcp120d.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\advapi32.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sechost.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcr120d.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rpcrt4.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sspicli.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cryptbase.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\bcryptprimitives.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\user32.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ole32.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\combase.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\gdi32.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\shlwapi.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\glu32.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ddraw.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\setupapi.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cfgmgr32.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\winmm.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcr120.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\mf.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\mfplat.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\mfreadwrite.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\dciman32.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\winmmbase.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\winmmbase.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\winusb.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\winmmbase.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\winmmbase.dll'
'cpp-multicam-d.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\winmmbase.dll'
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\mfcore.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ksuser.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\mfperfhelper.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\imm32.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel.appcore.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\RTWorkQ.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\uxtheme.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\oleaut32.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\clbcatq.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\deviceaccess.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\vidcap.ax'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\Kswdmcap.ax'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\mfc42.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.10586.0_none_811bc0006c44242b\comctl32.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\odbc32.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\dpapi.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\policymanager.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcp110_win.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\devobj.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\wintrust.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msasn1.dll'. Cannot find or open the PDB file.
'cpp-multicam-d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\crypt32.dll'. Cannot find or open the PDB file.
First-chance exception at 0x75CDD8A8 in cpp-multicam-d.exe: Microsoft C++ exception: std::runtime_error at memory location 0x0018EA88.
First-chance exception at 0x75CDD8A8 in cpp-multicam-d.exe: Microsoft C++ exception: [rethrow] at memory location 0x00000000.
First-chance exception at 0x75CDD8A8 in cpp-multicam-d.exe: Microsoft C++ exception: rs::error at memory location 0x0018F6B0.
First-chance exception at 0x75CDD8A8 in cpp-multicam-d.exe: Microsoft C++ exception: std::runtime_error at memory location 0x02B8DCAC.
The thread 0x1cd4 has exited with code 0 (0x0).
First-chance exception at 0x75CDD8A8 in cpp-multicam-d.exe: Microsoft C++ exception: std::runtime_error at memory location 0x02C8DEA8.
The thread 0x1d08 has exited with code 0 (0x0).
The thread 0x1cf4 has exited with code 0 (0x0).
The thread 0x1ce0 has exited with code 0 (0x0).
The thread 0x1d68 has exited with code 0 (0x0).
The thread 0x1d58 has exited with code 0 (0x0).
'cpp-multicam-d.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\deviceaccess.dll'
'cpp-multicam-d.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\dpapi.dll'
'cpp-multicam-d.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\odbc32.dll'
'cpp-multicam-d.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\mfc42.dll'
'cpp-multicam-d.exe' (Win32): Unloaded 'C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.10586.0_none_811bc0006c44242b\comctl32.dll'
'cpp-multicam-d.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\Kswdmcap.ax'
'cpp-multicam-d.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\vidcap.ax'
The thread 0x1cd0 has exited with code 1 (0x1).
The thread 0x1d34 has exited with code 1 (0x1).
The thread 0x1cc8 has exited with code 1 (0x1).
The thread 0x1d10 has exited with code 1 (0x1).
The program '[1372] cpp-multicam-d.exe' has exited with code 1 (0x1).

Segfault when camera has non-sequential video device handles (Linux)

I noticed today that all my custom code, as well as all examples, suddenly started segfaulting.
The reason: due to some previous camera plugging and unplugging, the two video devices exposed by the F200 were assigned to /dev/video2 and /dev/video4. Once I removed the camera claiming video3 and re-plugged the F200, everything worked again.

I'm aware this is a very special scenario, just thought I'd mention it here in case somebody else runs into this.

Question about data fomat "any" and "z16".

Required Info
Camera Model R200
Win 10
VS2013

I want to use mulit f200s and r200s on my robot to detect the environment with depth data,when I get depth data with "z16" format, I have to do this transform:
int depth1 = depth_dev->get_depth_scale()_1000;
Will it damage the accuracy of the data? Is there a way to get data in "mm" like the SDK?
By the way,what will it do when I choose the format "any"?
Thank you.

SR300 enable_stream issue

It appears to be that there is no other preset available other than best_quality for the SR300 device. Is the support for SR300 going to be released soon?

Multi-cam with USB hub

I have been trying to connect multiple cameras to a USB 3.0 hub. I notice I can stream 2 streams with the highest colour resolution but any more than that and the library crashes. I am not too concerned about the frame rate, if it is slow that is not a big deal. Has anyone had any success with this?

Ubuntu 14.04 w/ 3.19 kernel - error re-initializing camera after crash or debugging

After debugging my code or the program crashes i get one of the following error messages (seems to be random which i get) when i restart my code (or the example code)

rs_error was raised when calling rs_create_context(api_version:4):
opcodes do not match

rs_error was raised when calling rs_create_context(api_version:4):
calibration table is not compatible with this API

I can usually fix this by un- and replugging the usb cable.

OSX - occasional error requiring unplug/replug

Running through the example, the first run working fine but thrown error in the next run. After that running fine again then thrown error again, and the same pattern for the next run.

Here the output of cpp-tutorial-2-streams when error:

rs::error was thrown when calling rs_create_context(api_version:4): libusb_bulk_transfer(...) returned LIBUSB_ERROR_TIMEOUT

Here the output of cpp-tutorial-2-streams when ok:

There are 1 connected RealSense devices.

Using device 0, an Intel RealSense F200
Serial number: 01FFFFFF9150096210
Firmware version: 2.60.0.0

I running it in MacBook Air 13" mid 2012

Version of libusb is 1.0.20 installed using homebrew.

I track down the error was thrown in this code of execute_usb_command (f200-private.cpp):

        // read
        if (in && inSize)
        {
            uint8_t buf[IVCAM_MONITOR_MAX_BUFFER_SIZE];

            errno = 0;

HERE----->            bulk_transfer(device, IVCAM_MONITOR_ENDPOINT_IN, buf, sizeof(buf), &outXfer, 1000);
            if (outXfer < (int)sizeof(uint32_t)) throw std::runtime_error("incomplete bulk usb transfer");

            op = *(uint32_t *)buf;
            if (outXfer > (int)inSize) throw std::runtime_error("bulk transfer failed - user buffer too small");
            inSize = outXfer;
            memcpy(in, buf, inSize);
        }

I've used the latest commit (a6df778)

The back of F200 still warm even after the application exit (i guess maybe the firmware still working in some loop). But the led is off, and there are no switching sound.

Have tried the hack version of the driver in here
https://github.com/mcguire-steve/libuvc
No issue like this happening. So i think it's not about libusb.

I think when the driver asking some data from the firmware. It stuck and not shutting down, even after the application exit.

Senz3D Creative Labs VF0780 support (or VF0800 microphone)

Is Creative Labs VF0800 supposed to be supported at all?

For now, USB vendor id 0x199e and product id are hardcoded 0x8101, while my device reports 0x041e (Creative Labs) and product id 0x4099.

After getting past it (by hardcoding these), cannot access control interface.
uvc_scan_control then lists 4 interfaces:
0: bInterfaceClass = 1, bInterfaceSubClass = 1
1: bInterfaceClass = 1, bInterfaceSubClass = 2
2: bInterfaceClass = 1, bInterfaceSubClass = 2
3: bInterfaceClass = 3, bInterfaceSubClass = 0
I.e., first three are LIBUSB_CLASS_AUDIO and LIBUSB_CLASS_HID.

But none of these interfaces list control units, and thus uvc::device::init_controls() fails to find control stream, and here I am stuck.

If there any specification for VF0800 available?

My configuration: Mac OS X 10.9.5, MacBook Air 2013 (USB2.0, but behavior should not differ till data transfer is requested, correct?)

Is it possible to run multiple SR300

I am running librealsense on OSX (libuvc backend), and when I tried to run cpp-multicam with two SR300, I got following error:

RealSense error calling rs_create_context(api_version:4):
    uvc_open2(...) returned Access denied

Is it possible to run multiple SR300? If not, how can I modify the code so that it will fix this error and let me run SR300 sequentially (capture data sequentially)? Thanks

Subdevice 0 bad magic number

I have the following issue when trying to use a R200 with librealsense:

$ ./cpp-capture
Capturing DEPTH at 480 x 360, fov = 56.4 x 43.9, distortion = NONE
Capturing COLOR at 640 x 480, fov = 54.5 x 41.9, distortion = MODIFIED_BROWN_CONRADY
Capturing INFRARED at 480 x 360, fov = 56.4 x 43.9, distortion = NONE
Capturing INFRARED2 at 480 x 360, fov = 56.4 x 43.9, distortion = NONE
rs.warn: Subdevice 0 bad magic number 0x0
rs.warn: Subdevice 0 bad magic number 0x0
rs.warn: Subdevice 0 bad magic number 0x0
rs.warn: Subdevice 0 bad magic number 0x0
rs.warn: Subdevice 0 frame status 0x1
rs.warn: Subdevice 1 frame status 0x1
rs.warn: Subdevice 0 frame status 0x1
rs.warn: Subdevice 1 frame status 0x1
[...]
RealSense error calling rs_wait_for_frames(device:0x940091c):
    Timeout waiting for frames.

Note that the capture works as expected with both the F200 and the SR300.

Here the details of the camera (it is hopefully running an up-to-date firmware):

$ ./cpp-enumerate-devices 
Device 0 - Intel RealSense R200:
 Serial number: 2211011528
 Firmware version: 1.0.72.06
 Supported options:
[...]

I'm running a freshly updated Ubuntu 14.04.4 with a patched 4.4 kernel.

Any idea?

Windows 10 Pro N Mf.dll dependency

Hi,

I have used the library on a 64-bit windows 10 machine running VS 2013 community. This works perfectly. However, when I try on another device which is a 64-bit windows 10 Pro N machine I get messages for 'cannot find MF.dll MFPlat.dll and MFReadWrite.dll'. I am not sure if this is an issue with the library or just with my configuration.

If there is a dependency on these dlls I can turn off to help, that would be greatly appreciated information to know.

Unable to control exposure of the color camera

I'm having troubles toggling auto exposure and getting/setting exposure time manually. supports_option() function works and reports that the rs::option::color_enable_auto_exposure is supported. However, when I try to get or set this option I get the following error:

RealSense error calling rs_get_device_option(device:0x19f7af0, option:COLOR_ENABLE_AUTO_EXPOSURE):
    VIDIOC_G_CTRL error 22, Invalid argument

At the same time, I can toggle auto exposure using v4l2-ctl -d /dev/video1 -c exposure_auto=1. So it seems to be a problem on the library side.

$ uname -a
Linux raccoon 3.19.0-49-generic #55~14.04.1-Ubuntu SMP Fri Jan 22 11:24:31 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Tried with both R200 and F200. Any suggestions?

IR field of view changes when depth is disabled

When playing around with the cpp-config-ui example, I found that the IR field of view changes when Depth is toggled on/off.

It seems to match the Depth image when Depth is on, but takes a smaller field of view when Depth is off.

I've found the same effect with the official RealSense SDK.

Could anyone explain it? Is it a bug, or intentional?

Thank you.

Required Info
Camera Model SR300
Firmware Version
Operating System & Version Windows 10
Kernel Version (Linux Only)
Build System VS2013

ROS interface

Is there already any plan to create a full functionality ROS interface for this?

Connection time out during kernel patch

During installation I get a time out error while trying to shallow clone the linux repo.
Specifically at this step:

Run the following script to patch uvcvideo.ko
./scripts/patch-uvcvideo-4.4.sh v4.4-wily (note the argument provided to this version of the script)
This script involves shallow cloning the Linux source repository (100mb), and may take a while

I get the terminal print out saying :

Shallow cloning Linux source repository... (~100GB, make take a while)

So I assume it is an issue in the git clone line in the script.

# Obtain Linux Kernel sources
echo "Shallow cloning Linux source repository... (~100GB, make take a while)"
git clone --verbose git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack linux-$LINUX_BRANCH --branch $THE_BRANCH --depth 1
cd linux-$LINUX_BRANCH

Everything up to this point worked as expected during the install. I thought there might be a newer patch than 4.4 but there doesn't seem to be. Any ideas?

Thanks,

Christian

Required Info
Camera Model R200
Firmware Version N/A
Operating System & Version Ubuntu 14.04.4 x64
Kernel Version (Linux Only) 4.4
Build System installation script

Incorrect colour in highly saturated areas [solved]

I have noticed a recurring issue which I also had with the RealSense SDK. When I create a colourised point cloud in PCL, areas which are very dark will have scatterings of dark blue colours and cyan colours. Similarly areas of white might contain red colours instead in the point cloud.

http://s13.postimg.org/nw4qhz8nr/Capture.png

My initial assumption was some kind of overflow. As I understand, very dark areas are not suitable for reliable depth values. However, if you were to infill some depth from surrounding areas then it should be possible to get a colour from the mapping function.The points in my cloud are valid and at the correct depth just the colour is off.

I use the following 3 functions to determine the pixel colour and check the output pixel is within the bounds of the RGB image:

rs_deproject_pixel_to_point(...)
rs_transform_point_to_point(,...)
rs_project_point_to_pixel(...)

So my question is whether this is a problem with the colour mapping or just an issue with PCL? Sorry, this is more of a forum type question.

F200 Not Working in Photobooth

Required Info
Camera Model F200
Firmware Version Not sure
Operating System & Version OSX 10.9.5
Kernel Version (Linux Only)
Build System XCode

The camera isn't working in Photobooth. I'm able to select the camera from Camera toolbar menu, but it just sits and spins with no display. Also curious, anyone able to do anything interesting with the camera on OSX (without bootcamp)? What tools are you using?

Include file directory prefix 'lib' confusing

Normally libraries, e.g. libcurl have their library file called e.g. libcurl.so, but keeps the include without the lib prefix, e.g. include/curl.

It would be great if also librealsense followed this convention.

F200 setOption freezes

When using multible F200 Sensors I encounter a problem when setting the laserpower.
Sometimes the application freeze and does not recover during the setOption cmd.
No error is thrown and waiting for an hour did not solve this problem. It seems to get worse, the more cpu activity runs in the background.

(Using Windows 8.1 , i5-4460 core at 3.2GHz and 8 Gig of ram)

The problem seems to occure in uvc-wmf.cpp.

device.subdevices[subdevice].ks_control->KsProperty((PKSPROPERTY)&node, sizeof(KSP_NODE), data, len, nullptr)

is executed but never completed.

void set_control(device & device, int subdevice, uint8_t ctrl, void *data, int len)
        {        

            device.open_ks_control();

            KSP_NODE node;
            memset(&node, 0, sizeof(KSP_NODE));
            node.Property.Set = device.subdevices[subdevice].ks_property_set; //{0x18682d34, 0xdd2c, 0x4073, {0xad, 0x23, 0x72, 0x14, 0x73, 0x9a, 0x07, 0x4c}}; // GUID_EXTENSION_UNIT_DESCRIPTOR
            node.Property.Id = ctrl;
            node.Property.Flags = KSPROPERTY_TYPE_SET | KSPROPERTY_TYPE_TOPOLOGY;
            node.NodeId = device.subdevices[subdevice].ks_node_id;

        check("IKsControl::KsProperty", device.subdevices[subdevice].ks_control->KsProperty((PKSPROPERTY)&node, sizeof(KSP_NODE), data, len, nullptr));
        }

Multicam Timestamps

My understanding is that the per frame timestamps are the amount of time since the start of the individual RealSense camera only.

When using multiple cameras simultaneously, is there a way to retrieve a relative timestamp between cameras, in order to find the time difference between exposures?

This would be extremely useful in VR and videography based applications, where multiple cameras are viewing a moving subject.

Thanks!

anyone get it to works on OS X Yosemite -10.10?

I followed the OS X installation guide, and i got this error. i am wondering if it only supports OSX10.7? or if there is anything that i could do to make it works on 10.10?

clang: warning: -lusb-1.0: 'linker' input unused
clang: warning: argument unused during compilation: '-L/usr/local/Cellar/libusb/1.0.20/lib'
src/uvc-v4l2.cpp:25:10: fatal error: 'linux/usb/video.h' file not found

include <linux/usb/video.h>

     ^

1 error generated.
make: *** [obj/uvc-v4l2.o] Error 1

Timeouts

Not strictly an issue, more of a question.

Do you consider adding timeouts for the rs_wait_for_frames call? I see it has some std::chrono fixed 5 second timeout, but this is just busy looping in infinite while loops, not a blocking call.

It is not passed to struct timeval for the select in v4l2 backend or libusb transfer setups - libuvc also hardcodes 5 second timeout.

This is perhaps not that critical as proper blocking is not that useful for cameras that don't have external triggers (like dc1394 or PointGrey), but I think it would be useful to have user settable timeout anyway (5 s might be too long).

In the meantime I'll read the code some more and think how to approach this issue.

GLFW3 linkage on OSX

Required Info
Camera Model F200
Firmware Version Not sure
Operating System & Version OSX 10.9.5
Kernel Version (Linux Only)
Build System XCode

I'm running into the following issues when I try to extract the Pointcloud example and build a new project.
robksawyer/Realsense_Pointcloud#1

I've meticulously gone through the build settings comparing the two projects and from what I can tell, I've matched them. However, still no luck. Any ideas?

Also, I'd really like to use the camera with some Open Frameworks (openframeworks.cc) projects. Any tips to get started here? Know of any OF projects already using the camera?

Broken scripts/install_glfw3

I was able to download, make and install glfw3 from the github page, but by using your install_glfw3.sh script I get what you can see below:

| Operating System & Version | Ubuntu 14.04 (fully updated) |

ataiya@Zeus:~/dev/librealsense/scripts$ ./install_glfw3.sh 
Get:1 http://security.ubuntu.com trusty-security InRelease [65.9 kB]
Ign http://extras.ubuntu.com trusty InRelease                                  
Ign http://archive.ubuntu.com trusty InRelease                                 
Hit http://extras.ubuntu.com trusty Release.gpg            
Get:2 http://archive.ubuntu.com trusty-updates InRelease [65.9 kB]
Hit http://extras.ubuntu.com trusty Release                                    
Get:3 http://security.ubuntu.com trusty-security/multiverse amd64 Packages [4,990 B]
Hit http://extras.ubuntu.com trusty/main Sources                               
Hit http://extras.ubuntu.com trusty/main amd64 Packages                        
Get:4 http://security.ubuntu.com trusty-security/universe amd64 Packages [124 kB]
Hit http://extras.ubuntu.com trusty/main i386 Packages                         
Hit http://archive.ubuntu.com trusty Release.gpg                               
Get:5 http://security.ubuntu.com trusty-security/restricted amd64 Packages [13.0 kB]
Get:6 http://archive.ubuntu.com trusty-updates/multiverse amd64 Packages [13.2 kB]
Get:7 http://security.ubuntu.com trusty-security/main amd64 Packages [430 kB]  
Get:8 http://archive.ubuntu.com trusty-updates/universe amd64 Packages [338 kB]
Ign http://extras.ubuntu.com trusty/main Translation-en_CA                     
Get:9 http://security.ubuntu.com trusty-security/multiverse i386 Packages [5,164 B]
Ign http://extras.ubuntu.com trusty/main Translation-en                        
Get:10 http://security.ubuntu.com trusty-security/universe i386 Packages [124 kB]
Get:11 http://security.ubuntu.com trusty-security/restricted i386 Packages [12.7 kB]
Get:12 http://security.ubuntu.com trusty-security/main i386 Packages [403 kB]  
Hit http://security.ubuntu.com trusty-security/main Translation-en             
Hit http://security.ubuntu.com trusty-security/multiverse Translation-en       
Hit http://security.ubuntu.com trusty-security/restricted Translation-en       
Hit http://security.ubuntu.com trusty-security/universe Translation-en         
Get:13 http://archive.ubuntu.com trusty-updates/restricted amd64 Packages [15.9 kB]
Get:14 http://archive.ubuntu.com trusty-updates/main amd64 Packages [712 kB]   
Get:15 http://archive.ubuntu.com trusty-updates/multiverse i386 Packages [13.4 kB]
Get:16 http://archive.ubuntu.com trusty-updates/universe i386 Packages [339 kB]
Get:17 http://archive.ubuntu.com trusty-updates/restricted i386 Packages [15.6 kB]
Get:18 http://archive.ubuntu.com trusty-updates/main i386 Packages [692 kB]    
Hit http://archive.ubuntu.com trusty-updates/main Translation-en               
Hit http://archive.ubuntu.com trusty-updates/multiverse Translation-en         
Hit http://archive.ubuntu.com trusty-updates/restricted Translation-en         
Hit http://archive.ubuntu.com trusty-updates/universe Translation-en           
Hit http://archive.ubuntu.com trusty Release                                   
Hit http://archive.ubuntu.com trusty/main Sources                              
Hit http://archive.ubuntu.com trusty/restricted Sources                        
Hit http://archive.ubuntu.com trusty/multiverse Sources                        
Hit http://archive.ubuntu.com trusty/universe Sources                          
Hit http://archive.ubuntu.com trusty/main amd64 Packages                       
Hit http://archive.ubuntu.com trusty/restricted amd64 Packages                 
Hit http://archive.ubuntu.com trusty/universe amd64 Packages                   
Hit http://archive.ubuntu.com trusty/multiverse amd64 Packages                 
Hit http://archive.ubuntu.com trusty/main i386 Packages                        
Hit http://archive.ubuntu.com trusty/restricted i386 Packages                  
Hit http://archive.ubuntu.com trusty/universe i386 Packages                    
Hit http://archive.ubuntu.com trusty/multiverse i386 Packages                  
Hit http://archive.ubuntu.com trusty/main Translation-en_CA                    
Hit http://archive.ubuntu.com trusty/main Translation-en                       
Hit http://archive.ubuntu.com trusty/multiverse Translation-en                 
Hit http://archive.ubuntu.com trusty/restricted Translation-en                 
Hit http://archive.ubuntu.com trusty/universe Translation-en_CA                
Hit http://archive.ubuntu.com trusty/universe Translation-en                   
Ign http://archive.ubuntu.com trusty/multiverse Translation-en_CA              
Ign http://archive.ubuntu.com trusty/restricted Translation-en_CA              
Fetched 3,390 kB in 18s (181 kB/s)                                             
Reading package lists... Done
Reading package lists... Done
Building dependency tree       
Reading state information... Done
build-essential is already the newest version.
cmake is already the newest version.
libglu1-mesa-dev is already the newest version.
git is already the newest version.
xorg-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
fatal: destination path '/tmp/glfw' already exists and is not an empty directory.
ataiya@Zeus:~/dev/librealsense/scripts$ rm -rf /tmp/glfw
ataiya@Zeus:~/dev/librealsense/scripts$ ./install_glfw3.sh 
Hit http://security.ubuntu.com trusty-security InRelease
Ign http://archive.ubuntu.com trusty InRelease
Ign http://extras.ubuntu.com trusty InRelease  
Hit http://archive.ubuntu.com trusty-updates InRelease
Hit http://extras.ubuntu.com trusty Release.gpg                         
Hit http://security.ubuntu.com trusty-security/multiverse amd64 Packages
Hit http://archive.ubuntu.com trusty Release.gpg                               
Hit http://extras.ubuntu.com trusty Release                           
Hit http://security.ubuntu.com trusty-security/universe amd64 Packages 
Hit http://archive.ubuntu.com trusty-updates/multiverse amd64 Packages         
Hit http://extras.ubuntu.com trusty/main Sources                               
Hit http://security.ubuntu.com trusty-security/restricted amd64 Packages
Hit http://archive.ubuntu.com trusty-updates/universe amd64 Packages           
Hit http://extras.ubuntu.com trusty/main amd64 Packages                        
Hit http://security.ubuntu.com trusty-security/main amd64 Packages             
Hit http://archive.ubuntu.com trusty-updates/restricted amd64 Packages         
Hit http://extras.ubuntu.com trusty/main i386 Packages                         
Hit http://security.ubuntu.com trusty-security/multiverse i386 Packages        
Hit http://archive.ubuntu.com trusty-updates/main amd64 Packages               
Hit http://security.ubuntu.com trusty-security/universe i386 Packages          
Hit http://archive.ubuntu.com trusty-updates/multiverse i386 Packages          
Hit http://security.ubuntu.com trusty-security/restricted i386 Packages        
Hit http://archive.ubuntu.com trusty-updates/universe i386 Packages            
Hit http://security.ubuntu.com trusty-security/main i386 Packages              
Hit http://archive.ubuntu.com trusty-updates/restricted i386 Packages          
Hit http://security.ubuntu.com trusty-security/main Translation-en             
Hit http://archive.ubuntu.com trusty-updates/main i386 Packages                
Hit http://security.ubuntu.com trusty-security/multiverse Translation-en       
Hit http://archive.ubuntu.com trusty-updates/main Translation-en               
Hit http://security.ubuntu.com trusty-security/restricted Translation-en       
Hit http://archive.ubuntu.com trusty-updates/multiverse Translation-en         
Hit http://security.ubuntu.com trusty-security/universe Translation-en         
Hit http://archive.ubuntu.com trusty-updates/restricted Translation-en  
Hit http://archive.ubuntu.com trusty-updates/universe Translation-en     
Ign http://extras.ubuntu.com trusty/main Translation-en_CA              
Hit http://archive.ubuntu.com trusty Release    
Ign http://extras.ubuntu.com trusty/main Translation-en
Hit http://archive.ubuntu.com trusty/main Sources
Hit http://archive.ubuntu.com trusty/restricted Sources
Hit http://archive.ubuntu.com trusty/multiverse Sources
Hit http://archive.ubuntu.com trusty/universe Sources
Hit http://archive.ubuntu.com trusty/main amd64 Packages
Hit http://archive.ubuntu.com trusty/restricted amd64 Packages
Hit http://archive.ubuntu.com trusty/universe amd64 Packages
Hit http://archive.ubuntu.com trusty/multiverse amd64 Packages
Hit http://archive.ubuntu.com trusty/main i386 Packages
Hit http://archive.ubuntu.com trusty/restricted i386 Packages
Hit http://archive.ubuntu.com trusty/universe i386 Packages
Hit http://archive.ubuntu.com trusty/multiverse i386 Packages
Hit http://archive.ubuntu.com trusty/main Translation-en_CA
Hit http://archive.ubuntu.com trusty/main Translation-en
Hit http://archive.ubuntu.com trusty/multiverse Translation-en
Hit http://archive.ubuntu.com trusty/restricted Translation-en
Hit http://archive.ubuntu.com trusty/universe Translation-en_CA
Hit http://archive.ubuntu.com trusty/universe Translation-en
Ign http://archive.ubuntu.com trusty/multiverse Translation-en_CA              
Ign http://archive.ubuntu.com trusty/restricted Translation-en_CA              
Reading package lists... Done                                                  
Reading package lists... Done
Building dependency tree       
Reading state information... Done
build-essential is already the newest version.
cmake is already the newest version.
libglu1-mesa-dev is already the newest version.
git is already the newest version.
xorg-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Cloning into '/tmp/glfw'...
remote: Counting objects: 17491, done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 17491 (delta 6), reused 0 (delta 0), pack-reused 17471
Receiving objects: 100% (17491/17491), 8.77 MiB | 3.12 MiB/s, done.
Resolving deltas: 100% (11656/11656), done.
Checking connectivity... done.
Branch latest set up to track remote branch latest from origin.
Switched to a new branch 'latest'
-- The C compiler identification is GNU 4.8.4
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so  
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE) 
-- Using X11 for window creation
-- Using GLX for context creation
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/glfw
Scanning dependencies of target glfw
[  2%] Building C object src/CMakeFiles/glfw.dir/context.c.o
[  4%] Building C object src/CMakeFiles/glfw.dir/init.c.o
[  6%] Building C object src/CMakeFiles/glfw.dir/input.c.o
[  8%] Building C object src/CMakeFiles/glfw.dir/monitor.c.o
[ 10%] Building C object src/CMakeFiles/glfw.dir/window.c.o
[ 12%] Building C object src/CMakeFiles/glfw.dir/x11_init.c.o
[ 14%] Building C object src/CMakeFiles/glfw.dir/x11_monitor.c.o
[ 16%] Building C object src/CMakeFiles/glfw.dir/x11_window.c.o
[ 18%] Building C object src/CMakeFiles/glfw.dir/xkb_unicode.c.o
[ 20%] Building C object src/CMakeFiles/glfw.dir/linux_joystick.c.o
[ 22%] Building C object src/CMakeFiles/glfw.dir/posix_time.c.o
[ 24%] Building C object src/CMakeFiles/glfw.dir/posix_tls.c.o
[ 26%] Building C object src/CMakeFiles/glfw.dir/glx_context.c.o
make[2]: *** No rule to make target `/usr/lib/x86_64-linux-gnu/libGL.so', needed by `src/libglfw.so.3.1'.  Stop.
make[1]: *** [src/CMakeFiles/glfw.dir/all] Error 2
make: *** [all] Error 2

Build without glfw3

It would be awesome to be able to run without glfw3 as I don't care about builtin visualizations. It would be great if that was more put inside examples or such.

"Sparse" alignment image upscaling?

Hi again, I'm sort-of misusing the issue tracker as a forum now, feel free to close if not intended :-)

That being said, I noticed that e.g. when using rs::stream::depth_aligned_to_color at a higher color resolution, you get a "sparse" image. This is, of course, expected as https://github.com/IntelRealSense/librealsense/blob/master/src/image.cpp#L356 only maps one single source pixel to a single target pixel.

In libfreenect2, we had implemented a naive-but-mostly-sufficient nearest-neighbor upscaling procedure for this case so that you can get a dense, color-aligned depth image. Would you be interested in a PR implementing a similar behaviour for librealsense? Then I'll prepare one.

Is it possible to run the library without having root permissions?

For example, running cpp-pointcloud results in the error:

RealSense error calling rs_create_context(api_version:4): libusb_open(...) returned LIBUSB_ERROR_ACCESS

I see from other forums that the solution to this is to add myself to the root group or run with 'sudo', but I'd prefer not to have to do this on every machine on which we want to use the library. My lab has several different hardware platforms and this would be a pain in the neck, and also a security hazard.

Have others found a way around this problem?

Have the linux kernel patches upstreamed

If the kernel patch required to use the camera on Linux have been upstreamed, it would be useful to mention it in the documentation, with the name of the first kernel release including these patches.

Otherwise, this issue can serve as a tracking issue for the upstreaming of these patches (links to the possible upstream discussions welcome!)

Ubuntu 12.04, Kernel 3.19 - UVCIOC_CTRL_QUERY:UVC_SET_CUR error 5

I have a R200 Realsense camera attached to a Linux box running Ubuntu 12.04, however I have upgrade the kernel to 3.19.
I have built librealsense using the Video4Linux backend and the camera sometimes works however often it fails with the following error (or similar errors):
Realsense Error: UVCIOC_CTRL_QUERY:UVC_SET_CUR error 5, Input/output error

According to this thread teknotus/depthview#1 the issue arises because the ioclt commands do not match video4linux commands, however the solutions provided there do not work.

Can anybody help?
(It is not a possibility to upgrade the system from 12.04 and Linux 3.19 is as far as I can go on a 12.04)

Error waiting for frames on f200

On some occasions, I get an error message saying there was an error waiting for frames, and the entire program freezes, then crashes. Not sure what causes this bug, as it occurs randomly.

Issues opening depth + infrared on the F200

Hi there,

I am trying to get the example files to work with the RS F200, but it seems to me that the depth and infrared streams look strange when they are open simultaneously (on v4l). I've attached some pictures and would appreciate if any input on why this is going on.

withir
withoutir

Firmware: 2.60
OS: (regrettably) 15.04, linux 4.4.
chipset: Intel 7 series/C216 family.

Unclear ubuntu install instructions

From this page the Ubuntu compile/install instructions say: all.pro contains librealsense and all example applications. The issue is that there is no file called all.pro in the repository.

Compiling with Makefile is also an option, but there must be a dependency that you forgot to document:

ataiya@Zeus:~/dev/librealsense$ make
mkdir -p obj/libuvc
mkdir -p lib
mkdir -p bin
cc src/verify.c -std=c89 -Iinclude -c -o obj/verify.o
g++ src/context.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/context.o
g++ src/device.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/device.o
g++ src/f200.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/f200.o
g++ src/f200-private.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/f200-private.o
g++ src/image.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/image.o
g++ src/log.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/log.o
g++ src/r200.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/r200.o
g++ src/r200-private.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/r200-private.o
g++ src/rs.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/rs.o
g++ src/stream.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/stream.o
g++ src/sync.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/sync.o
g++ src/types.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/types.o
g++ src/uvc.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/uvc.o
g++ src/uvc-libuvc.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/uvc-libuvc.o
g++ src/uvc-v4l2.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/uvc-v4l2.o
In file included from src/uvc-v4l2.cpp:30:0:
/usr/include/libusb-1.0/libusb.h:732:4: warning: ISO C++ forbids zero-size array ‘dev_capability_data’ [-Wpedantic]
  [0] /* non-standard, but usually working code */
    ^
/usr/include/libusb-1.0/libusb.h:763:4: warning: ISO C++ forbids zero-size array ‘dev_capability’ [-Wpedantic]
  [0] /* non-standard, but usually working code */
    ^
/usr/include/libusb-1.0/libusb.h:1257:4: warning: ISO C++ forbids zero-size array ‘iso_packet_desc’ [-Wpedantic]
  [0] /* non-standard, but usually working code */
    ^
g++ src/uvc-wmf.cpp -std=c++11 -fPIC -pedantic -mssse3 -O3 -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/uvc-wmf.o
cc src/libuvc/ctrl.c -std=c11 -fPIC -pedantic -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/libuvc/ctrl.o
cc src/libuvc/dev.c -std=c11 -fPIC -pedantic -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/libuvc/dev.o
src/libuvc/dev.c: In function ‘uvc_open2’:
src/libuvc/dev.c:272:85: warning: ISO C99 requires rest arguments to be used [enabled by default]
       UVC_DEBUG("device has a status interrupt endpoint, but unable to read from it");
                                                                                     ^
src/libuvc/dev.c: In function ‘uvc_get_device_descriptor’:
src/libuvc/dev.c:472:7: warning: implicit declaration of function ‘strdup’ [-Wimplicit-function-declaration]
       desc_internal->serialNumber = strdup((const char*) buf);
       ^
src/libuvc/dev.c:472:35: warning: assignment makes pointer from integer without a cast [enabled by default]
       desc_internal->serialNumber = strdup((const char*) buf);
                                   ^
src/libuvc/dev.c:478:35: warning: assignment makes pointer from integer without a cast [enabled by default]
       desc_internal->manufacturer = strdup((const char*) buf);
                                   ^
src/libuvc/dev.c:484:30: warning: assignment makes pointer from integer without a cast [enabled by default]
       desc_internal->product = strdup((const char*) buf);
                              ^
src/libuvc/dev.c: In function ‘uvc_process_status_xfer’:
src/libuvc/dev.c:1496:53: warning: ISO C99 requires rest arguments to be used [enabled by default]
       UVC_DEBUG("Unhandled update from VC interface");
                                                     ^
src/libuvc/dev.c:1540:63: warning: ISO C99 requires rest arguments to be used [enabled by default]
     UVC_DEBUG("Unhandled update from VideoStreaming interface");
                                                               ^
src/libuvc/dev.c:1549:54: warning: ISO C99 requires rest arguments to be used [enabled by default]
     UVC_DEBUG("Running user-supplied status callback");
                                                      ^
cc src/libuvc/diag.c -std=c11 -fPIC -pedantic -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/libuvc/diag.o
src/libuvc/diag.c: In function ‘uvc_print_diag’:
src/libuvc/diag.c:186:17: warning: unknown escape sequence: '\%' [enabled by default]
                 "\t\t  GUID: ",
                 ^
cc src/libuvc/frame.c -std=c11 -fPIC -pedantic -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/libuvc/frame.o
cc src/libuvc/init.c -std=c11 -fPIC -pedantic -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/libuvc/init.o
cc src/libuvc/stream.c -std=c11 -fPIC -pedantic -DRS_USE_V4L2_BACKEND `pkg-config --cflags --libs libusb-1.0`  -c -o obj/libuvc/stream.o
src/libuvc/stream.c: In function ‘_uvc_process_payload’:
src/libuvc/stream.c:456:44: warning: ISO C99 requires rest arguments to be used [enabled by default]
       UVC_DEBUG("bad packet: error bit set");
                                            ^
src/libuvc/stream.c: In function ‘uvc_stream_start’:
src/libuvc/stream.c:819:58: warning: ISO C99 requires rest arguments to be used [enabled by default]
       UVC_DEBUG("libusb_set_interface_alt_setting failed");
                                                          ^
src/libuvc/stream.c:877:48: warning: ISO C99 requires rest arguments to be used [enabled by default]
       UVC_DEBUG("libusb_submit_transfer failed");
                                                ^
src/libuvc/stream.c: In function ‘_uvc_populate_frame’:
src/libuvc/stream.c:946:8: warning: multi-character character constant [-Wmultichar]
   case '2YUY': /* YUY2 */
        ^
g++ -std=c++11 -shared obj/verify.o obj/context.o obj/device.o obj/f200.o obj/f200-private.o obj/image.o obj/log.o obj/r200.o obj/r200-private.o obj/rs.o obj/stream.o obj/sync.o obj/types.o obj/uvc.o obj/uvc-libuvc.o obj/uvc-v4l2.o obj/uvc-wmf.o obj/libuvc/ctrl.o obj/libuvc/dev.o obj/libuvc/diag.o obj/libuvc/frame.o obj/libuvc/init.o obj/libuvc/stream.o `pkg-config --cflags --libs libusb-1.0` -o lib/librealsense.so
cc examples/c-tutorial-1-depth.c -Iinclude -Llib -lrealsense -lm `pkg-config --cflags --libs glfw3 glu gl` -o bin/c-tutorial-1-depth
/usr/bin/ld: cannot find -lGL
collect2: error: ld returned 1 exit status
make: *** [bin/c-tutorial-1-depth] Error 1
ataiya@Zeus:~/dev/librealsense$

Which is slightly odd considering this:

ataiya@Zeus:~/dev/librealsense$ locate libGL.
/usr/lib/libGL.so.1
/usr/lib/x86_64-linux-gnu/libGL.la
/usr/lib/x86_64-linux-gnu/libGL.so
/usr/lib/x86_64-linux-gnu/libGL.so.1
/usr/lib/x86_64-linux-gnu/libGL.so.352.21

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.