Library and utilities for working with ifm pmd-based 3D ToF Cameras.
ifm3d version | Supported O3D Firmware Version | Supported O3X Firmware Version | Supported Ubuntu Linux Version | Notes |
---|---|---|---|---|
0.13.0 | 1.6.2114, 1.8.769, 1.20.1138, 1.23.1506, 1.23.1522, 1.23.2848 | 1.0.111, 1.0.122, 1.0.126 | 16.04,18.04 | Introduced `pybind11` module to provide ifm3d Python bindings |
A full software compatibility matrix, including older releases, is available here.
The ifm3d software is organized into modules, they are:
Module Name | Description |
---|---|
camera | Provides an implementation of the XMLRPC protocol for configuring the camera and pmd imager settings. |
framegrabber | Provides an implementation of the PCIC protocol for streaming pixel data and triggered image acquisition. |
image | Provides a bridge from raw camera bytes to OpenCV and PCL image encodings. |
opencv | This is an officially supported and alternate data container to the default Image module. This module provides a bridge from raw camera bytes to OpenCV image encodings without any dependence upon PCL. |
pcicclient | Direct access to PCIC to, for example, actuate digital IO. |
tools | Provides the ifm3d command line tool for manipulating and introspecting the hardware interactively. It is also suitable for usage within shell scripts to, for example, manage fleets of cameras. |
pybind11 | Provides python bindings through pybind11 to the native C++ API. Supports all general camera functionality as well as a zero-copy interface to image data, exposed as NumPy arrays. |
As of version 0.9.0, we have removed the viewer
sub-command from the ifm3d
command line tool (part of the tools
module). The objective was to lessen the
dependencies for the core library. However, a clone of the pre-0.9.0
viewer is available in its own repository:
ifm3d-pcl-viewer.
Binaries for ifm3d are available on a few supported platforms. Instructions for each now follow.
We are currently supporting binaries for the two most recent LTS releases of Ubuntu Linux. The first step in installation is to set up your computer to accept software from ifm's apt server. The apt repository you want to point to will depend on your version of Ubuntu and whether or not you plan to utilize the ifm3d ROS bindings. Please follow the instructions appropriate for your machine below:
$ sudo sh -c 'echo "deb [arch=amd64] https://nexus.ifm.com/repository/ifm-robotics_ubuntu_xenial_amd64 xenial main" > /etc/apt/sources.list.d/ifm-robotics.list'
$ sudo sh -c 'echo "deb [arch=amd64] https://nexus.ifm.com/repository/ifm-robotics_ubuntu_bionic_amd64 bionic main" > /etc/apt/sources.list.d/ifm-robotics.list'
$ sudo sh -c 'echo "deb [arch=amd64] https://nexus.ifm.com/repository/ifm-robotics_ubuntu_xenial_amd64_ros xenial main" > /etc/apt/sources.list.d/ifm-robotics.list'
$ sudo sh -c 'echo "deb [arch=amd64] https://nexus.ifm.com/repository/ifm-robotics_ubuntu_bionic_amd64_ros bionic main" > /etc/apt/sources.list.d/ifm-robotics.list'
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 8AB59D3A2BD7B692
Update your package index:
$ sudo apt-get update
Install the software:
$ sudo apt-get install ifm3d-camera \
ifm3d-framegrabber \
ifm3d-image \
ifm3d-opencv \
ifm3d-pcicclient \
ifm3d-tools \
ifm3d-python \
ifm3d-python3
If you are on a non-ROS platform, you can also install the default non-ROS visualizer. If you are running ROS, we assume you will use rviz.
$ sudo apt-get install ifm3d-pcl-viewer
For ROS users, at this time, you still need to build the ROS node from
source. Those instructions are located at the
ifm3d-ros project page. The instructions
above will simply install the core ifm3d
sensor interface and tools, linked
properly against libraries in your ROS environment.
Coming soon...
If you are running on a platform we did not mention above, the links below will
assist you in building from source code. Alternatively, if you are simply
looking to do a quick evaluation of an ifm3d
supported sensor, you can try
one of our experimental (as of this writing) Docker containers. We have options
for both ROS and non-ROS users. More information is located here.
- Building from source on Linux
- Building on Windows
- Building and using Python bindings
- Basic library usage
- ifm3d command line tool
- Configuring Your Camera
- Viewing the Point Cloud
- Implementing your own image container
- ROS
- ROS 2
- Troubleshoot
Please see the Github Issue Tracker.
Please see the file called LICENSE.