A Linux ROS C++ Node that wraps the driver API for IDS vision cameras using IDS peak software. Tested on Ubuntu 18.04 LTS and 20.04 LTS.
-
Clone the repository to your Linux computer
-
Generate a ROS workspace
$ mkdir -p camera_ws/src/
-
Copy the peak_cam package into your ROS workspace and build it
$ cp -r peak_cam/ camera_ws/src/
$ cd camera_ws/ && catkin_make && source devel/setup.bash
-
Set parameters such as ROS topic and acquisition rate under
launch/params/peak_cam_params.yaml
-
Plug the IDS vision camera and launch the node
$ roslaunch peak_cam peak_cam_node.launch
-
Stop the node with
Ctrl-C
(SIGINT) for controlled shutdown
For multiple cameras, create a .launch
and a .yaml
file for each camera.
Hint: Sometimes the cameras are only accesible as root. Try
sudo -s
in your terminal and launch the node again.
To synchronously acquire images from two cameras in a stereo vision setup, you might want to let one camera trigger the other.
-
Setup the GPIO wiring as proposed by IDS according to the pin layout found in your camera's datasheet (example color coding for GV-5270FA):
-
Configure the primary (master) camera's
.yaml
file withLine1Source: "ExposureActive" TriggerSource: "Off"
and the secondary camera's
.yaml
withLine1Source: "Off" TriggerSource: "Line0"
The cameras can also be triggered by the pulses of external devices such as a lidar sensor.
-
(Activate the trigger output of your external device, e.g., using the
multipurpose_io_mode
flag for Ouster lidars as discussed in section 5.2.2 of their software user manual) -
Setup the GPIO wiring in compliance to your hardware, e.g., with an optoisolated open collector sync pulse circuit:
-
Configure your camera's
.yaml
files withLine1Source: "Off" TriggerSource: "Line0"
Copyright (c) 2020, Sherif Nekkah, Felix Keppler (Fraunhofer IVI) and Contributors
All rights reserved.
BSD license: see LICENSE file