IDS peak 1.0 for Linux

Contents

System requirements   

For installing IDS peak, the following requirements are required for the system environment:

Optional

IDS peak components   

IDS peak applications

USB3 Vision Producer

GigE Vision Producer

IDS peak SDK

Installation   

Note: If a previous version of IDS Vision Suite has been installed, IDS Vision Suite must be uninstalled before installing IDS peak.

There are two different ways for installation: either as Debian packet or as archive (tar.gz).

Debian packages

You must be root to be able to install the package.
 

Using "sudo"
Install dependencies
[user@pc]$ sudo apt-get install libqt5core5a libqt5gui5 libqt5widgets5 libqt5quick5 qml-module-qtquick-window2 qml-module-qtquick2 qtbase5-dev qtdeclarative5-dev qml-module-qtquick-dialogs qml-module-qtquick-controls qml-module-qtquick-layouts libusb-1.0-0
Install the package via dpkg
[user@pc]$ sudo dpkg -i ids_peak_[version]_[arch].deb
Password: // enter password

Archive

Before you start using the archive make sure you have all required libraries installed:

Copy all the files into a directory on the hard disk (you need write access to decompress), for example "/opt/ids_peak_[version]_[arch]".

This can be achieved using the command:

tar -xvzf ids_peak_[version]_[arch].tar.gz -C /opt

Environment variable

You can move the extracted folder to any directory. Starting the applications via the shell scripts in the bin folder ensures that they always use the supplied transport layer ("/opt/ids_peak_[version]_[arch]/lib/ids/cti/ids_gevgentl.cti") by setting the environment variable "GENICAM_GENTL64_PATH" (on a 32-bit system "GENICAM_GENTL32_PATH"). For the source code of the samples, CMake will generate a starter script and copy it to the output folder which you should use to run the built samples. If you want to build your own application you can either set the variables for your user account manually or build your own shell script the same way CMake does for the shipped samples (see CMakeLists.txt for the samples).

Under "/opt/ids_peak_[version]_[arch]/local/scripts" you can find a udev rule for the USB access the U3V cameras require. For a simple installation you can use the script install-udev-rule.sh in the same folder. Additionally you can find an uninstall script as well.

Installation in the file system

Below is the structure of the tar archived displayed. The Debian package has the same structure but installs to the "/usr" folder of your system. This means for example "bin" is "/usr/bin" in your system if you installed the package.

|-- ids_peak_[version]_[arch]
    |-- bin
    |   |-- bash scripts to start:
    |   |-- ids_vision_cockpit
    |   |-- ids_devicecommand
    |   |-- ids_deviceupdate
    |   |-- ids_ipconfig
    |   |-- all compiled samples
    |-- include
    |   |-- ids_peak_ipl-version
    |   |   |-- peak_ipl
    |   |      |-- header files for ids_peak_ipl
    |   |-- ids_peak-version
    |       |-- peak
    |           |-- header files for ids_peak
    |-- lib
    |   |-- ids
    |   |   |-- cti
    |   |      |-- ids_gevgentl.cti
    |   |      |-- ids_u3vgentl.cti
    |   |-- ids_peak_ipl-version
    |   |   |-- cmake
    |   |       |-- cmake config files
    |   |   |-- libidspeak_ipl.so
    |   |-- ids_peak-version
    |   |   |-- cmake
    |   |       |-- cmake config files
    |   |   |-- ids_peak library files
    |   |-- symbolic links to all library files required for ids_peak and ids_peak_ipl
    |-- local
    |   |-- scripts
    |   |   |-- install and uninstall scripts e.g. for udev rules
    |   |-- src
    |       |-- ids
    |           |-- samples
    |               |-- halcon
    |               |   |-- HALCON examples
    |               |-- mil
    |               |   |-- MIL examples
    |               |-- peak
    |                   |-- IDS peak C++ examples
    |-- share
        |-- applications
        |   |-- ids_visioncockpit.desktop
        |-- icons
        |   |-- hicolor
        |       |-- scalable
        |           |-- apps
        |               |-- ids_visioncockpit.svg
        |-- doc
            |-- ids_peak
                |-- licenses
                |   |-- license files
                |   |-- thirdparty_copyrights.txt
                |   |-- thirdparty_licenses.txt
                |-- readme.txt
                |-- ids_peak_ipl-version
                |   |-- doc
                |       |-- HTML documentation for IDS peak IPL
                |-- ids_peak-version
                    |-- doc
                        |-- HTML documentation for IDS peak API

 

During runtime the shipped programs may write config files to your ".config" directory in your home folder. It creates a subfolder "IDS Imaging Development Systems GmbH" which stores the config files for e.g. the ids_visioncockpit application.

First start   

NOTICE! Some Linux distributions disconnect network interfaces when no network device is connected to them (e.g. a switch, a camera) and reconnect them as soon as a device gets connected to them. This means that you have to restart the IDS Vision Cockpit when a camera is added directly to a network port after the IDS Vision Cockpit has started because the transport layer only searches for new network interfaces during initialization.

Debian packages

Use the menu entry "IDS Vision Cockpit" to start the application. For security reasons, you should not run applications as root. If you start the IDS Vision Cockpit as root you may not see any cameras depending on your system configuration.

TAR archives

Use the shell script in the "bin" directory to start the IDS Vision Cockpit.

Note: If GigE Vision cameras are on a different subnet than the network adapter, the script must be run as an admin to find the cameras.

Samples

If you are using the Debian packages you will find start scripts for the pre-build samples in "/usr/bin/" and the source code in "/usr/local/src/ids/samples". For the TAR archives you will find the start scripts under "ids_peak_xxx/bin/" and the source code in the folder "ids_peak_xxx/local/src/ids/samples". Usually you will not have write permissions in "/usr/local/src" so you should copy the folder with the samples to a folder with write permissions e.g. your home folder.

To compile the samples with CMake or your own application you need a config.cmake file. The Debian package installs it into the "usr/lib" folder which is automatically searched by CMake. When using the TAR archive the path to the config.cmake file must be set manually. This can be done by adding the library directory to the CMAKE_PREFIX_PATH cmake -DCMAKE_PREFIX_PATH="/opt/ids_peak_[version]_[arch]/lib/" sourcedir.

To run the samples please use the generated shell script files. These will automatically take care of the environment variables which are required to use the GenTL producer libraries. Or set up the required environment variable yourself manually:

GENICAM_GENTL32_PATH=$GENICAM_GENTL32_PATH:/opt/ids_peak_[version]_[arch]/lib/ids/cti

GENICAM_GENTL64_PATH=$GENICAM_GENTL64_PATH:/opt/ids_peak_[version]_[arch]/lib/ids/cti

For information on how to set up environment variables, check the documentation of your system, e.g. for Debian: https://wiki.debian.org/EnvironmentVariables

HALCON

Sample Content
simple_live_halcon Opening a camera and grabbing images
triggered_live_halcon Configuring and using triggered image acquisition

MIL

Sample Content
simple_live_mil Opening a camera and grabbing images
triggered_live_mil Configuring and using triggered image acquisition

IDS peak

Sample Content
device_tree Create and update module tree and open a camera
get_first_pixel Starting image acquisition and accessing image pixel data
lego_trigger Using triggered acquisition and setting trigger parameters
open_camera Simple creation and opening of a camera object
open_camera_by_serno Create and open a camera object by serial number
open_camera_select_cti Using a specific CTI to create and open a camera object
save_images_live_qtwidgets Simple GUI example using Qt to show images and save them to disk using the IDS peak IPL
simple_live_qml Simple example for usage with QML GUI to display images
simple_live_qtwidgets Simple example for usage with Qt widgets GUI to display images
walkthrough Guided tour through module tree and opening of the first available camera

Setting the IP address for GigE Vision cameras

A valid IP address must be assigned to GigE Vision cameras before they can be used.

  1. Select the camera in the camera list.
  2. Open the "Device network configuration" dialog via the context-menu.
  3. Assign a valid IP address to the camera. When saving the IP address, you can select from the following settings:

Enabling Jumbo Frames for GigE Vision cameras

For optimal performance it is recommend to use Ethernet package sizes which are larger than 1500 bytes. Recommended package size is ~9000 bytes depending on the support of the used network controller. Your whole network infrastructure e.g. switches should support this Ethernet package size; if not the GenTL will use the largest possible size.

Optimizing network stack buffer sizes

The default linux network stack is not optimized for transferring large amounts of data. Therefore, it is recommended to increase the internal buffer size of the UDP network stack to improve camera performance and avoid package loss. But keep in mind that this increases the buffer sizes only at the endpoints if you are you using switches or other network infrastructure this might not have an effect:

To increase the network stack buffer size for UDP edit the /etc/sysctl.conf file. If not present add the following lines:

net.core.rmem_max=26214400
net.core.rmem_default=26214400

This sets the maximum buffer size to ~25 MB, whereas the default buffer size is usually 128 KB.

In the folder "opt/ids_peak_[version]_[arch]/local/scripts" respectively "/usr/local/" scripts for the installed debian package you will find a script which is capable of adding these lines automatically. Run it with sudo:

sudo /usr/local/srcipts/set_receive_buffer_size.sh

respectivily:

sudo /opt/ids_peak_[version]_[arch]/local/srcipts/set_receive_buffer_size.sh

Note that the script will not change the values if the entries are already present but it will tell you to check your values manually since they might already be higher when the 26214400 bytes. For the changes to become effective you have to reboot the system.

Opening Vision cameras

To open a camera, double-click it. You can set the camera properties using the icons in the toolbar or work directly in the tree view.

Integrating cameras into own applications

How to integrate IDS industrial cameras with IDS peak in your own application is described in the further documentation of IDS peak which can be found in "/usr/share/doc/ids_peak" for the debian package and "share/doc/ids_peak" for the TAR archive.

List of contained files / dependencies   

The software includes some parts that are copyright-protected from access by third parties, and which were published under Open Source licensing conditions, see either list on https://de.ids-imaging.com/open-source.html or "/usr/share/doc/ids_peak/licenses" or "/opt/ids_peak_[version]_[arch]/share/doc/ids_peak/licenses". The Open Source parts may be used under the terms and conditions of their corresponding Open Source licenses. You will find the Open Source licenses in the "thirdparty_licenses.txt" file.

Uninstallation   

There are two different ways for uninstallation: either for Debian or any other Linux distribution.

Debian packages

Using "sudo"
Keep the configuration file of the IDS Vision Cockpit
[user@pc]$ sudo apt-get remove ids_peak
Password: // enter password
Delete the configuration file of the IDS Vision Cockpit
[user@pc]$ sudo apt-get purge ids_peak
Password: // enter password

Archive

Run the uninstall-udev-rule.sh in the folder "/opt/ids_peap_[version]_[arch]/local/scripts" to remove the udev rule or remove it manually.

Delete all files in the installation folder, for example "/opt/ids_peak_[version]_[arch]".

Check your ".config" directory in your home folder and delete the folder "IDS Imaging Development Systems GmbH" if you do not want to reuse the configurations.

Known issues   

Issue Details Solution
Flickering of IDS Vision Cockpit with QtWayland and gnome-shell version <3.32 Running the IDS Vision Cockpit with QtWayland may cause flickering of UI elements in combination with specific gnome-shell versions. This is a known bug of gnome-shell and should only occour on old gnome-shell versions < 3.32. On most system configurations you will have to enable the IDS Vision Cockpit to run on QtWayland manually by installing QtWayland and setting the QT_QPA_PLATFORM=wayland to produce this behaviour. Use a newer gnome shell version or run the IDS Vision Cockpit with X11 compatiblity mode (QT_QPA_PLATFORM should not be set to "wayland").
Under Raspbian 10 the camera is detected but cannot be accessed although it should due to issues in Raspbian DHCP settings. On current Raspbian Buster versions there seems to be an issue with the DHCP deamon. If you use the GUI of Raspbian to set the network configuration there is an option to partially set options manually and let the system detect the other parts of the configuration. This option is called "Automatically configure empty options". If you do not have a DHCP server running, e.g. when you are directly connected to the camera this option may prevent you from using a GigE Vision camera under Linux. The camera device will be detected but can not be used. The source of the issue is that the DHCP deamon does not set all network configurations properly, if it does not detect a DHCP server. Especially Kernel IP Routes will be wrong and will cause the described problem. If you experience these issues uncheck the option and reboot your Raspberry Pi to make sure all options are set properly.
Raspberry Pi 3 with GigE Vision camera produces incomplete images The network performance on the Raspberry Pi may be extremely bad and can cause incomplete images. This is an issue with the network design of the Raspberry Pi which is actually connected via the USB controller. This may be especially prominent on the Raspberry Pi 3 B+ which has a Gigabit Ethernet controller. Set the GEV SCPS packet size of your camera to 1500. Additionally reduce the DeviceLinkThroughPutLimit to a lower value e.g. 5301360.
QtCreator 3.2.1 only builds default configuration of samples Building the IDS peak API samples under Debian 8 with QtCreator 3.2.1 only creates a default CMake configuration while other QtCreator versions create debug and release build. Default is set to debug by CMakeLists.txt. If you wish to build a release version setup a CMake release build explicitly with the CMake Option CMAKE_BUILD_TYPE="Release".
U3V cameras are not accessible when IDS Software Suite is installed When the IDS Software Suite is installed parallel to IDS peak, U3V cameras may not be accessible due to issues with the udev rules. The udev rule of the IDS Software Suite is named "zz-ueyeusbd.rules" which causes the rule to be executed last.
Rename the rule to "99-ueyeusbd.rules" to run it before the IDS peak rule.

© 2019, IDS Imaging Development Systems GmbH

IDS Imaging Development Systems and uEye are registered trademarks of IDS Imaging Development Systems GmbH.

 

IDS Imaging Development Systems GmbH
Dimbacher Str. 6-8
74182 Obersulm, Germany
https://en.ids-imaging.com