ifm3d_core package from ifm3d_core repoifm3d_core |
|
Third-Party Package
This third-party package's source repository does not contain a package manifest. Instead, its package manifest is stored in its release repository. In order to build this package from source in a Catkin workspace, please download its package manifest.Package Summary
Tags | No category tags. |
Version | 0.18.0 |
License | Apache |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ifm/ifm3d |
VCS Type | git |
VCS Version | v0.18.0 |
Last Updated | 2020-06-02 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Sean Kelly
Authors
- Tom Panzarella
ifm3d
Library and utilities for working with ifm pmd-based 3D ToF Cameras.
Current Revision
ifm3d version | Supported O3D Firmware Version | Supported O3X Firmware Version | Supported Ubuntu Linux Version | Notes |
---|---|---|---|---|
0.18.0 | 1.6.2114, 1.23.1522, 1.23.1522, 1.23.2848, 1.30.4123, 1.30.5309 | 1.0.122, 1.0.126, 1.0.156 | 16.04,18.04,20.04 | Expanded support matrix for platforms/archs/firmwares |
A full software compatibility matrix, including older releases, is available here.
Organization of the Software
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. |
swupdater | Provides utilities for managing the SWUpdate subsystem of the camera. |
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.
Installing the Software
Binaries for ifm3d are available on a few supported platforms. Instructions for each now follow.
Linux
Snap Application
The ifm3d command line utility and
viewer tool are available as a snap
in the Snapcraft application store. Snapcraft supports most major Linux
distributions. The storefront
page for ifm3d
is: https://snapcraft.io/ifm3d
To install the package on a snapd enabled system:
$ sudo snap install ifm3d
After installation, the commands ifm3d
and ifm3d.viewer
should be
available.
NOTE: This option is a convenient way to install and update tools and
utilities for working with ifm Cameras. This option is not suitable for
developers hoping to target the ifm3d
API and shared libraries. Developers
should opt for standard debian packages, or building from source.
Ubuntu Linux via Apt (amd64/arm64)
We provide apt repositories for the following Ubuntu Linux distributions and architectures:
Ubuntu 16.04 Xenial | Ubuntu 18.04 Melodic | Ubuntu 20.04 Focal | |
---|---|---|---|
amd64 | X | X | X |
arm64 | X | X | X |
Add the repository to your sources.list:
$ sudo sh -c 'echo "deb https://nexus.ifm.com/repository/ifm-robotics_ubuntu_$(lsb_release -sc)_$(dpkg --print-architecture) $(lsb_release -sc) main" > /etc/apt/sources.list.d/ifm-robotics.list'
Add the public key for the repository:
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 8AB59D3A2BD7B692
Install the software:
$ sudo apt-get update
$ sudo apt-get install ifm3d-camera \
ifm3d-framegrabber \
ifm3d-swupdater \
ifm3d-image \
ifm3d-opencv \
ifm3d-pcicclient \
ifm3d-tools \
ifm3d-python3 \
ifm3d-pcl-viewer \
Linux for Tegra
Linux for Tegra is an NVIDIA Linux distribution for the Jetson family of GPU
SoC systems. NVIDIA distributes a software package called JetPack with various
utilities and libraries optimized for the target hardware. There are a few
pakages which override the core Ubuntu packages (OpenCV
as the primary
example). We provide alternate apt repositories for ifm3d
built on top of
the JetPack libraries rather than the Ubuntu libraries.
Add one of the following repositories based on your desired JetPack/L4T release:
Jetpack 4.4:
$ sudo sh -c 'echo "deb https://nexus.ifm.com/repository/ifm-robotics_l4t_jetpack_4_4_arm64 melodic main" > /etc/apt/sources.list.d/ifm-robotics.list'
Jetpack 4.3:
$ sudo sh -c 'echo "deb https://nexus.ifm.com/repository/ifm-robotics_l4t_jetpack_4_3_arm64 melodic main" > /etc/apt/sources.list.d/ifm-robotics.list'
Add the public key for the repository:
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 8AB59D3A2BD7B692
Install the software:
$ sudo apt-get update
$ sudo apt-get install ifm3d-camera \
ifm3d-framegrabber \
ifm3d-swupdater \
ifm3d-image \
ifm3d-opencv \
ifm3d-pcicclient \
ifm3d-tools \
ifm3d-python3 \
ifm3d-pcl-viewer \
ROS/ROS2
For users interested in using our ROS
bindings, ifm3d
and ifm3d-ros
are both available in the ROS distribution
for Kinetic and Melodic (Noetic coming shortly).
$ sudo apt install ros-kinetic-ifm3d
or
$ sudo apt install ros-melodic-ifm3d
For users interested in using our ROS2
bindings, binaries will be included (starting with dashing) very soon. For now,
packages must be built from source. Do not use the debian mirror for
ifm3d
since (depending on version) ROS2 ships parallel versions of some core
libraries (OpenCV, PCL) as compared with standard Ubuntu. ifm3d
must be built
against the proper dependencies.
Windows
Pre-built binaries are not yet available. For now we recommend manually compiling for the target MSVC/SDK versions according to the building on windows instructions.
Other platforms
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 we recommend
either the Snapcraft option discussed above, or Docker containers.
Additional Resources
- 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
-
Computing Cartesian data off-board using the
ifm3dpy
Python bindings.
Known Issues, Bugs, and our TODO list
Please see the Github Issue Tracker.
LICENSE
Please see the file called LICENSE.
Changes between ifm3d 0.17.0 and 0.18.0
- Support for latest O3D3XX firmware (1.30.5309)
- Support for latest O3X firmware (1.0.156)
- Deprecated ROS-specific apt repositories
- Deprecated python2 support
- Support for Ubuntu 20.04 Focal Fossa
- Packaged and released ifm3d as a Snap
- Added support for Ubuntu ARM64
- Added support for L4T (Linux for Tegra) JetPack 4.3 and 4.4
- Improved Windows build instructions
- Created GitHub Actions CI workflows
- Bugfixes:
- #190 - Added missing include for Windows build
Changes between ifm3d 0.16.0 and 0.17.0
- Reverted changes in 0.16.0 (FrameGrabberUdp – No viable path to UDP implementation in F/W)
- Bugfixes
- Issue with libcurl usage on 32bit targets
- Corrected minimum firmware version required for inverse intrinsics
- Corrected handling of spurious wakes in FrameGrabber
- Fixed ComputeCartesian python unit test to properly blank out invalid pixels
- Changed
build
Dockerfiles to use pip for numpy/pytest - Fixed race condition in PCICClient unit tests
- Changed setup.py to honor the environment variables per the Windows installation instructions
- Updated installation documentation for Windows
Changes between ifm3d 0.15.1 and 0.16.0
- Created new
framegrabberudp
module for consuming data over UDP interface
Changes between ifm3d 0.15.0 and 0.15.1
- Minor updates to allow for cross-compiling ifm3d for the O3D3XX
- PCIC timeout issue fixed
Changes between ifm3d 0.14.1 and 0.15.0
- Added Interface for getting json_model from O3D3xx devices.
Changes between ifm3d 0.14.0 and 0.14.1
- Fixes to how timeouts are handled in
swupdate
module - Updated embedded JSON library to 3.6.1, single-header.
Changes between ifm3d 0.13.0 and 0.14.0
- New module: swupdater – utilities for updating camera firmware
- Ported functionality from
swupdate
command into its own library for programmatic consumption. - Updated certain semantics of the
swupdate
command in thetools
module to match those of the other ifm3dtools
commands- Updated command line switch naming to match other ifm3d tools:
-
check
subcommand now invoked by-c
or--check
-
reboot
subcommand now invoked by-r
or--reboot
-
-
file
subcommand will now test for recovery and automatically reboot the device into recovery as needed.
- Updated command line switch naming to match other ifm3d tools:
- Ported functionality from
- Disabled framegrabber’s InverseIntrinsicParamSchema test due to suspected false failures. Test case will be investigated and re-opened in a future release.
- Fixed issues with unit test scripts on Windows
- Fixed Windows build documentation
- Added
BUILD_SHARED_LIBS
definition toglog
to address issues with logging to STDERR in Windows binaries - Parameterized the CMake generator for easier building when multiple versions of MSVC are installed concurrently
- Added
Changes between ifm3d 0.12.0 and 0.13.0
- Honor semantics of CMake’s BUILD_SHARED_LIBS flag (ON by default). Setting to off will build and link against ifm3d modules as static libraries.
- New module: pybind11 – Python bindings for the the C++ API
Changes between ifm3d 0.11.2 and 0.12.0
- Fixes to build infrastructure in support of windows unit tests
- Added support to retrieve the inverse intrinsic parameters from O3D3xx cameras
Changes between ifm3d 0.11.1 and 0.11.2
- Bugfix for #111, moved a log message in framegrabber to IFM3D_PROTO_DEBUG to keep noise level low when running an O3X for extended periods of time.
- Changed flagging bad pixels to always be
0
regardless of data type. Users could always consult the confidence image themselves and discriminate between a true0
(not possible) and a bad pixel which they could then transform tonan
or whatever other sentinel makes sense for their application.
Changes between ifm3d 0.11.0 and 0.11.1
- Bugfix for #103
header is not in the correct format
whenmake check
is executed against FW 1.6.2114 - Bugifx for #107 Allows OpenCV module headers to be included in more than one translation unit thus avoiding violation of ODR.
- The
image
andopencv
modules now flags bad pixels at the driver-level
Changes between ifm3d 0.10.0 and 0.11.0
- Added a
jitter
subcommand to ifm3d - Added support to retrieve the intrinsic parameters from O3D3xx cameras
Changes between ifm3d 0.9.3 and 0.10.0
- Adds support for setting the
IFM3D_SESSION_ID
environment variable for establishing edit sessions with the camera using a known ID. - Sessions are now explicitly cancellable if the session ID is known.
- Some session management optimizations in
FromJSON
which should result in incremental speedups in importing JSON configurations to the camera.
Changes between ifm3d 0.9.2 and 0.9.3
- Added build instructions how to switch between Release and Debug for Windows builds
- Added Troubleshoot guide
- Added Opencv module build instruction for windows
- Added minimum MSVC version requirement
- Added prerequisite packages list for building ifm3d
- Changed warning message in framegrabber from
WARNING
toIFM3D_TRACE
severity level - Updated swupdate command with –check (recovery mode check) and -r (reboot to productive mode)
Changes between ifm3d 0.9.1 and 0.9.2
- Added Support for the Ubuntu 18.04
- Added glog support in the cmake config files
Changes between ifm3d 0.9.0 and 0.9.1
- Removed some additional Boost dependencies
Changes between ifm3d 0.8.3 and 0.9.0
- Version number handling is now done in the cmake
project
command in the top-level CMakeLists.txt file - Dropped support for Ubuntu 14.04
- Increased cmake requirements to 3.5
- Increaded compiler requirements to C++14
- Moved
examples
module into new project ifm3d-examples - Moved
viewer
sub-command out of the ifm3d project. This is to decrease the PCL dependencies (see Issue #42). A new project will be created in support of this viewer application: ifm3d-pcl-viewer - Updated JSON parsing library to 3.1.2
- By default, pcicclient module is now
OFF
. - Pixel-parsing framework has been significantly refactored. Sub-system
specific docs for image container implementers have been provided in the
doc
folder. - Updated the
ImageBuffer
to conform to the new pixel-publishing architecture. - Initial implementation of an OpenCV-only (i.e., no PCL) image container. This
is the
opencv
module of theifm3d
project. - Added a
passwd
subcommand toifm3d
Changes between ifm3d 0.8.2 and 0.8.3
- Fixed a cmake regression regarding -std=c++11 flags passed to the compiler; surfaces on old versions of cmake, i.e., in Ubuntu 14.04
Changes between ifm3d 0.8.1 and 0.8.2
- Patch to windows build
- Better semver parsing of camera firmware
Changes between ifm3d 0.8.0 and 0.8.1
- Reverted Windows build changes due to how it broke packaging on Linux
Changes between ifm3d 0.7.0 and 0.8.0
- Illumination temperature is registered to frame data
Changes between ifm3d 0.6.0 and 0.7.0
- Added timestamping of image buffers
- Added support for setting/getting time on O3D cameras
- Added support for setting temporary application parameters. Please note, that if the device does not support this, it may “fail silently”, so, a closed-loop check by the user is recommended.
Changes between ifm3d 0.5.0 and 0.6.0
- Added the pcic client feature from
libo3d3xx
- Added the ability to dump on-camera tracelogs including an interface to this
capability via the
trace
subcommand to theifm3d
command-line tool.
Changes between ifm3d 0.4.0 and 0.5.0
- Added
swupdate
subcommand in the tools module - Added image module support to Windows build
Changes between ifm3d 0.3.3 and 0.4.0
- Added modules/tools/contrib with bash completions for ifm3d
Changes between ifm3d 0.3.2 and 0.3.3
- Windows build support (should have been a bump to 0.4.0)
Changes between ifm3d 0.3.1 and 0.3.2
- CMake build scripts now look for opencv in tools module since the image buffer header includes an opencv header
Changes between ifm3d 0.3.0 and 0.3.1
- Fixed regression on 14.04 - no compiler support for std::put_time (#3)
Changes between ifm3d 0.2.0 and 0.3.0
- Support for NTP (on O3X)
- Added simple viewer sub-command to the
ifm3d
command-line program. This viewer will render the point cloud and color each pixel with the normalized amplitude value registered to that point.
Changes between ifm3d 0.1.0 and 0.2.0
- Added software trigger support to O3X
- Added support for ifm Vision Assistant compatible import/export functions for O3X cameras
- Optimization to
ifm3d
cmd line tool when passed either--help
orversion
. It will no longer try to connect to the device first, which makes this much more responsive and convenient for when no h/w is plugged in. - Added the ability to explicitly choose OpenCV 2.4 or OpenCV 3 at cmake/compile time.
- Modifications to enable the library to build under Ubuntu 14.04 (C++11 instead of C++14 and gcc 4.8. Big thanks to @aaronhoy at Fetch Robotics for his work
- Added a new build-time utility
ifm3d-dpkg-deps.py to auto-generate
debian dependencies for the binary packages. This is needed because, for how
we are building multiple shared libraries across multiple debian packages,
cmake’s stanard wrapper to
dpkg-shlibdeps
does not work for us (for several reasons).
This file has started tracking ifm3d at 0.1.0
- Initial (alpha) release
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ifm3d_core at Robotics Stack Exchange
ifm3d_core package from ifm3d_core repoifm3d_core |
|
Third-Party Package
This third-party package's source repository does not contain a package manifest. Instead, its package manifest is stored in its release repository. In order to build this package from source in a Catkin workspace, please download its package manifest.Package Summary
Tags | No category tags. |
Version | 0.18.0 |
License | Apache 2.0 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ifm/ifm3d |
VCS Type | git |
VCS Version | v0.18.0 |
Last Updated | 2020-06-02 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Sean Kelly
Authors
- Tom Panzarella
ifm3d
Library and utilities for working with ifm pmd-based 3D ToF Cameras.
Current Revision
ifm3d version | Supported O3D Firmware Version | Supported O3X Firmware Version | Supported Ubuntu Linux Version | Notes |
---|---|---|---|---|
0.18.0 | 1.6.2114, 1.23.1522, 1.23.1522, 1.23.2848, 1.30.4123, 1.30.5309 | 1.0.122, 1.0.126, 1.0.156 | 16.04,18.04,20.04 | Expanded support matrix for platforms/archs/firmwares |
A full software compatibility matrix, including older releases, is available here.
Organization of the Software
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. |
swupdater | Provides utilities for managing the SWUpdate subsystem of the camera. |
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.
Installing the Software
Binaries for ifm3d are available on a few supported platforms. Instructions for each now follow.
Linux
Snap Application
The ifm3d command line utility and
viewer tool are available as a snap
in the Snapcraft application store. Snapcraft supports most major Linux
distributions. The storefront
page for ifm3d
is: https://snapcraft.io/ifm3d
To install the package on a snapd enabled system:
$ sudo snap install ifm3d
After installation, the commands ifm3d
and ifm3d.viewer
should be
available.
NOTE: This option is a convenient way to install and update tools and
utilities for working with ifm Cameras. This option is not suitable for
developers hoping to target the ifm3d
API and shared libraries. Developers
should opt for standard debian packages, or building from source.
Ubuntu Linux via Apt (amd64/arm64)
We provide apt repositories for the following Ubuntu Linux distributions and architectures:
Ubuntu 16.04 Xenial | Ubuntu 18.04 Melodic | Ubuntu 20.04 Focal | |
---|---|---|---|
amd64 | X | X | X |
arm64 | X | X | X |
Add the repository to your sources.list:
$ sudo sh -c 'echo "deb https://nexus.ifm.com/repository/ifm-robotics_ubuntu_$(lsb_release -sc)_$(dpkg --print-architecture) $(lsb_release -sc) main" > /etc/apt/sources.list.d/ifm-robotics.list'
Add the public key for the repository:
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 8AB59D3A2BD7B692
Install the software:
$ sudo apt-get update
$ sudo apt-get install ifm3d-camera \
ifm3d-framegrabber \
ifm3d-swupdater \
ifm3d-image \
ifm3d-opencv \
ifm3d-pcicclient \
ifm3d-tools \
ifm3d-python3 \
ifm3d-pcl-viewer \
Linux for Tegra
Linux for Tegra is an NVIDIA Linux distribution for the Jetson family of GPU
SoC systems. NVIDIA distributes a software package called JetPack with various
utilities and libraries optimized for the target hardware. There are a few
pakages which override the core Ubuntu packages (OpenCV
as the primary
example). We provide alternate apt repositories for ifm3d
built on top of
the JetPack libraries rather than the Ubuntu libraries.
Add one of the following repositories based on your desired JetPack/L4T release:
Jetpack 4.4:
$ sudo sh -c 'echo "deb https://nexus.ifm.com/repository/ifm-robotics_l4t_jetpack_4_4_arm64 melodic main" > /etc/apt/sources.list.d/ifm-robotics.list'
Jetpack 4.3:
$ sudo sh -c 'echo "deb https://nexus.ifm.com/repository/ifm-robotics_l4t_jetpack_4_3_arm64 melodic main" > /etc/apt/sources.list.d/ifm-robotics.list'
Add the public key for the repository:
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 8AB59D3A2BD7B692
Install the software:
$ sudo apt-get update
$ sudo apt-get install ifm3d-camera \
ifm3d-framegrabber \
ifm3d-swupdater \
ifm3d-image \
ifm3d-opencv \
ifm3d-pcicclient \
ifm3d-tools \
ifm3d-python3 \
ifm3d-pcl-viewer \
ROS/ROS2
For users interested in using our ROS
bindings, ifm3d
and ifm3d-ros
are both available in the ROS distribution
for Kinetic and Melodic (Noetic coming shortly).
$ sudo apt install ros-kinetic-ifm3d
or
$ sudo apt install ros-melodic-ifm3d
For users interested in using our ROS2
bindings, binaries will be included (starting with dashing) very soon. For now,
packages must be built from source. Do not use the debian mirror for
ifm3d
since (depending on version) ROS2 ships parallel versions of some core
libraries (OpenCV, PCL) as compared with standard Ubuntu. ifm3d
must be built
against the proper dependencies.
Windows
Pre-built binaries are not yet available. For now we recommend manually compiling for the target MSVC/SDK versions according to the building on windows instructions.
Other platforms
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 we recommend
either the Snapcraft option discussed above, or Docker containers.
Additional Resources
- 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
-
Computing Cartesian data off-board using the
ifm3dpy
Python bindings.
Known Issues, Bugs, and our TODO list
Please see the Github Issue Tracker.
LICENSE
Please see the file called LICENSE.
Changes between ifm3d 0.17.0 and 0.18.0
- Support for latest O3D3XX firmware (1.30.5309)
- Support for latest O3X firmware (1.0.156)
- Deprecated ROS-specific apt repositories
- Deprecated python2 support
- Support for Ubuntu 20.04 Focal Fossa
- Packaged and released ifm3d as a Snap
- Added support for Ubuntu ARM64
- Added support for L4T (Linux for Tegra) JetPack 4.3 and 4.4
- Improved Windows build instructions
- Created GitHub Actions CI workflows
- Bugfixes:
- #190 - Added missing include for Windows build
Changes between ifm3d 0.16.0 and 0.17.0
- Reverted changes in 0.16.0 (FrameGrabberUdp – No viable path to UDP implementation in F/W)
- Bugfixes
- Issue with libcurl usage on 32bit targets
- Corrected minimum firmware version required for inverse intrinsics
- Corrected handling of spurious wakes in FrameGrabber
- Fixed ComputeCartesian python unit test to properly blank out invalid pixels
- Changed
build
Dockerfiles to use pip for numpy/pytest - Fixed race condition in PCICClient unit tests
- Changed setup.py to honor the environment variables per the Windows installation instructions
- Updated installation documentation for Windows
Changes between ifm3d 0.15.1 and 0.16.0
- Created new
framegrabberudp
module for consuming data over UDP interface
Changes between ifm3d 0.15.0 and 0.15.1
- Minor updates to allow for cross-compiling ifm3d for the O3D3XX
- PCIC timeout issue fixed
Changes between ifm3d 0.14.1 and 0.15.0
- Added Interface for getting json_model from O3D3xx devices.
Changes between ifm3d 0.14.0 and 0.14.1
- Fixes to how timeouts are handled in
swupdate
module - Updated embedded JSON library to 3.6.1, single-header.
Changes between ifm3d 0.13.0 and 0.14.0
- New module: swupdater – utilities for updating camera firmware
- Ported functionality from
swupdate
command into its own library for programmatic consumption. - Updated certain semantics of the
swupdate
command in thetools
module to match those of the other ifm3dtools
commands- Updated command line switch naming to match other ifm3d tools:
-
check
subcommand now invoked by-c
or--check
-
reboot
subcommand now invoked by-r
or--reboot
-
-
file
subcommand will now test for recovery and automatically reboot the device into recovery as needed.
- Updated command line switch naming to match other ifm3d tools:
- Ported functionality from
- Disabled framegrabber’s InverseIntrinsicParamSchema test due to suspected false failures. Test case will be investigated and re-opened in a future release.
- Fixed issues with unit test scripts on Windows
- Fixed Windows build documentation
- Added
BUILD_SHARED_LIBS
definition toglog
to address issues with logging to STDERR in Windows binaries - Parameterized the CMake generator for easier building when multiple versions of MSVC are installed concurrently
- Added
Changes between ifm3d 0.12.0 and 0.13.0
- Honor semantics of CMake’s BUILD_SHARED_LIBS flag (ON by default). Setting to off will build and link against ifm3d modules as static libraries.
- New module: pybind11 – Python bindings for the the C++ API
Changes between ifm3d 0.11.2 and 0.12.0
- Fixes to build infrastructure in support of windows unit tests
- Added support to retrieve the inverse intrinsic parameters from O3D3xx cameras
Changes between ifm3d 0.11.1 and 0.11.2
- Bugfix for #111, moved a log message in framegrabber to IFM3D_PROTO_DEBUG to keep noise level low when running an O3X for extended periods of time.
- Changed flagging bad pixels to always be
0
regardless of data type. Users could always consult the confidence image themselves and discriminate between a true0
(not possible) and a bad pixel which they could then transform tonan
or whatever other sentinel makes sense for their application.
Changes between ifm3d 0.11.0 and 0.11.1
- Bugfix for #103
header is not in the correct format
whenmake check
is executed against FW 1.6.2114 - Bugifx for #107 Allows OpenCV module headers to be included in more than one translation unit thus avoiding violation of ODR.
- The
image
andopencv
modules now flags bad pixels at the driver-level
Changes between ifm3d 0.10.0 and 0.11.0
- Added a
jitter
subcommand to ifm3d - Added support to retrieve the intrinsic parameters from O3D3xx cameras
Changes between ifm3d 0.9.3 and 0.10.0
- Adds support for setting the
IFM3D_SESSION_ID
environment variable for establishing edit sessions with the camera using a known ID. - Sessions are now explicitly cancellable if the session ID is known.
- Some session management optimizations in
FromJSON
which should result in incremental speedups in importing JSON configurations to the camera.
Changes between ifm3d 0.9.2 and 0.9.3
- Added build instructions how to switch between Release and Debug for Windows builds
- Added Troubleshoot guide
- Added Opencv module build instruction for windows
- Added minimum MSVC version requirement
- Added prerequisite packages list for building ifm3d
- Changed warning message in framegrabber from
WARNING
toIFM3D_TRACE
severity level - Updated swupdate command with –check (recovery mode check) and -r (reboot to productive mode)
Changes between ifm3d 0.9.1 and 0.9.2
- Added Support for the Ubuntu 18.04
- Added glog support in the cmake config files
Changes between ifm3d 0.9.0 and 0.9.1
- Removed some additional Boost dependencies
Changes between ifm3d 0.8.3 and 0.9.0
- Version number handling is now done in the cmake
project
command in the top-level CMakeLists.txt file - Dropped support for Ubuntu 14.04
- Increased cmake requirements to 3.5
- Increaded compiler requirements to C++14
- Moved
examples
module into new project ifm3d-examples - Moved
viewer
sub-command out of the ifm3d project. This is to decrease the PCL dependencies (see Issue #42). A new project will be created in support of this viewer application: ifm3d-pcl-viewer - Updated JSON parsing library to 3.1.2
- By default, pcicclient module is now
OFF
. - Pixel-parsing framework has been significantly refactored. Sub-system
specific docs for image container implementers have been provided in the
doc
folder. - Updated the
ImageBuffer
to conform to the new pixel-publishing architecture. - Initial implementation of an OpenCV-only (i.e., no PCL) image container. This
is the
opencv
module of theifm3d
project. - Added a
passwd
subcommand toifm3d
Changes between ifm3d 0.8.2 and 0.8.3
- Fixed a cmake regression regarding -std=c++11 flags passed to the compiler; surfaces on old versions of cmake, i.e., in Ubuntu 14.04
Changes between ifm3d 0.8.1 and 0.8.2
- Patch to windows build
- Better semver parsing of camera firmware
Changes between ifm3d 0.8.0 and 0.8.1
- Reverted Windows build changes due to how it broke packaging on Linux
Changes between ifm3d 0.7.0 and 0.8.0
- Illumination temperature is registered to frame data
Changes between ifm3d 0.6.0 and 0.7.0
- Added timestamping of image buffers
- Added support for setting/getting time on O3D cameras
- Added support for setting temporary application parameters. Please note, that if the device does not support this, it may “fail silently”, so, a closed-loop check by the user is recommended.
Changes between ifm3d 0.5.0 and 0.6.0
- Added the pcic client feature from
libo3d3xx
- Added the ability to dump on-camera tracelogs including an interface to this
capability via the
trace
subcommand to theifm3d
command-line tool.
Changes between ifm3d 0.4.0 and 0.5.0
- Added
swupdate
subcommand in the tools module - Added image module support to Windows build
Changes between ifm3d 0.3.3 and 0.4.0
- Added modules/tools/contrib with bash completions for ifm3d
Changes between ifm3d 0.3.2 and 0.3.3
- Windows build support (should have been a bump to 0.4.0)
Changes between ifm3d 0.3.1 and 0.3.2
- CMake build scripts now look for opencv in tools module since the image buffer header includes an opencv header
Changes between ifm3d 0.3.0 and 0.3.1
- Fixed regression on 14.04 - no compiler support for std::put_time (#3)
Changes between ifm3d 0.2.0 and 0.3.0
- Support for NTP (on O3X)
- Added simple viewer sub-command to the
ifm3d
command-line program. This viewer will render the point cloud and color each pixel with the normalized amplitude value registered to that point.
Changes between ifm3d 0.1.0 and 0.2.0
- Added software trigger support to O3X
- Added support for ifm Vision Assistant compatible import/export functions for O3X cameras
- Optimization to
ifm3d
cmd line tool when passed either--help
orversion
. It will no longer try to connect to the device first, which makes this much more responsive and convenient for when no h/w is plugged in. - Added the ability to explicitly choose OpenCV 2.4 or OpenCV 3 at cmake/compile time.
- Modifications to enable the library to build under Ubuntu 14.04 (C++11 instead of C++14 and gcc 4.8. Big thanks to @aaronhoy at Fetch Robotics for his work
- Added a new build-time utility
ifm3d-dpkg-deps.py to auto-generate
debian dependencies for the binary packages. This is needed because, for how
we are building multiple shared libraries across multiple debian packages,
cmake’s stanard wrapper to
dpkg-shlibdeps
does not work for us (for several reasons).
This file has started tracking ifm3d at 0.1.0
- Initial (alpha) release
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ifm3d_core at Robotics Stack Exchange
ifm3d_core package from ifm3d_core repoifm3d_core |
|
Third-Party Package
This third-party package's source repository does not contain a package manifest. Instead, its package manifest is stored in its release repository. In order to build this package from source in a Catkin workspace, please download its package manifest.Package Summary
Tags | No category tags. |
Version | 0.18.0 |
License | Apache 2.0 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ifm/ifm3d |
VCS Type | git |
VCS Version | v0.18.0 |
Last Updated | 2020-06-02 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Sean Kelly
Authors
- Tom Panzarella
ifm3d
Library and utilities for working with ifm pmd-based 3D ToF Cameras.
Current Revision
ifm3d version | Supported O3D Firmware Version | Supported O3X Firmware Version | Supported Ubuntu Linux Version | Notes |
---|---|---|---|---|
0.18.0 | 1.6.2114, 1.23.1522, 1.23.1522, 1.23.2848, 1.30.4123, 1.30.5309 | 1.0.122, 1.0.126, 1.0.156 | 16.04,18.04,20.04 | Expanded support matrix for platforms/archs/firmwares |
A full software compatibility matrix, including older releases, is available here.
Organization of the Software
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. |
swupdater | Provides utilities for managing the SWUpdate subsystem of the camera. |
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.
Installing the Software
Binaries for ifm3d are available on a few supported platforms. Instructions for each now follow.
Linux
Snap Application
The ifm3d command line utility and
viewer tool are available as a snap
in the Snapcraft application store. Snapcraft supports most major Linux
distributions. The storefront
page for ifm3d
is: https://snapcraft.io/ifm3d
To install the package on a snapd enabled system:
$ sudo snap install ifm3d
After installation, the commands ifm3d
and ifm3d.viewer
should be
available.
NOTE: This option is a convenient way to install and update tools and
utilities for working with ifm Cameras. This option is not suitable for
developers hoping to target the ifm3d
API and shared libraries. Developers
should opt for standard debian packages, or building from source.
Ubuntu Linux via Apt (amd64/arm64)
We provide apt repositories for the following Ubuntu Linux distributions and architectures:
Ubuntu 16.04 Xenial | Ubuntu 18.04 Melodic | Ubuntu 20.04 Focal | |
---|---|---|---|
amd64 | X | X | X |
arm64 | X | X | X |
Add the repository to your sources.list:
$ sudo sh -c 'echo "deb https://nexus.ifm.com/repository/ifm-robotics_ubuntu_$(lsb_release -sc)_$(dpkg --print-architecture) $(lsb_release -sc) main" > /etc/apt/sources.list.d/ifm-robotics.list'
Add the public key for the repository:
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 8AB59D3A2BD7B692
Install the software:
$ sudo apt-get update
$ sudo apt-get install ifm3d-camera \
ifm3d-framegrabber \
ifm3d-swupdater \
ifm3d-image \
ifm3d-opencv \
ifm3d-pcicclient \
ifm3d-tools \
ifm3d-python3 \
ifm3d-pcl-viewer \
Linux for Tegra
Linux for Tegra is an NVIDIA Linux distribution for the Jetson family of GPU
SoC systems. NVIDIA distributes a software package called JetPack with various
utilities and libraries optimized for the target hardware. There are a few
pakages which override the core Ubuntu packages (OpenCV
as the primary
example). We provide alternate apt repositories for ifm3d
built on top of
the JetPack libraries rather than the Ubuntu libraries.
Add one of the following repositories based on your desired JetPack/L4T release:
Jetpack 4.4:
$ sudo sh -c 'echo "deb https://nexus.ifm.com/repository/ifm-robotics_l4t_jetpack_4_4_arm64 melodic main" > /etc/apt/sources.list.d/ifm-robotics.list'
Jetpack 4.3:
$ sudo sh -c 'echo "deb https://nexus.ifm.com/repository/ifm-robotics_l4t_jetpack_4_3_arm64 melodic main" > /etc/apt/sources.list.d/ifm-robotics.list'
Add the public key for the repository:
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 8AB59D3A2BD7B692
Install the software:
$ sudo apt-get update
$ sudo apt-get install ifm3d-camera \
ifm3d-framegrabber \
ifm3d-swupdater \
ifm3d-image \
ifm3d-opencv \
ifm3d-pcicclient \
ifm3d-tools \
ifm3d-python3 \
ifm3d-pcl-viewer \
ROS/ROS2
For users interested in using our ROS
bindings, ifm3d
and ifm3d-ros
are both available in the ROS distribution
for Kinetic and Melodic (Noetic coming shortly).
$ sudo apt install ros-kinetic-ifm3d
or
$ sudo apt install ros-melodic-ifm3d
For users interested in using our ROS2
bindings, binaries will be included (starting with dashing) very soon. For now,
packages must be built from source. Do not use the debian mirror for
ifm3d
since (depending on version) ROS2 ships parallel versions of some core
libraries (OpenCV, PCL) as compared with standard Ubuntu. ifm3d
must be built
against the proper dependencies.
Windows
Pre-built binaries are not yet available. For now we recommend manually compiling for the target MSVC/SDK versions according to the building on windows instructions.
Other platforms
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 we recommend
either the Snapcraft option discussed above, or Docker containers.
Additional Resources
- 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
-
Computing Cartesian data off-board using the
ifm3dpy
Python bindings.
Known Issues, Bugs, and our TODO list
Please see the Github Issue Tracker.
LICENSE
Please see the file called LICENSE.
Changes between ifm3d 0.17.0 and 0.18.0
- Support for latest O3D3XX firmware (1.30.5309)
- Support for latest O3X firmware (1.0.156)
- Deprecated ROS-specific apt repositories
- Deprecated python2 support
- Support for Ubuntu 20.04 Focal Fossa
- Packaged and released ifm3d as a Snap
- Added support for Ubuntu ARM64
- Added support for L4T (Linux for Tegra) JetPack 4.3 and 4.4
- Improved Windows build instructions
- Created GitHub Actions CI workflows
- Bugfixes:
- #190 - Added missing include for Windows build
Changes between ifm3d 0.16.0 and 0.17.0
- Reverted changes in 0.16.0 (FrameGrabberUdp – No viable path to UDP implementation in F/W)
- Bugfixes
- Issue with libcurl usage on 32bit targets
- Corrected minimum firmware version required for inverse intrinsics
- Corrected handling of spurious wakes in FrameGrabber
- Fixed ComputeCartesian python unit test to properly blank out invalid pixels
- Changed
build
Dockerfiles to use pip for numpy/pytest - Fixed race condition in PCICClient unit tests
- Changed setup.py to honor the environment variables per the Windows installation instructions
- Updated installation documentation for Windows
Changes between ifm3d 0.15.1 and 0.16.0
- Created new
framegrabberudp
module for consuming data over UDP interface
Changes between ifm3d 0.15.0 and 0.15.1
- Minor updates to allow for cross-compiling ifm3d for the O3D3XX
- PCIC timeout issue fixed
Changes between ifm3d 0.14.1 and 0.15.0
- Added Interface for getting json_model from O3D3xx devices.
Changes between ifm3d 0.14.0 and 0.14.1
- Fixes to how timeouts are handled in
swupdate
module - Updated embedded JSON library to 3.6.1, single-header.
Changes between ifm3d 0.13.0 and 0.14.0
- New module: swupdater – utilities for updating camera firmware
- Ported functionality from
swupdate
command into its own library for programmatic consumption. - Updated certain semantics of the
swupdate
command in thetools
module to match those of the other ifm3dtools
commands- Updated command line switch naming to match other ifm3d tools:
-
check
subcommand now invoked by-c
or--check
-
reboot
subcommand now invoked by-r
or--reboot
-
-
file
subcommand will now test for recovery and automatically reboot the device into recovery as needed.
- Updated command line switch naming to match other ifm3d tools:
- Ported functionality from
- Disabled framegrabber’s InverseIntrinsicParamSchema test due to suspected false failures. Test case will be investigated and re-opened in a future release.
- Fixed issues with unit test scripts on Windows
- Fixed Windows build documentation
- Added
BUILD_SHARED_LIBS
definition toglog
to address issues with logging to STDERR in Windows binaries - Parameterized the CMake generator for easier building when multiple versions of MSVC are installed concurrently
- Added
Changes between ifm3d 0.12.0 and 0.13.0
- Honor semantics of CMake’s BUILD_SHARED_LIBS flag (ON by default). Setting to off will build and link against ifm3d modules as static libraries.
- New module: pybind11 – Python bindings for the the C++ API
Changes between ifm3d 0.11.2 and 0.12.0
- Fixes to build infrastructure in support of windows unit tests
- Added support to retrieve the inverse intrinsic parameters from O3D3xx cameras
Changes between ifm3d 0.11.1 and 0.11.2
- Bugfix for #111, moved a log message in framegrabber to IFM3D_PROTO_DEBUG to keep noise level low when running an O3X for extended periods of time.
- Changed flagging bad pixels to always be
0
regardless of data type. Users could always consult the confidence image themselves and discriminate between a true0
(not possible) and a bad pixel which they could then transform tonan
or whatever other sentinel makes sense for their application.
Changes between ifm3d 0.11.0 and 0.11.1
- Bugfix for #103
header is not in the correct format
whenmake check
is executed against FW 1.6.2114 - Bugifx for #107 Allows OpenCV module headers to be included in more than one translation unit thus avoiding violation of ODR.
- The
image
andopencv
modules now flags bad pixels at the driver-level
Changes between ifm3d 0.10.0 and 0.11.0
- Added a
jitter
subcommand to ifm3d - Added support to retrieve the intrinsic parameters from O3D3xx cameras
Changes between ifm3d 0.9.3 and 0.10.0
- Adds support for setting the
IFM3D_SESSION_ID
environment variable for establishing edit sessions with the camera using a known ID. - Sessions are now explicitly cancellable if the session ID is known.
- Some session management optimizations in
FromJSON
which should result in incremental speedups in importing JSON configurations to the camera.
Changes between ifm3d 0.9.2 and 0.9.3
- Added build instructions how to switch between Release and Debug for Windows builds
- Added Troubleshoot guide
- Added Opencv module build instruction for windows
- Added minimum MSVC version requirement
- Added prerequisite packages list for building ifm3d
- Changed warning message in framegrabber from
WARNING
toIFM3D_TRACE
severity level - Updated swupdate command with –check (recovery mode check) and -r (reboot to productive mode)
Changes between ifm3d 0.9.1 and 0.9.2
- Added Support for the Ubuntu 18.04
- Added glog support in the cmake config files
Changes between ifm3d 0.9.0 and 0.9.1
- Removed some additional Boost dependencies
Changes between ifm3d 0.8.3 and 0.9.0
- Version number handling is now done in the cmake
project
command in the top-level CMakeLists.txt file - Dropped support for Ubuntu 14.04
- Increased cmake requirements to 3.5
- Increaded compiler requirements to C++14
- Moved
examples
module into new project ifm3d-examples - Moved
viewer
sub-command out of the ifm3d project. This is to decrease the PCL dependencies (see Issue #42). A new project will be created in support of this viewer application: ifm3d-pcl-viewer - Updated JSON parsing library to 3.1.2
- By default, pcicclient module is now
OFF
. - Pixel-parsing framework has been significantly refactored. Sub-system
specific docs for image container implementers have been provided in the
doc
folder. - Updated the
ImageBuffer
to conform to the new pixel-publishing architecture. - Initial implementation of an OpenCV-only (i.e., no PCL) image container. This
is the
opencv
module of theifm3d
project. - Added a
passwd
subcommand toifm3d
Changes between ifm3d 0.8.2 and 0.8.3
- Fixed a cmake regression regarding -std=c++11 flags passed to the compiler; surfaces on old versions of cmake, i.e., in Ubuntu 14.04
Changes between ifm3d 0.8.1 and 0.8.2
- Patch to windows build
- Better semver parsing of camera firmware
Changes between ifm3d 0.8.0 and 0.8.1
- Reverted Windows build changes due to how it broke packaging on Linux
Changes between ifm3d 0.7.0 and 0.8.0
- Illumination temperature is registered to frame data
Changes between ifm3d 0.6.0 and 0.7.0
- Added timestamping of image buffers
- Added support for setting/getting time on O3D cameras
- Added support for setting temporary application parameters. Please note, that if the device does not support this, it may “fail silently”, so, a closed-loop check by the user is recommended.
Changes between ifm3d 0.5.0 and 0.6.0
- Added the pcic client feature from
libo3d3xx
- Added the ability to dump on-camera tracelogs including an interface to this
capability via the
trace
subcommand to theifm3d
command-line tool.
Changes between ifm3d 0.4.0 and 0.5.0
- Added
swupdate
subcommand in the tools module - Added image module support to Windows build
Changes between ifm3d 0.3.3 and 0.4.0
- Added modules/tools/contrib with bash completions for ifm3d
Changes between ifm3d 0.3.2 and 0.3.3
- Windows build support (should have been a bump to 0.4.0)
Changes between ifm3d 0.3.1 and 0.3.2
- CMake build scripts now look for opencv in tools module since the image buffer header includes an opencv header
Changes between ifm3d 0.3.0 and 0.3.1
- Fixed regression on 14.04 - no compiler support for std::put_time (#3)
Changes between ifm3d 0.2.0 and 0.3.0
- Support for NTP (on O3X)
- Added simple viewer sub-command to the
ifm3d
command-line program. This viewer will render the point cloud and color each pixel with the normalized amplitude value registered to that point.
Changes between ifm3d 0.1.0 and 0.2.0
- Added software trigger support to O3X
- Added support for ifm Vision Assistant compatible import/export functions for O3X cameras
- Optimization to
ifm3d
cmd line tool when passed either--help
orversion
. It will no longer try to connect to the device first, which makes this much more responsive and convenient for when no h/w is plugged in. - Added the ability to explicitly choose OpenCV 2.4 or OpenCV 3 at cmake/compile time.
- Modifications to enable the library to build under Ubuntu 14.04 (C++11 instead of C++14 and gcc 4.8. Big thanks to @aaronhoy at Fetch Robotics for his work
- Added a new build-time utility
ifm3d-dpkg-deps.py to auto-generate
debian dependencies for the binary packages. This is needed because, for how
we are building multiple shared libraries across multiple debian packages,
cmake’s stanard wrapper to
dpkg-shlibdeps
does not work for us (for several reasons).
This file has started tracking ifm3d at 0.1.0
- Initial (alpha) release
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ifm3d_core at Robotics Stack Exchange
ifm3d_core package from ifm3d_core repoifm3d_core |
|
Third-Party Package
This third-party package's source repository does not contain a package manifest. Instead, its package manifest is stored in its release repository. In order to build this package from source in a Catkin workspace, please download its package manifest.Package Summary
Tags | No category tags. |
Version | 0.18.0 |
License | Apache 2.0 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ifm/ifm3d |
VCS Type | git |
VCS Version | v0.18.0 |
Last Updated | 2020-06-02 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Sean Kelly
Authors
- Tom Panzarella
ifm3d
Library and utilities for working with ifm pmd-based 3D ToF Cameras.
Current Revision
ifm3d version | Supported O3D Firmware Version | Supported O3X Firmware Version | Supported Ubuntu Linux Version | Notes |
---|---|---|---|---|
0.18.0 | 1.6.2114, 1.23.1522, 1.23.1522, 1.23.2848, 1.30.4123, 1.30.5309 | 1.0.122, 1.0.126, 1.0.156 | 16.04,18.04,20.04 | Expanded support matrix for platforms/archs/firmwares |
A full software compatibility matrix, including older releases, is available here.
Organization of the Software
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. |
swupdater | Provides utilities for managing the SWUpdate subsystem of the camera. |
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.
Installing the Software
Binaries for ifm3d are available on a few supported platforms. Instructions for each now follow.
Linux
Snap Application
The ifm3d command line utility and
viewer tool are available as a snap
in the Snapcraft application store. Snapcraft supports most major Linux
distributions. The storefront
page for ifm3d
is: https://snapcraft.io/ifm3d
To install the package on a snapd enabled system:
$ sudo snap install ifm3d
After installation, the commands ifm3d
and ifm3d.viewer
should be
available.
NOTE: This option is a convenient way to install and update tools and
utilities for working with ifm Cameras. This option is not suitable for
developers hoping to target the ifm3d
API and shared libraries. Developers
should opt for standard debian packages, or building from source.
Ubuntu Linux via Apt (amd64/arm64)
We provide apt repositories for the following Ubuntu Linux distributions and architectures:
Ubuntu 16.04 Xenial | Ubuntu 18.04 Melodic | Ubuntu 20.04 Focal | |
---|---|---|---|
amd64 | X | X | X |
arm64 | X | X | X |
Add the repository to your sources.list:
$ sudo sh -c 'echo "deb https://nexus.ifm.com/repository/ifm-robotics_ubuntu_$(lsb_release -sc)_$(dpkg --print-architecture) $(lsb_release -sc) main" > /etc/apt/sources.list.d/ifm-robotics.list'
Add the public key for the repository:
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 8AB59D3A2BD7B692
Install the software:
$ sudo apt-get update
$ sudo apt-get install ifm3d-camera \
ifm3d-framegrabber \
ifm3d-swupdater \
ifm3d-image \
ifm3d-opencv \
ifm3d-pcicclient \
ifm3d-tools \
ifm3d-python3 \
ifm3d-pcl-viewer \
Linux for Tegra
Linux for Tegra is an NVIDIA Linux distribution for the Jetson family of GPU
SoC systems. NVIDIA distributes a software package called JetPack with various
utilities and libraries optimized for the target hardware. There are a few
pakages which override the core Ubuntu packages (OpenCV
as the primary
example). We provide alternate apt repositories for ifm3d
built on top of
the JetPack libraries rather than the Ubuntu libraries.
Add one of the following repositories based on your desired JetPack/L4T release:
Jetpack 4.4:
$ sudo sh -c 'echo "deb https://nexus.ifm.com/repository/ifm-robotics_l4t_jetpack_4_4_arm64 melodic main" > /etc/apt/sources.list.d/ifm-robotics.list'
Jetpack 4.3:
$ sudo sh -c 'echo "deb https://nexus.ifm.com/repository/ifm-robotics_l4t_jetpack_4_3_arm64 melodic main" > /etc/apt/sources.list.d/ifm-robotics.list'
Add the public key for the repository:
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 8AB59D3A2BD7B692
Install the software:
$ sudo apt-get update
$ sudo apt-get install ifm3d-camera \
ifm3d-framegrabber \
ifm3d-swupdater \
ifm3d-image \
ifm3d-opencv \
ifm3d-pcicclient \
ifm3d-tools \
ifm3d-python3 \
ifm3d-pcl-viewer \
ROS/ROS2
For users interested in using our ROS
bindings, ifm3d
and ifm3d-ros
are both available in the ROS distribution
for Kinetic and Melodic (Noetic coming shortly).
$ sudo apt install ros-kinetic-ifm3d
or
$ sudo apt install ros-melodic-ifm3d
For users interested in using our ROS2
bindings, binaries will be included (starting with dashing) very soon. For now,
packages must be built from source. Do not use the debian mirror for
ifm3d
since (depending on version) ROS2 ships parallel versions of some core
libraries (OpenCV, PCL) as compared with standard Ubuntu. ifm3d
must be built
against the proper dependencies.
Windows
Pre-built binaries are not yet available. For now we recommend manually compiling for the target MSVC/SDK versions according to the building on windows instructions.
Other platforms
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 we recommend
either the Snapcraft option discussed above, or Docker containers.
Additional Resources
- 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
-
Computing Cartesian data off-board using the
ifm3dpy
Python bindings.
Known Issues, Bugs, and our TODO list
Please see the Github Issue Tracker.
LICENSE
Please see the file called LICENSE.
Changes between ifm3d 0.17.0 and 0.18.0
- Support for latest O3D3XX firmware (1.30.5309)
- Support for latest O3X firmware (1.0.156)
- Deprecated ROS-specific apt repositories
- Deprecated python2 support
- Support for Ubuntu 20.04 Focal Fossa
- Packaged and released ifm3d as a Snap
- Added support for Ubuntu ARM64
- Added support for L4T (Linux for Tegra) JetPack 4.3 and 4.4
- Improved Windows build instructions
- Created GitHub Actions CI workflows
- Bugfixes:
- #190 - Added missing include for Windows build
Changes between ifm3d 0.16.0 and 0.17.0
- Reverted changes in 0.16.0 (FrameGrabberUdp – No viable path to UDP implementation in F/W)
- Bugfixes
- Issue with libcurl usage on 32bit targets
- Corrected minimum firmware version required for inverse intrinsics
- Corrected handling of spurious wakes in FrameGrabber
- Fixed ComputeCartesian python unit test to properly blank out invalid pixels
- Changed
build
Dockerfiles to use pip for numpy/pytest - Fixed race condition in PCICClient unit tests
- Changed setup.py to honor the environment variables per the Windows installation instructions
- Updated installation documentation for Windows
Changes between ifm3d 0.15.1 and 0.16.0
- Created new
framegrabberudp
module for consuming data over UDP interface
Changes between ifm3d 0.15.0 and 0.15.1
- Minor updates to allow for cross-compiling ifm3d for the O3D3XX
- PCIC timeout issue fixed
Changes between ifm3d 0.14.1 and 0.15.0
- Added Interface for getting json_model from O3D3xx devices.
Changes between ifm3d 0.14.0 and 0.14.1
- Fixes to how timeouts are handled in
swupdate
module - Updated embedded JSON library to 3.6.1, single-header.
Changes between ifm3d 0.13.0 and 0.14.0
- New module: swupdater – utilities for updating camera firmware
- Ported functionality from
swupdate
command into its own library for programmatic consumption. - Updated certain semantics of the
swupdate
command in thetools
module to match those of the other ifm3dtools
commands- Updated command line switch naming to match other ifm3d tools:
-
check
subcommand now invoked by-c
or--check
-
reboot
subcommand now invoked by-r
or--reboot
-
-
file
subcommand will now test for recovery and automatically reboot the device into recovery as needed.
- Updated command line switch naming to match other ifm3d tools:
- Ported functionality from
- Disabled framegrabber’s InverseIntrinsicParamSchema test due to suspected false failures. Test case will be investigated and re-opened in a future release.
- Fixed issues with unit test scripts on Windows
- Fixed Windows build documentation
- Added
BUILD_SHARED_LIBS
definition toglog
to address issues with logging to STDERR in Windows binaries - Parameterized the CMake generator for easier building when multiple versions of MSVC are installed concurrently
- Added
Changes between ifm3d 0.12.0 and 0.13.0
- Honor semantics of CMake’s BUILD_SHARED_LIBS flag (ON by default). Setting to off will build and link against ifm3d modules as static libraries.
- New module: pybind11 – Python bindings for the the C++ API
Changes between ifm3d 0.11.2 and 0.12.0
- Fixes to build infrastructure in support of windows unit tests
- Added support to retrieve the inverse intrinsic parameters from O3D3xx cameras
Changes between ifm3d 0.11.1 and 0.11.2
- Bugfix for #111, moved a log message in framegrabber to IFM3D_PROTO_DEBUG to keep noise level low when running an O3X for extended periods of time.
- Changed flagging bad pixels to always be
0
regardless of data type. Users could always consult the confidence image themselves and discriminate between a true0
(not possible) and a bad pixel which they could then transform tonan
or whatever other sentinel makes sense for their application.
Changes between ifm3d 0.11.0 and 0.11.1
- Bugfix for #103
header is not in the correct format
whenmake check
is executed against FW 1.6.2114 - Bugifx for #107 Allows OpenCV module headers to be included in more than one translation unit thus avoiding violation of ODR.
- The
image
andopencv
modules now flags bad pixels at the driver-level
Changes between ifm3d 0.10.0 and 0.11.0
- Added a
jitter
subcommand to ifm3d - Added support to retrieve the intrinsic parameters from O3D3xx cameras
Changes between ifm3d 0.9.3 and 0.10.0
- Adds support for setting the
IFM3D_SESSION_ID
environment variable for establishing edit sessions with the camera using a known ID. - Sessions are now explicitly cancellable if the session ID is known.
- Some session management optimizations in
FromJSON
which should result in incremental speedups in importing JSON configurations to the camera.
Changes between ifm3d 0.9.2 and 0.9.3
- Added build instructions how to switch between Release and Debug for Windows builds
- Added Troubleshoot guide
- Added Opencv module build instruction for windows
- Added minimum MSVC version requirement
- Added prerequisite packages list for building ifm3d
- Changed warning message in framegrabber from
WARNING
toIFM3D_TRACE
severity level - Updated swupdate command with –check (recovery mode check) and -r (reboot to productive mode)
Changes between ifm3d 0.9.1 and 0.9.2
- Added Support for the Ubuntu 18.04
- Added glog support in the cmake config files
Changes between ifm3d 0.9.0 and 0.9.1
- Removed some additional Boost dependencies
Changes between ifm3d 0.8.3 and 0.9.0
- Version number handling is now done in the cmake
project
command in the top-level CMakeLists.txt file - Dropped support for Ubuntu 14.04
- Increased cmake requirements to 3.5
- Increaded compiler requirements to C++14
- Moved
examples
module into new project ifm3d-examples - Moved
viewer
sub-command out of the ifm3d project. This is to decrease the PCL dependencies (see Issue #42). A new project will be created in support of this viewer application: ifm3d-pcl-viewer - Updated JSON parsing library to 3.1.2
- By default, pcicclient module is now
OFF
. - Pixel-parsing framework has been significantly refactored. Sub-system
specific docs for image container implementers have been provided in the
doc
folder. - Updated the
ImageBuffer
to conform to the new pixel-publishing architecture. - Initial implementation of an OpenCV-only (i.e., no PCL) image container. This
is the
opencv
module of theifm3d
project. - Added a
passwd
subcommand toifm3d
Changes between ifm3d 0.8.2 and 0.8.3
- Fixed a cmake regression regarding -std=c++11 flags passed to the compiler; surfaces on old versions of cmake, i.e., in Ubuntu 14.04
Changes between ifm3d 0.8.1 and 0.8.2
- Patch to windows build
- Better semver parsing of camera firmware
Changes between ifm3d 0.8.0 and 0.8.1
- Reverted Windows build changes due to how it broke packaging on Linux
Changes between ifm3d 0.7.0 and 0.8.0
- Illumination temperature is registered to frame data
Changes between ifm3d 0.6.0 and 0.7.0
- Added timestamping of image buffers
- Added support for setting/getting time on O3D cameras
- Added support for setting temporary application parameters. Please note, that if the device does not support this, it may “fail silently”, so, a closed-loop check by the user is recommended.
Changes between ifm3d 0.5.0 and 0.6.0
- Added the pcic client feature from
libo3d3xx
- Added the ability to dump on-camera tracelogs including an interface to this
capability via the
trace
subcommand to theifm3d
command-line tool.
Changes between ifm3d 0.4.0 and 0.5.0
- Added
swupdate
subcommand in the tools module - Added image module support to Windows build
Changes between ifm3d 0.3.3 and 0.4.0
- Added modules/tools/contrib with bash completions for ifm3d
Changes between ifm3d 0.3.2 and 0.3.3
- Windows build support (should have been a bump to 0.4.0)
Changes between ifm3d 0.3.1 and 0.3.2
- CMake build scripts now look for opencv in tools module since the image buffer header includes an opencv header
Changes between ifm3d 0.3.0 and 0.3.1
- Fixed regression on 14.04 - no compiler support for std::put_time (#3)
Changes between ifm3d 0.2.0 and 0.3.0
- Support for NTP (on O3X)
- Added simple viewer sub-command to the
ifm3d
command-line program. This viewer will render the point cloud and color each pixel with the normalized amplitude value registered to that point.
Changes between ifm3d 0.1.0 and 0.2.0
- Added software trigger support to O3X
- Added support for ifm Vision Assistant compatible import/export functions for O3X cameras
- Optimization to
ifm3d
cmd line tool when passed either--help
orversion
. It will no longer try to connect to the device first, which makes this much more responsive and convenient for when no h/w is plugged in. - Added the ability to explicitly choose OpenCV 2.4 or OpenCV 3 at cmake/compile time.
- Modifications to enable the library to build under Ubuntu 14.04 (C++11 instead of C++14 and gcc 4.8. Big thanks to @aaronhoy at Fetch Robotics for his work
- Added a new build-time utility
ifm3d-dpkg-deps.py to auto-generate
debian dependencies for the binary packages. This is needed because, for how
we are building multiple shared libraries across multiple debian packages,
cmake’s stanard wrapper to
dpkg-shlibdeps
does not work for us (for several reasons).
This file has started tracking ifm3d at 0.1.0
- Initial (alpha) release
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ifm3d_core at Robotics Stack Exchange
ifm3d_core package from ifm3d_core repoifm3d_core |
|
Third-Party Package
This third-party package's source repository does not contain a package manifest. Instead, its package manifest is stored in its release repository. In order to build this package from source in a Catkin workspace, please download its package manifest.Package Summary
Tags | No category tags. |
Version | 0.18.0 |
License | Apache |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ifm/ifm3d |
VCS Type | git |
VCS Version | v0.18.0 |
Last Updated | 2020-06-02 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Sean Kelly
Authors
- Tom Panzarella
ifm3d
Library and utilities for working with ifm pmd-based 3D ToF Cameras.
Current Revision
ifm3d version | Supported O3D Firmware Version | Supported O3X Firmware Version | Supported Ubuntu Linux Version | Notes |
---|---|---|---|---|
0.18.0 | 1.6.2114, 1.23.1522, 1.23.1522, 1.23.2848, 1.30.4123, 1.30.5309 | 1.0.122, 1.0.126, 1.0.156 | 16.04,18.04,20.04 | Expanded support matrix for platforms/archs/firmwares |
A full software compatibility matrix, including older releases, is available here.
Organization of the Software
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. |
swupdater | Provides utilities for managing the SWUpdate subsystem of the camera. |
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.
Installing the Software
Binaries for ifm3d are available on a few supported platforms. Instructions for each now follow.
Linux
Snap Application
The ifm3d command line utility and
viewer tool are available as a snap
in the Snapcraft application store. Snapcraft supports most major Linux
distributions. The storefront
page for ifm3d
is: https://snapcraft.io/ifm3d
To install the package on a snapd enabled system:
$ sudo snap install ifm3d
After installation, the commands ifm3d
and ifm3d.viewer
should be
available.
NOTE: This option is a convenient way to install and update tools and
utilities for working with ifm Cameras. This option is not suitable for
developers hoping to target the ifm3d
API and shared libraries. Developers
should opt for standard debian packages, or building from source.
Ubuntu Linux via Apt (amd64/arm64)
We provide apt repositories for the following Ubuntu Linux distributions and architectures:
Ubuntu 16.04 Xenial | Ubuntu 18.04 Melodic | Ubuntu 20.04 Focal | |
---|---|---|---|
amd64 | X | X | X |
arm64 | X | X | X |
Add the repository to your sources.list:
$ sudo sh -c 'echo "deb https://nexus.ifm.com/repository/ifm-robotics_ubuntu_$(lsb_release -sc)_$(dpkg --print-architecture) $(lsb_release -sc) main" > /etc/apt/sources.list.d/ifm-robotics.list'
Add the public key for the repository:
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 8AB59D3A2BD7B692
Install the software:
$ sudo apt-get update
$ sudo apt-get install ifm3d-camera \
ifm3d-framegrabber \
ifm3d-swupdater \
ifm3d-image \
ifm3d-opencv \
ifm3d-pcicclient \
ifm3d-tools \
ifm3d-python3 \
ifm3d-pcl-viewer \
Linux for Tegra
Linux for Tegra is an NVIDIA Linux distribution for the Jetson family of GPU
SoC systems. NVIDIA distributes a software package called JetPack with various
utilities and libraries optimized for the target hardware. There are a few
pakages which override the core Ubuntu packages (OpenCV
as the primary
example). We provide alternate apt repositories for ifm3d
built on top of
the JetPack libraries rather than the Ubuntu libraries.
Add one of the following repositories based on your desired JetPack/L4T release:
Jetpack 4.4:
$ sudo sh -c 'echo "deb https://nexus.ifm.com/repository/ifm-robotics_l4t_jetpack_4_4_arm64 melodic main" > /etc/apt/sources.list.d/ifm-robotics.list'
Jetpack 4.3:
$ sudo sh -c 'echo "deb https://nexus.ifm.com/repository/ifm-robotics_l4t_jetpack_4_3_arm64 melodic main" > /etc/apt/sources.list.d/ifm-robotics.list'
Add the public key for the repository:
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 8AB59D3A2BD7B692
Install the software:
$ sudo apt-get update
$ sudo apt-get install ifm3d-camera \
ifm3d-framegrabber \
ifm3d-swupdater \
ifm3d-image \
ifm3d-opencv \
ifm3d-pcicclient \
ifm3d-tools \
ifm3d-python3 \
ifm3d-pcl-viewer \
ROS/ROS2
For users interested in using our ROS
bindings, ifm3d
and ifm3d-ros
are both available in the ROS distribution
for Kinetic and Melodic (Noetic coming shortly).
$ sudo apt install ros-kinetic-ifm3d
or
$ sudo apt install ros-melodic-ifm3d
For users interested in using our ROS2
bindings, binaries will be included (starting with dashing) very soon. For now,
packages must be built from source. Do not use the debian mirror for
ifm3d
since (depending on version) ROS2 ships parallel versions of some core
libraries (OpenCV, PCL) as compared with standard Ubuntu. ifm3d
must be built
against the proper dependencies.
Windows
Pre-built binaries are not yet available. For now we recommend manually compiling for the target MSVC/SDK versions according to the building on windows instructions.
Other platforms
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 we recommend
either the Snapcraft option discussed above, or Docker containers.
Additional Resources
- 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
-
Computing Cartesian data off-board using the
ifm3dpy
Python bindings.
Known Issues, Bugs, and our TODO list
Please see the Github Issue Tracker.
LICENSE
Please see the file called LICENSE.
Changes between ifm3d 0.17.0 and 0.18.0
- Support for latest O3D3XX firmware (1.30.5309)
- Support for latest O3X firmware (1.0.156)
- Deprecated ROS-specific apt repositories
- Deprecated python2 support
- Support for Ubuntu 20.04 Focal Fossa
- Packaged and released ifm3d as a Snap
- Added support for Ubuntu ARM64
- Added support for L4T (Linux for Tegra) JetPack 4.3 and 4.4
- Improved Windows build instructions
- Created GitHub Actions CI workflows
- Bugfixes:
- #190 - Added missing include for Windows build
Changes between ifm3d 0.16.0 and 0.17.0
- Reverted changes in 0.16.0 (FrameGrabberUdp – No viable path to UDP implementation in F/W)
- Bugfixes
- Issue with libcurl usage on 32bit targets
- Corrected minimum firmware version required for inverse intrinsics
- Corrected handling of spurious wakes in FrameGrabber
- Fixed ComputeCartesian python unit test to properly blank out invalid pixels
- Changed
build
Dockerfiles to use pip for numpy/pytest - Fixed race condition in PCICClient unit tests
- Changed setup.py to honor the environment variables per the Windows installation instructions
- Updated installation documentation for Windows
Changes between ifm3d 0.15.1 and 0.16.0
- Created new
framegrabberudp
module for consuming data over UDP interface
Changes between ifm3d 0.15.0 and 0.15.1
- Minor updates to allow for cross-compiling ifm3d for the O3D3XX
- PCIC timeout issue fixed
Changes between ifm3d 0.14.1 and 0.15.0
- Added Interface for getting json_model from O3D3xx devices.
Changes between ifm3d 0.14.0 and 0.14.1
- Fixes to how timeouts are handled in
swupdate
module - Updated embedded JSON library to 3.6.1, single-header.
Changes between ifm3d 0.13.0 and 0.14.0
- New module: swupdater – utilities for updating camera firmware
- Ported functionality from
swupdate
command into its own library for programmatic consumption. - Updated certain semantics of the
swupdate
command in thetools
module to match those of the other ifm3dtools
commands- Updated command line switch naming to match other ifm3d tools:
-
check
subcommand now invoked by-c
or--check
-
reboot
subcommand now invoked by-r
or--reboot
-
-
file
subcommand will now test for recovery and automatically reboot the device into recovery as needed.
- Updated command line switch naming to match other ifm3d tools:
- Ported functionality from
- Disabled framegrabber’s InverseIntrinsicParamSchema test due to suspected false failures. Test case will be investigated and re-opened in a future release.
- Fixed issues with unit test scripts on Windows
- Fixed Windows build documentation
- Added
BUILD_SHARED_LIBS
definition toglog
to address issues with logging to STDERR in Windows binaries - Parameterized the CMake generator for easier building when multiple versions of MSVC are installed concurrently
- Added
Changes between ifm3d 0.12.0 and 0.13.0
- Honor semantics of CMake’s BUILD_SHARED_LIBS flag (ON by default). Setting to off will build and link against ifm3d modules as static libraries.
- New module: pybind11 – Python bindings for the the C++ API
Changes between ifm3d 0.11.2 and 0.12.0
- Fixes to build infrastructure in support of windows unit tests
- Added support to retrieve the inverse intrinsic parameters from O3D3xx cameras
Changes between ifm3d 0.11.1 and 0.11.2
- Bugfix for #111, moved a log message in framegrabber to IFM3D_PROTO_DEBUG to keep noise level low when running an O3X for extended periods of time.
- Changed flagging bad pixels to always be
0
regardless of data type. Users could always consult the confidence image themselves and discriminate between a true0
(not possible) and a bad pixel which they could then transform tonan
or whatever other sentinel makes sense for their application.
Changes between ifm3d 0.11.0 and 0.11.1
- Bugfix for #103
header is not in the correct format
whenmake check
is executed against FW 1.6.2114 - Bugifx for #107 Allows OpenCV module headers to be included in more than one translation unit thus avoiding violation of ODR.
- The
image
andopencv
modules now flags bad pixels at the driver-level
Changes between ifm3d 0.10.0 and 0.11.0
- Added a
jitter
subcommand to ifm3d - Added support to retrieve the intrinsic parameters from O3D3xx cameras
Changes between ifm3d 0.9.3 and 0.10.0
- Adds support for setting the
IFM3D_SESSION_ID
environment variable for establishing edit sessions with the camera using a known ID. - Sessions are now explicitly cancellable if the session ID is known.
- Some session management optimizations in
FromJSON
which should result in incremental speedups in importing JSON configurations to the camera.
Changes between ifm3d 0.9.2 and 0.9.3
- Added build instructions how to switch between Release and Debug for Windows builds
- Added Troubleshoot guide
- Added Opencv module build instruction for windows
- Added minimum MSVC version requirement
- Added prerequisite packages list for building ifm3d
- Changed warning message in framegrabber from
WARNING
toIFM3D_TRACE
severity level - Updated swupdate command with –check (recovery mode check) and -r (reboot to productive mode)
Changes between ifm3d 0.9.1 and 0.9.2
- Added Support for the Ubuntu 18.04
- Added glog support in the cmake config files
Changes between ifm3d 0.9.0 and 0.9.1
- Removed some additional Boost dependencies
Changes between ifm3d 0.8.3 and 0.9.0
- Version number handling is now done in the cmake
project
command in the top-level CMakeLists.txt file - Dropped support for Ubuntu 14.04
- Increased cmake requirements to 3.5
- Increaded compiler requirements to C++14
- Moved
examples
module into new project ifm3d-examples - Moved
viewer
sub-command out of the ifm3d project. This is to decrease the PCL dependencies (see Issue #42). A new project will be created in support of this viewer application: ifm3d-pcl-viewer - Updated JSON parsing library to 3.1.2
- By default, pcicclient module is now
OFF
. - Pixel-parsing framework has been significantly refactored. Sub-system
specific docs for image container implementers have been provided in the
doc
folder. - Updated the
ImageBuffer
to conform to the new pixel-publishing architecture. - Initial implementation of an OpenCV-only (i.e., no PCL) image container. This
is the
opencv
module of theifm3d
project. - Added a
passwd
subcommand toifm3d
Changes between ifm3d 0.8.2 and 0.8.3
- Fixed a cmake regression regarding -std=c++11 flags passed to the compiler; surfaces on old versions of cmake, i.e., in Ubuntu 14.04
Changes between ifm3d 0.8.1 and 0.8.2
- Patch to windows build
- Better semver parsing of camera firmware
Changes between ifm3d 0.8.0 and 0.8.1
- Reverted Windows build changes due to how it broke packaging on Linux
Changes between ifm3d 0.7.0 and 0.8.0
- Illumination temperature is registered to frame data
Changes between ifm3d 0.6.0 and 0.7.0
- Added timestamping of image buffers
- Added support for setting/getting time on O3D cameras
- Added support for setting temporary application parameters. Please note, that if the device does not support this, it may “fail silently”, so, a closed-loop check by the user is recommended.
Changes between ifm3d 0.5.0 and 0.6.0
- Added the pcic client feature from
libo3d3xx
- Added the ability to dump on-camera tracelogs including an interface to this
capability via the
trace
subcommand to theifm3d
command-line tool.
Changes between ifm3d 0.4.0 and 0.5.0
- Added
swupdate
subcommand in the tools module - Added image module support to Windows build
Changes between ifm3d 0.3.3 and 0.4.0
- Added modules/tools/contrib with bash completions for ifm3d
Changes between ifm3d 0.3.2 and 0.3.3
- Windows build support (should have been a bump to 0.4.0)
Changes between ifm3d 0.3.1 and 0.3.2
- CMake build scripts now look for opencv in tools module since the image buffer header includes an opencv header
Changes between ifm3d 0.3.0 and 0.3.1
- Fixed regression on 14.04 - no compiler support for std::put_time (#3)
Changes between ifm3d 0.2.0 and 0.3.0
- Support for NTP (on O3X)
- Added simple viewer sub-command to the
ifm3d
command-line program. This viewer will render the point cloud and color each pixel with the normalized amplitude value registered to that point.
Changes between ifm3d 0.1.0 and 0.2.0
- Added software trigger support to O3X
- Added support for ifm Vision Assistant compatible import/export functions for O3X cameras
- Optimization to
ifm3d
cmd line tool when passed either--help
orversion
. It will no longer try to connect to the device first, which makes this much more responsive and convenient for when no h/w is plugged in. - Added the ability to explicitly choose OpenCV 2.4 or OpenCV 3 at cmake/compile time.
- Modifications to enable the library to build under Ubuntu 14.04 (C++11 instead of C++14 and gcc 4.8. Big thanks to @aaronhoy at Fetch Robotics for his work
- Added a new build-time utility
ifm3d-dpkg-deps.py to auto-generate
debian dependencies for the binary packages. This is needed because, for how
we are building multiple shared libraries across multiple debian packages,
cmake’s stanard wrapper to
dpkg-shlibdeps
does not work for us (for several reasons).
This file has started tracking ifm3d at 0.1.0
- Initial (alpha) release
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ifm3d_core at Robotics Stack Exchange
ifm3d_core package from ifm3d_core repoifm3d_core |
|
Third-Party Package
This third-party package's source repository does not contain a package manifest. Instead, its package manifest is stored in its release repository. In order to build this package from source in a Catkin workspace, please download its package manifest.Package Summary
Tags | No category tags. |
Version | 0.17.0 |
License | Apache |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ifm/ifm3d |
VCS Type | git |
VCS Version | v0.17.0 |
Last Updated | 2019-10-16 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Sean Kelly
Authors
- Tom Panzarella
ifm3d
Library and utilities for working with ifm pmd-based 3D ToF Cameras.
Current Revision
ifm3d version | Supported O3D Firmware Version | Supported O3X Firmware Version | Supported Ubuntu Linux Version | Notes |
---|---|---|---|---|
0.17.0 | 1.6.2114, 1.8.769, 1.20.1138, 1.23.1506, 1.23.1522, 1.23.2848, 1.25.4073, 1.30.4123 | 1.0.111, 1.0.122, 1.0.126 | 16.04,18.04 | Bugfixes and removed FrameGrabberUdp module |
A full software compatibility matrix, including older releases, is available here.
Organization of the Software
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. |
swupdater | Provides utilities for managing the SWUpdate subsystem of the camera. |
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.
Installing the Software
Binaries for ifm3d are available on a few supported platforms. Instructions for each now follow.
Linux
Configure the ifm apt server
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:
Ubuntu 16.04, no ROS
$ 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'
Ubuntu 18.04, no ROS
$ 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'
Ubuntu 16.04, ROS Kinetic
$ 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'
Ubuntu 18.04, ROS Melodic
$ 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'
Set up your keys
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 8AB59D3A2BD7B692
Install
Update your package index:
$ sudo apt-get update
Install the software:
$ sudo apt-get install ifm3d-camera \
ifm3d-framegrabber \
ifm3d-swupdater \
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.
Windows
Coming soon…
Other platforms
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.
Additional Resources
- 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
-
Computing Cartesian data off-board using the
ifm3dpy
Python bindings.
Known Issues, Bugs, and our TODO list
Please see the Github Issue Tracker.
LICENSE
Please see the file called LICENSE.
Changes between ifm3d 0.16.0 and 0.17.0
- Reverted changes in 0.16.0 (FrameGrabberUdp – No viable path to UDP implementation in F/W)
- Bugfixes
- Issue with libcurl usage on 32bit targets
- Corrected minimum firmware version required for inverse intrinsics
- Corrected handling of spurious wakes in FrameGrabber
- Fixed ComputeCartesian python unit test to properly blank out invalid pixels
- Changed
build
Dockerfiles to use pip for numpy/pytest - Fixed race condition in PCICClient unit tests
- Changed setup.py to honor the environment variables per the Windows installation instructions
- Updated installation documentation for Windows
Changes between ifm3d 0.15.1 and 0.16.0
- Created new
framegrabberudp
module for consuming data over UDP interface
Changes between ifm3d 0.15.0 and 0.15.1
- Minor updates to allow for cross-compiling ifm3d for the O3D3XX
- PCIC timeout issue fixed
Changes between ifm3d 0.14.1 and 0.15.0
- Added Interface for getting json_model from O3D3xx devices.
Changes between ifm3d 0.14.0 and 0.14.1
- Fixes to how timeouts are handled in
swupdate
module - Updated embedded JSON library to 3.6.1, single-header.
Changes between ifm3d 0.13.0 and 0.14.0
- New module: swupdater – utilities for updating camera firmware
- Ported functionality from
swupdate
command into its own library for programmatic consumption. - Updated certain semantics of the
swupdate
command in thetools
module to match those of the other ifm3dtools
commands- Updated command line switch naming to match other ifm3d tools:
-
check
subcommand now invoked by-c
or--check
-
reboot
subcommand now invoked by-r
or--reboot
-
-
file
subcommand will now test for recovery and automatically reboot the device into recovery as needed.
- Updated command line switch naming to match other ifm3d tools:
- Ported functionality from
- Disabled framegrabber’s InverseIntrinsicParamSchema test due to suspected false failures. Test case will be investigated and re-opened in a future release.
- Fixed issues with unit test scripts on Windows
- Fixed Windows build documentation
- Added
BUILD_SHARED_LIBS
definition toglog
to address issues with logging to STDERR in Windows binaries - Parameterized the CMake generator for easier building when multiple versions of MSVC are installed concurrently
- Added
Changes between ifm3d 0.12.0 and 0.13.0
- Honor semantics of CMake’s BUILD_SHARED_LIBS flag (ON by default). Setting to off will build and link against ifm3d modules as static libraries.
- New module: pybind11 – Python bindings for the the C++ API
Changes between ifm3d 0.11.2 and 0.12.0
- Fixes to build infrastructure in support of windows unit tests
- Added support to retrieve the inverse intrinsic parameters from O3D3xx cameras
Changes between ifm3d 0.11.1 and 0.11.2
- Bugfix for #111, moved a log message in framegrabber to IFM3D_PROTO_DEBUG to keep noise level low when running an O3X for extended periods of time.
- Changed flagging bad pixels to always be
0
regardless of data type. Users could always consult the confidence image themselves and discriminate between a true0
(not possible) and a bad pixel which they could then transform tonan
or whatever other sentinel makes sense for their application.
Changes between ifm3d 0.11.0 and 0.11.1
- Bugfix for #103
header is not in the correct format
whenmake check
is executed against FW 1.6.2114 - Bugifx for #107 Allows OpenCV module headers to be included in more than one translation unit thus avoiding violation of ODR.
- The
image
andopencv
modules now flags bad pixels at the driver-level
Changes between ifm3d 0.10.0 and 0.11.0
- Added a
jitter
subcommand to ifm3d - Added support to retrieve the intrinsic parameters from O3D3xx cameras
Changes between ifm3d 0.9.3 and 0.10.0
- Adds support for setting the
IFM3D_SESSION_ID
environment variable for establishing edit sessions with the camera using a known ID. - Sessions are now explicitly cancellable if the session ID is known.
- Some session management optimizations in
FromJSON
which should result in incremental speedups in importing JSON configurations to the camera.
Changes between ifm3d 0.9.2 and 0.9.3
- Added build instructions how to switch between Release and Debug for Windows builds
- Added Troubleshoot guide
- Added Opencv module build instruction for windows
- Added minimum MSVC version requirement
- Added prerequisite packages list for building ifm3d
- Changed warning message in framegrabber from
WARNING
toIFM3D_TRACE
severity level - Updated swupdate command with –check (recovery mode check) and -r (reboot to productive mode)
Changes between ifm3d 0.9.1 and 0.9.2
- Added Support for the Ubuntu 18.04
- Added glog support in the cmake config files
Changes between ifm3d 0.9.0 and 0.9.1
- Removed some additional Boost dependencies
Changes between ifm3d 0.8.3 and 0.9.0
- Version number handling is now done in the cmake
project
command in the top-level CMakeLists.txt file - Dropped support for Ubuntu 14.04
- Increased cmake requirements to 3.5
- Increaded compiler requirements to C++14
- Moved
examples
module into new project ifm3d-examples - Moved
viewer
sub-command out of the ifm3d project. This is to decrease the PCL dependencies (see Issue #42). A new project will be created in support of this viewer application: ifm3d-pcl-viewer - Updated JSON parsing library to 3.1.2
- By default, pcicclient module is now
OFF
. - Pixel-parsing framework has been significantly refactored. Sub-system
specific docs for image container implementers have been provided in the
doc
folder. - Updated the
ImageBuffer
to conform to the new pixel-publishing architecture. - Initial implementation of an OpenCV-only (i.e., no PCL) image container. This
is the
opencv
module of theifm3d
project. - Added a
passwd
subcommand toifm3d
Changes between ifm3d 0.8.2 and 0.8.3
- Fixed a cmake regression regarding -std=c++11 flags passed to the compiler; surfaces on old versions of cmake, i.e., in Ubuntu 14.04
Changes between ifm3d 0.8.1 and 0.8.2
- Patch to windows build
- Better semver parsing of camera firmware
Changes between ifm3d 0.8.0 and 0.8.1
- Reverted Windows build changes due to how it broke packaging on Linux
Changes between ifm3d 0.7.0 and 0.8.0
- Illumination temperature is registered to frame data
Changes between ifm3d 0.6.0 and 0.7.0
- Added timestamping of image buffers
- Added support for setting/getting time on O3D cameras
- Added support for setting temporary application parameters. Please note, that if the device does not support this, it may “fail silently”, so, a closed-loop check by the user is recommended.
Changes between ifm3d 0.5.0 and 0.6.0
- Added the pcic client feature from
libo3d3xx
- Added the ability to dump on-camera tracelogs including an interface to this
capability via the
trace
subcommand to theifm3d
command-line tool.
Changes between ifm3d 0.4.0 and 0.5.0
- Added
swupdate
subcommand in the tools module - Added image module support to Windows build
Changes between ifm3d 0.3.3 and 0.4.0
- Added modules/tools/contrib with bash completions for ifm3d
Changes between ifm3d 0.3.2 and 0.3.3
- Windows build support (should have been a bump to 0.4.0)
Changes between ifm3d 0.3.1 and 0.3.2
- CMake build scripts now look for opencv in tools module since the image buffer header includes an opencv header
Changes between ifm3d 0.3.0 and 0.3.1
- Fixed regression on 14.04 - no compiler support for std::put_time (#3)
Changes between ifm3d 0.2.0 and 0.3.0
- Support for NTP (on O3X)
- Added simple viewer sub-command to the
ifm3d
command-line program. This viewer will render the point cloud and color each pixel with the normalized amplitude value registered to that point.
Changes between ifm3d 0.1.0 and 0.2.0
- Added software trigger support to O3X
- Added support for ifm Vision Assistant compatible import/export functions for O3X cameras
- Optimization to
ifm3d
cmd line tool when passed either--help
orversion
. It will no longer try to connect to the device first, which makes this much more responsive and convenient for when no h/w is plugged in. - Added the ability to explicitly choose OpenCV 2.4 or OpenCV 3 at cmake/compile time.
- Modifications to enable the library to build under Ubuntu 14.04 (C++11 instead of C++14 and gcc 4.8. Big thanks to @aaronhoy at Fetch Robotics for his work
- Added a new build-time utility
ifm3d-dpkg-deps.py to auto-generate
debian dependencies for the binary packages. This is needed because, for how
we are building multiple shared libraries across multiple debian packages,
cmake’s stanard wrapper to
dpkg-shlibdeps
does not work for us (for several reasons).
This file has started tracking ifm3d at 0.1.0
- Initial (alpha) release