/librealsense

:camera: Cross-platform camera capture for Intel® RealSense™ F200, SR300 and R200

Primary LanguageC++Apache License 2.0Apache-2.0

Intel® RealSense™ Cross Platform API

[ License license-image ] license

Platform Build Status
Linux and OS X Build Status
Windows Build status

This project is a cross-platform library (Linux, Windows, Mac) for capturing data from the Intel® RealSense™ F200, SR300, R200, LR200 and the ZR300 cameras. This effort was initiated to better support researchers, creative coders, and app developers in domains such as robotics, virtual reality, and the internet of things. Several often-requested features of RealSense™ devices are implemented in this project, including multi-camera capture.

Developer kits containing the necessary hardware to use this library are available for purchase at this link. This project is separate from the production software stack available in the Intel® RealSense™ SDK, namely that this library only encompasses camera capture functionality without additional computer vision algorithms.

The Intel® RealSense™ Cross Platform API is experimental and not an official Intel product. It is subject to incompatible API changes in future updates.

Table of Contents

Installation Guide

Documentation

A comprehensive suite of sample and tutorial applications are provided in the /examples subdirectory. For new users, it is best to review the tutorial series of apps which are designed to progressively introduce API features.

  • C API - With doxygen-style API comments
  • To build documentation locally from sources, on Ubuntu run the following commands:
    • sudo apt-get install doxygen
    • doxygen doc/Doxygen_API/Doxyfile
  • What's New?
  • Projection APIs - A guide on coordinate systems, calibration information, and projection
  • Camera Spec Sheet - A brief overview of R200, F200 and SR300
  • Developer Notes - Several informal notes gathered during internal releases
  • Stream Formats - A list of available stream resolutions and pixel formats provided by the supported devices.

Functionality

  1. Native streams: depth, color, infrared and fisheye.
  2. Synthetic streams: rectified images, depth aligned to color and vice versa, etc.
  3. Intrinsic/extrinsic calibration information.
  4. Majority of hardware-specific functionality for individual camera generations (UVC XU controls).
  5. Multi-camera capture across heterogeneous camera architectures (e.g. mix R200 and F200 in same application)
  6. Motion-tracking sensors acquisition (ZR300 only)

Compatible Devices

  1. RealSense R200 (Firmware 1.0.72.06 and up)
  2. RealSense F200 (Firmware 2.60.0.0 and up)
  3. RealSense SR300 (Firmware 3.10.10.0 and up)
  4. RealSense LR200 (Firmware 2.0.71.18 and up)
  5. RealSense ZR300
  • Camera Firmware 2.0.71.18 and up
  • USB Adapter Board Firmware 1.27.0.0 and up
  • Motion Module Firmware 1.23.0.0 and up

Compatible Platforms

The library is written in standards-conforming C++11 and relies only on the C89 ABI for its public interface. It is developed and tested on the following platforms:

  1. Ubuntu 14.04 and 16.04 LTS (GCC 4.9 toolchain)
  2. Windows 10 (Visual Studio 2015 Update 2)
  3. Mac OS X 10.7+ (Clang toolchain)
  4. Ostro

Hardware Requirements

Developer kits containing the necessary hardware to use this library are available for purchase at this link. In addition, several consumer tablets and laptops with integrated cameras may also function, such as the HP Spectre x2 with R200.

Developer kits require USB 3.0. RealSense™ cameras do not provide backwards compatibility with USB 2.0. Not all USB host chipsets are compatible with this library, although it has been validated with recent generations of the Intel Host Controller chipset. An exhaustive list of incompatible hardware is not presently provided. On x86, a Haswell or newer architecture is recommended.

For small-form factor usages, this library has been demonstrated to work on the following boards:

Integrations

The library has been integrated with a number of third-party components and operating systems. While most of these projects are not directly supported by the team, they are useful resources for users of this library.

Additional language bindings (experimental, community maintained):

License

Copyright 2016 Intel Corporation

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.