Sentis-ToF-M100 API 1.0.0 API_for_using_the_Bluetechnix_Sentis_ToF_M100_camera

- Main Page
- Modules
- Data Structures
- Files

All Data Structures Files Functions Variables Typedefs Macros Groups Pages
Sentis-ToF-M100 camera API

# Introduction

Sentis-ToF-M100 camera API

This software enables network communication with the camera Sentis-ToF-M100 from Bluetechnix GmbH. It enables camera control via read and write access to the camera registers via TCP and it also provides an asynchronous reader thread for capturing image data that is sent out by the camera via UDP packets on a multicast channel.

# Installation

## Linux

For Debian derived distributions as Ubuntu you can use the .deb package for your system architecture. If you work with other linux distributions you can find in the same folder the compiled library and the headers in a tar.gz file. The sample applications will look for these files in common system paths (/usr/, /usr/local/). If you decide to have the library somewhere else, remember to change the cmake module files in samples/ to find it.

In order to compile the sample applications you will need the following dependencies installed:

sudo get-apt install build-essential cmake freeglut freeglut-dev

## Windows

To use the library in windows you can either use the dynamic library or the static library version. The sample applications were compiled with the dynamic version, therefore we have added a bat file to easily execute them. You can also add the .dll file from windows/dll/<arch>/ to your system path (i.e. c:/windows/system32).

You will also need the Visual C++ Redistributable for your system version. The Visual C++ Redistributable Packages install runtime components that are required to run C++ applications built with Visual Studio. You can get them from the Download Center web site of Microsoft:

Visual C++ Redistributable for Visual Studio 2012: http://www.microsoft.com/en-us/download/details.aspx?id=30679

You need also need the 2010 version:

Microsoft Visual C++ 2010 Redistributable Package (x64): http://www.microsoft.com/en-us/download/details.aspx?id=14632

Microsoft Visual C++ 2010 Redistributable Package (x86): http://www.microsoft.com/en-us/download/details.aspx?id=5555

The windows version of the library depends on the pthreads-w32 library. You to install this library to your computer as well. You can get it from http://www.sourceware.org/pthreads-win32/ of you can use the compiled version we have added in windows/libraries/pthreads-w32. Copy the .dll file in your system path.

To execute the samples, you will also need the freeglut utilities library for windows. You can get it from http://freeglut.sourceforge.net/ of used the dll found in windows/libraries/freeglut/.

# Getting Started

## Network configuration

To start communicating with your Sentis-ToF-M100 camera you need to configure your network connections: By default the M100 has the local IP "192.168.0.10" as control address set in its registers. Please choose a network address in the same subnet. The camera's IP can be changed later on. For the data udp mulicast connection the default address is "224.0.0.1" The ports used by the camera to send the network packets are:
tcp=10001, udp=10002.

Make sure these ports are not been used. You could change them later by setting the right camera register. Please refer to the Sentis-ToF-M100 documentation to know which registers contain the network parameters and to get more information about the camera.

The included sample applications use this configuration to create the connections with the device.

In order to be sure that the communication with the camera is correct, we recommend to execute first the register_printer sample, as it uses a TCP connection only. If you get a list of registers and their actual values without any error, your basic network configuration is correct, if you don't get depth/image data please verify your multicast settings.

Note for windows users:
When you execute the demo apps for the first time and the windows firewall is activated, a security prompt will be displayed. Please make sure that you select the "Allow access" option for private networks. You could also change your firewall configuration in "Control Panel -> System and Secutrity -> Firewall->Allowed Programs".

## Samples

We have included three different samples with this package:

- Register_printer: This application reads out all the general registers of the camera and prints their contents. This helps you to check how the camera is configured.

- Glut-3d: OpenGL viewer that displays 3d point cloud images obtained by the M100 camera using the XYZ+I format. The intensity values are dynamically mapped to a grey-scale ramp bounded by the maximal intensity.

- Glut-distances: A simple OpenGL viewer that plots depth data received from the camera to a regular grid.

The Glut applications depend on the freeglut utilities library. Please read the installation section to know how to get it.

To get more information about how the samples work please refer to sample files in this document.

## Linux

For linux we include a CMakeList.txt file which will let you compile the samples easily. (cmake must be installed) Create a build directory (i.e inside the sample folder) and run cmake:

cd samples
mkdir build
cd build
cmake ..
make

After compiling you will find the executables under the build/ directory.

## Windows

In windows we have already included executable files for the application samples. Please use the include .bat files to execute them or make sure you have the library dependencies installed in your system.

The API and some samples use pthread-w32 and freeglut as mentioned before. You will find in windows/libraries/ the binary library files used when this m100 API was built (pthreadVC2.dll and freeglut.dll). Copy the correct version for your system in c:/windows/system32. Remember also to install the m100.dll file you find in windows/bin/ folder to the system32/ directory.

If you want to build the binaries from the sources open in windows/samples_vs/ the Visual Studio project (Visual Studio must be installed in your system). The project is ready to find the .lib files from its location. It is configured to generate Debug and Release version for 32 and 64 bits. Check the Configuration Manager to select the configuration you need before build. After building if you want to execute or debug the sample applications, you must install the .dll dependency files in your system as described above.