The ADI ToF SDK is a cross platform library for the Analog Devices depth cameras based on the ADDI9036 TOF Signal Processor. It provides support for data processing on the embedded processor platform as well as for USB, Ethernet or Wi-Fi to connect to a host computer. This flexibility enables evaluation across a wide range of use cases and environments.
The SDK provides an API to control the ToF camera and stream data. Windows and Linux support are built into the SDK as well as sample code and wrappers for various languages including Python, C/C++ and Matlab.
For more details on building the SDK on a host platform please check the User Guide specified below for either Windows OS or Linux OS.
Operating System | Documentation | GitHub master status | Downloads |
---|---|---|---|
Windows | User Guide Build Instructions |
||
Linux | User Guide Build Instructions |
Designed using a modular approach, the 3D ToF platforms enable connectivity to the to a variety of embedded processing platforms. For more details on running the SDK on your processing platform of choice please check the corresponding User Guide below.
Documentation | GitHub master status | Downloads |
---|---|---|
User Guide Build Instructions |
Platform | Documentation | GitHub master status | Downloads |
---|---|---|---|
Raspberry Pi 3,4 32bit | User Guide Build Instructions |
|
|
Raspberry Pi 4 64bit | User Guide Build Instructions |
|
|
Nvidia Jetson Nano | User Guide Build Instructions |
|
|
Nvidia Jetson Xavier NX | User Guide Build Instructions |
|
Platform | Documentation | GitHub master status | Downloads |
---|---|---|---|
DragonBoard 410c | User Guide Build Instructions |
|
|
Raspberry Pi 3,4 | User Guide Build Instructions |
|
|
Nvidia Jetson Nano | User Guide Build Instructions |
|
|
Nvidia Jetson Xavier NX | User Guide Build Instructions |
|
|
Thor96 | Arrow Electronics Github | - | - |
How to write the SD card image onto the SD card?
From an architectural point of view, the SDK consists of two layers. One layer is the high level API which allows to easily create a camera object, configure it and request frames. The other layer is the low level API which exposes an interface through which advanced configuration operations can be executed on the camera hardware.
For more details about the SDK check the links below:
Building and installing the SDK
Example | Language | Description |
---|---|---|
aditof-demo | C++ | An application that displays the infrared and depth images. |
first-frame | C++ Python |
An example code that shows the steps required to get to the point where camera frames can be captured. |
first-frame-network | C++ | An application that shows how to use the aditof sdk to talk to a remote ToF camera over the network. |
low_level_example | Python | A simple example of how to get access to the low-level API of the camera. |
dnn | Python with OpenCV C++ with OpenCV |
A simple object detection example. |
imshow | C++ with OpenCV | A basic example that displays data provided by the Aditof SDK. |
Image Acquisition Toolbox | MATLAB | Examples of how to use the AD-96TOF1-EBZ camera in MATLAB over USB and Network. |
Hand Gesture Detection | MATLAB | Detecting hand signs to play Rock, Paper and Scissors. |
showPointCloud | Python with Open3D C++ with Open3D |
A basic example that displays a pointcloud built using the Open3D library and the data provided by the Aditof SDK. |
showPointCloud camera node |
C++ with ROS | A simple example of how to use AD-96TOF1-EBZ with the ROS distribution. |
Directory | Description |
---|---|
apps | Applications specific to various targets and hosts |
bindings | SDK bindings to other languages |
ci | Useful scripts for continuous integration |
doc | Documentation |
examples | Example code for the supported programming languages |
misc | Calibration and kernel files |
scripts | Useful development scripts |
sdk | SDK source code |
tools | Camera calibration tools |
utils | Various utils for the embedded platforms |
The SDK is formated using clang-format 6.0.
Before creating a PR please run ./scrips/format.sh
from the root of the project.
In order to prevent a file from being formated add it to .clangformatignore