Intel® RealSense™ SDK for Linux
The Intel® RealSense™ SDK for Linux provides libraries, tools, and samples to develop applications using Intel® RealSense™ cameras, over the Intel® RealSense™ Cross Platform API (also known as librealsense).
The SDK provides functionality for record and playback of camera streams for test and validation.
The SDK includes libraries which support the camera stream projection of streams into a common world-space viewpoint, and libraries which enable the use of multiple middleware modules simultaneously for common multi-modal scenarios.
Table of Contents
Compatible Devices
Intel® RealSense™ ZR300
Compatible Platforms
The library is written in standards-conforming C++11.
It has been developed and tested on Ubuntu 16.04 x64 (GCC 5.4 toolchain).
Functionality
Note: This API is experimental and is not an official Intel product.
It is subject to incompatible API changes in future updates. Breaking API changes are noted through release numbers.
-
Record and Play
- Record: The record module provides a utility to create a file, which can be used by the playback module to create a video source.
The record module provides the same camera API as defined by the SDK (Intel® RealSense™ Cross Platform API) and the record API to configure recording parameters such as output file and state (pause and resume).
The record module loads Intel® RealSense™ Cross Platform API to access the camera device and execute the set requests and reads, while writing the configuration and changes to the file.
- Playback: The playback module provides a utility to create a video source from a file.
The playback module provides the same camera API as defined by the SDK (Intel® RealSense™ Cross Platform API), and the playback API to configure recording parameters such as input file, playback mode, seek, and playback state (pause and resume).
The playback module supports files that were recorded using the Linux SDK recorder and the Windows RSSDK recorder (up to version 2016 R2).
-
Frame data container
The SDK provides an image container for raw image access and basic image processing services,
such as format conversion, mirror, rotation, and more. It caches the processing output to optimize multiple requests of the same operation.
The image container includes image metadata, which may be used by any pipeline component to attach additional data or computer vision (CV) module processing output to be used by other pipeline components. The SDK uses a correlated samples container to provide access to camera images and motion sensor samples from the relevant streams, which are time-synchronized. The correlated samples container includes all relevant raw buffers, metadata, and information required to access the attached images.
-
Spatial correlation and projection
The Spatial Correlation and Projection library provides utilities for spatial mapping:
- Map between color or depth image pixel coordinates and real world coordinates
- Correlate depth and color images and align them in space
-
Pipeline
The pipeline is a class, which abstracts the details of how the cognitive data is produced by the computer vision modules.
The application can focus on consuming the computer vision output, leaving the camera configuration and streaming details for the pipeline to handle.
-
Samples
- Projection: The sample demonstrates how to use the different spatial correlation and projection functions, from live camera and recorded file.
- Record and Playback: The sample demonstrates how to record and play back a file while the application is streaming, with and without an active CV module, with minimal changes to the application, compared to live streaming.
- Video module, asynchronized: The sample demonstrates an application usage of a Computer Vision module, which implements asynchronous sample processing.
- Video module, synchronized: The sample demonstrates an application usage of a Computer Vision module, which implements synchronous samples processing.
- Fatal error recovery: The sample demonstrates how the application can recover from a fatal error in one of the SDK components (CV module or core module), without having to terminate.
-
Tools
- Capture tool: Provides a GUI to view camera streams, create a new file from a live camera, and play a file in the supported formats. The tool provides options to render the camera or file images.
- Projection tool: Provides simple visualization of the projection functions output, to allow human eye detection of major offsets in the projection computation.
- System Info tool: Presents system data such as Linux name, Linux kernel version, CPU information, and more.
-
Utilities
- Log: The SDK provides a logging library, which can be used by the SDK components and the application to log meaningful events.
- Time Sync utility: Provides methods to synchronize multiple streams of images and motion samples based on the samples time-stamp or sample number.
- SDK Data Path utility: The SDK provides a utility to locate SDK files in the system.
The utility is used by Computer Vision modules, which need to locate data files in the system that are constant for all applications (not application- or algorithm-instance specific).
- FPS counter: Measures the actual FPS in a specific period. You can use this utility to check the actual FPS in all software stack layers in your applications, to analyze FPS latency in those layers.
Dependencies list
To successfully compile and use the SDK, you should install the following dependencies:
Supported Languages and Frameworks
C++
Learn More
For detailed instructions on developing using this library, please refer to Intel® RealSense™ SDK for Linux Documentation
License
Copyright 2017 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.