TriSpector Streamer Tutorial PDF
TriSpector Streamer Tutorial PDF
2018-10-04
CONTENT
Data stream
▸ The TriSpector GenTL producer can send out 8-
bit reflectance and 16-bit range data, as well
as additional information needed to convert
range data into millimeters
▸ The TriSpector GenTL producer is included, it is
simply a dll file (renamed to cti=common
transport interface) that contains a C interface The TriSpector1000 Streamer continuously
to expose the camera API sends images via the GenTL interface to a
host PC with
Camera control and events ▸ Any GenICam application software that
receives the images (example provided)
▸ Currently only start and stop of the image
▸ You can write your own receiver using GenAPI
acquisition are implemented
or use existing software such as HALCON by
▸ The camera configuration part of the standard MVTec
is not yet implemented
October 2018 GBC08 BU81 3D Vision | TriSpector Streamer | Confidential 3
TRISPECTOR1000 STREAMER
INTERFACE OVERVIEW
Data stream
HALCON
HALCON 13 or newer versions are recommended for use with the TriSpector1000 Streamer
1. Two .CTI files are provided by SICK. Choose one depending on your
HALCON installation (32-bit or 64-bit)
i. SICKTrispectorTL32.cti
ii. SICKTrispectorTL64.cti
iii. Please note that the .CTI-file is windows specific
Start HDevelop
The TriSpector1000 Streamer will output an 8-bit reflectance and 16-bit range image, as well as
metadata for converting the range data into millimeters. Following metadata is available
How to calculate the X/Y value in millimeters for a certain pixel in the reflectance/range image
▸ Xmm = OffsetX + ScaleX * column
▸ Ymm = OffsetY + ScaleY * row
You should now be getting four images displayed for you. One will contain temporary data and three that are
named as follows: ImageReflectance, ImageRangeMm and ImageRangeContrast
ImageReflectance contains the 8-bit Reflectance image. ImageRangeMm contains the Range data with
the correct z mm value for each pixel. ImageRangeContrast is the same range image but the contrast is
enhanced (using more grayscale values) to better see the object but you don’t have the mm values here
Use the zoom window to view the mm values in the ImageRangeMm image
First line opens the connection to your device using “GenICamTL” interface
After you have connected to your device, you have to enable both Reflectance and Range image to be
sent from your device
This part of the code reads the scale and offset parameters
Scale the image according to Zmm = OffsetZ + ScaleZ * Z16. You first need to convert the image type to
real otherwise the values get truncated
In this example a for loop is used to acquire images. If you are interested in continuous image acquisition
you can use a While loop instead. The purpose of this example is just to get you started!
.
.
.
Independently on how you choose to run the example program, you will need to have following software
▸ Visual C++ Redistributable Package
― To run code examples which uses GenICam binaries, you need to have the Visual C++ 2013 runtime environment, i.e., vc120
― If you don't have vc120 installed you can run the executable in the VCRedist2013 directory to install the English version.
Other languages can be downloaded here
▸ SOPAS Engineering Tool
Make sure you have an x64 operations system since this application is only compatible with that
October 2018 GBC08 BU81 3D Vision | TriSpector Streamer | Confidential 20
TRISPECTOR1000 STREAMER INTEGRATION EXAMPLE PROGRAM
RUN STAND ALONE APPLICATION (1/4)
Prerequisites
▸ TriSpectorStreamerApplication.zip
▸ For this specific application you will also need Visual C++ 2015 runtime environment
― If you don’t have either of the runtime environments installed, you can find them inside the .zip-file.
Simply run the executables inside the marked folders to install a
Solution
1. Unzip the folder TrispectorStreamerApplication to your PC
a) Please make sure you can find TriSpectorS_Config.xml and CaptureImages.exe, since you will need
these files later on to setup and run the application
2. Configure your TriSpector1000 Streamer using SOPAS ET and save your configuration for
image acquisition a
Note: If you have set CAM_PARA to off it does not matter what values you have below (CAM_IP, CAM_PORT etc) since the command channel will not be
used. GenTL uses broadcast to find devices and does not need the info about IP address. Thus you will still be able to capture images
Prerequisites
▸ TrispectorStreamerSourceCode.zip
▸ Visual Studio 2015
― The source code is written in Visual Studio 2015 so you need this to build the application
― With the Microsoft Foundation Classes for C++ (install if you don’t have this already)
Solution
1. Unzip the folder TriSpectorStreamerSourceCode to your PC
2. Open TrispectorS_API_developer /Configuration/TrispectorS_Config.xml
― You will need to do some changes in the .XML-file, please see slide 24
3. Setup your camera according to previous instructions, please see slide 23
The showcased example program is built with C++ in Visual Studio 2015
The folder named “TrispectorSDemo” consists of two projects, TrispectorSAPI and
CaptureImages
TrispectorSAPI contains all the specific code to integrate with the TriSpector1000 streamer. This project
builds a .dll that could be used in any other windows implementation
CaptureImages is a small example that uses the TrispectorSAPI project to capture images from a
TriSpector1000 Streamer and shows them using openCV
Folder project – Includes the example solution you can run that is described on earlier slides