ifm3d package from ifm3d repo

ifm3d

Package Summary

Tags No category tags.
Version 0.6.2
License Apache 2
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ifm/ifm3d-ros.git
VCS Type git
VCS Version master
Last Updated 2020-03-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Package Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ifm pmd-based 3D ToF Camera ROS package

Additional Links

Maintainers

  • Sean Kelly

Authors

  • Tom Panzarella

ifm3d-ros

ifm3d-ros is a wrapper around ifm3d enabling the usage of ifm pmd-based ToF cameras from within ROS software systems.

rviz1

Software Compatibility Matrix

ifm3d-ros version ifm3d version ROS distribution(s)
0.1.0 0.1.0 Kinetic
0.2.0 0.2.0 Kinetic, Indigo
0.3.0 0.2.0 Kinetic, Indigo
0.4.0 0.2.0, 0.3.0, 0.3.1, 0.3.2 Kinetic, Indigo
0.4.1 0.3.3, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.8.1 Kinetic, Indigo
0.4.2 0.9.0 Kinetic
0.5.0 0.9.0, 0.9.1 Kinetic
0.5.1 0.9.2 Kinetic, Melodic
0.6.0 0.9.2, 0.9.3, 0.10.0, 0.11.0, 0.11.2 Kinetic, Melodic
0.6.1, 0.6.2 0.11.2, 0.12.0, 0.17.0 Kinetic, Melodic

Building and Installing the Software

  1. Preparing your system: Kinetic, Melodic
  2. Installing the ROS node

ROS Interface

camera nodelet

The core ifm3d-ros sensor interface is implemented as a ROS nodelet. This allows for lower-latency data processing vs. the traditional out-of-process node-based ROS interface for applications that require it. However, we ship a launch file with this package that allows for using the core ifm3d-ros driver as a standard node. To launch the node, the following command can be used:

$ roslaunch ifm3d camera.launch

We note, the above command is equivalent to the following and is used for purposes of providing a backward compatible interface to versions of ifm3d-ros prior to the conversion to a nodelet architecture:

$ roslaunch ifm3d nodelet.launch __ns:=ifm3d

Regardless of which command line you used from above, the launch file(s) encapsulate several features:

  1. It exposes some of the camera_nodelet parameters as command-line arguments for ease of runtime configuration.
  2. It instantiates a nodelet manager which the camera_nodelet will be loaded into.
  3. It launches the camera nodelet itself.
  4. It publishes the static transform from the camera's optical frame to a traditional ROS sensor frame as a tf2 static_transform_publisher.

You can either use this launch file directly, or, use it as a basis for integrating ifm3d-ros into your own robot software system.

We note: due to the change in architecture from a standalone node to a nodelet, we have seen one behavior whose solution is not clear to have us provide backward compatible behavior with older versions of ifm3d-ros. Specifically, if you plan to run the camera in software triggered mode, you should lanch the node as follows:

$ GLOG_minloglevel=3 roslaunch ifm3d camera.launch assume_sw_triggered:=true

The incomatibility here is that in prior versions, one would not need to explicitly set the GLOG_ environment variable. While not strictly necessary, it is recommended for keeping the noise level of the ifm3d logs low.

Parameters

Name Data Type Default Value Description
~assume_sw_triggered bool false This provides a hint to the driver that the camera is configured for software triggering (as opposed to free running). In this mode, certain default values are applied to lessen the noise in terms of timeouts from the framegrabber.
~frame_id_base string ifm3d/camera This string provides a prefix into the `tf` tree for `ifm3d-ros` coordinate frames.
~frame_latency_thresh float 60.0 Time (seconds) used to determine that timestamps from the camera cannot be trusted. When this threshold is exceeded, when compared to system time, we use the reception time of the frame and not the capture time of the frame.
~ip string 192.168.0.69 The ip address of the camera.
~password string The password required to establish an edit session with the camera.
~schema_mask uint16 0xf The pcic schema mask to apply to the active session with the frame grabber. This determines which images are available for publication from the camera. More about pcic schemas can be gleaned from the ifm3d project.
~timeout_millis int 500 The number of milliseconds to wait for the framegrabber to return new frame data before declaring a "timeout" and to stop blocking on new data.
~timeout_tolerance_secs float 5.0 The wall time to wait with no new data from the camera before trying to establish a new connection to the camera. This helps to provide robustness against camera cables becoming unplugged or other in-field pathologies which would cause the connection between the ROS node and the camera to be broken.
~soft_on_timeout_millis int 500 If using the `SoftOn` service call, when turning the camera back `on` this is the setting that will be used for `timeout_millis`.
~soft_on_timeout_tolerance_secs float 5.0 If using the `SoftOn` service call, when turning the camera back `on` this is the setting that will be used for `timeout_tolerance_secs`.
~soft_off_timeout_millis int 500 If using the `SoftOff` service call, when turning the camera `off` this is the setting that will be used for `timeout_millis`.
~soft_off_timeout_tolerance_secs float 600.0 If using the `SoftOff` service call, when turning the camera `off` this is the setting that will be used for `timeout_tolerance_secs`.
~sync_clocks bool false Attempt to sync the camera clock to the system clock at start-up. The side-effect is that timestamps on the image should reflect the capture time as opposed to the receipt time.
~xmlrpc_port uint16 80 The TCP port the camera's xmlrpc server is listening on for requests.

Published Topics

Name Data Type Description
amplitude sensor_msgs/Image The normalized amplitude image
cloud sensor_msgs/PointCloud2 The point cloud data
confidence sensor_msgs/Image The confidence image
distance sensor_msgs/Image The radial distance image
extrinsics ifm3d/Extrinsics The extrinsic calibration of the camera with respect to the camera optical frame. The data are mm and degrees.
good_bad_pixels sensor_msgs/Image A binary image indicating good vs. bad pixels as gleaned from the confidence data.
raw_amplitude sensor_msgs/Image The raw amplitude image
unit_vectors sensor_msgs/Image The rotated unit vectors
xyz_image sensor_msgs/Image A 3-channel image encoding of the point cloud. Each of the three image channels respesent a spatial data plane encoding the x, y, z cartesian values respectively.

Subscribed Topics

None.

Advertised Services

Name Service Definition Description
Dump ifm3d/Dump Dumps the state of the camera parameters to JSON
Config ifm3d/Config Provides a means to configure the camera and imager settings, declaratively from a JSON encoding of the desired settings.
SoftOff ifm3d/SoftOff Sets the active application of the camera into software triggered mode which will turn off the active illumination reducing both power and heat.
SoftOn ifm3d/SoftOn Sets the active application of the camera into free-running mode. Its intention is to act as the inverse of `SoftOff`.
SyncClocks ifm3d/SyncClocks Synchronizes the camera clock to the system time. The side-effect is that images can be stamped with the capture time of the frame as opposed to the reception time.
Trigger ifm3d/Trigger Requests the driver to software trigger the imager for data acquisition.

Additional Documentation

LICENSE

Please see the file called LICENSE.

CHANGELOG

Changes between ifm3d-ros 0.6.1 and 0.6.2

  • Updated maintainer email address
  • Added ifm3d-core dependency in preparation for submission to the ROS index

Changes between ifm3d-ros 0.6.0 and 0.6.1

  • Added support syncing the system and camera clocks at startup. Side-effect, is we can now stamp the images with the camera-side capture time and not the host-side reception time.
  • Added the SyncClocks Service

Changes between ifm3d-ros 0.5.1 and 0.6.0

  • Added a image transport plugin blacklist to the nodlet launch file. This prevents many of the errors seen in the terminal when running rosbag -a to capture camera data
  • Added the SoftOn and SoftOff service calls

Changes between ifm3d-ros 0.5.0 and 0.5.1

  • Added support for Ubuntu 18.04 and ROS Melodic

Changes between ifm3d-ros 0.4.2 and 0.5.0

  • Converted primary data publisher to a nodelet architecture
  • Provide the dump and config scripts to call into the exposed ROS services of the nodelet. Removed the older "config node".
  • Added unit tests

Changes between ifm3d-ros 0.4.1 and 0.4.2

  • Now requires ifm3d 0.9.0 and by association the more modernized tooling (C++14, cmake 3.5, dropped support for 14.04/Indigo, etc.)

Changes between ifm3d-ros 0.3.0 and 0.4.0

  • Now publishing extrinsics on a topic

Changes between ifm3d-ros 0.2.0 and 0.3.0

  • Added Dump Service
  • Added Config Service
  • Added Trigger Service

Changes between ifm3d-ros 0.1.0 and 0.2.0

  • Updates to CMakeLists.txt to support Ubuntu 14.04 and ROS Indigo

This file has started tracking ifm3d-ros at 0.1.0

  • Initial (alpha) release

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

No known dependants.

Launch files

  • launch/nodelet.launch
      • camera [default: camera]
      • ip [default: 192.168.0.69]
      • xmlrpc_port [default: 80]
      • password [default: ]
      • schema_mask [default: 15]
      • timeout_millis [default: 500]
      • timeout_tolerance_secs [default: 5.0]
      • respawn [default: false]
      • assume_sw_triggered [default: false]
      • sync_clocks [default: false]
      • frame_id_base [default: ifm3d/$(arg camera)]
  • launch/camera.launch
      • ns [default: ifm3d]
      • nn [default: camera]
      • ip [default: 192.168.0.69]
      • xmlrpc_port [default: 80]
      • password [default: ]
      • schema_mask [default: 15]
      • timeout_millis [default: 500]
      • timeout_tolerance_secs [default: 5.0]
      • frame_id_base [default: $(arg ns)/$(arg nn)]
      • respawn [default: false]
      • assume_sw_triggered [default: false]
      • sync_clocks [default: false]
  • launch/rviz.launch
      • ns [default: ifm3d]
      • nn [default: camera]

Plugins

Recent questions tagged ifm3d at answers.ros.org

ifm3d package from ifm3d repo

ifm3d

Package Summary

Tags No category tags.
Version 0.6.2
License Apache 2
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ifm/ifm3d-ros.git
VCS Type git
VCS Version master
Last Updated 2020-03-18
Dev Status DEVELOPED
CI status
Released RELEASED
Package Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ifm pmd-based 3D ToF Camera ROS package

Additional Links

Maintainers

  • Sean Kelly

Authors

  • Tom Panzarella

ifm3d-ros

ifm3d-ros is a wrapper around ifm3d enabling the usage of ifm pmd-based ToF cameras from within ROS software systems.

rviz1

Software Compatibility Matrix

ifm3d-ros version ifm3d version ROS distribution(s)
0.1.0 0.1.0 Kinetic
0.2.0 0.2.0 Kinetic, Indigo
0.3.0 0.2.0 Kinetic, Indigo
0.4.0 0.2.0, 0.3.0, 0.3.1, 0.3.2 Kinetic, Indigo
0.4.1 0.3.3, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.8.1 Kinetic, Indigo
0.4.2 0.9.0 Kinetic
0.5.0 0.9.0, 0.9.1 Kinetic
0.5.1 0.9.2 Kinetic, Melodic
0.6.0 0.9.2, 0.9.3, 0.10.0, 0.11.0, 0.11.2 Kinetic, Melodic
0.6.1, 0.6.2 0.11.2, 0.12.0, 0.17.0 Kinetic, Melodic

Building and Installing the Software

  1. Preparing your system: Kinetic, Melodic
  2. Installing the ROS node

ROS Interface

camera nodelet

The core ifm3d-ros sensor interface is implemented as a ROS nodelet. This allows for lower-latency data processing vs. the traditional out-of-process node-based ROS interface for applications that require it. However, we ship a launch file with this package that allows for using the core ifm3d-ros driver as a standard node. To launch the node, the following command can be used:

$ roslaunch ifm3d camera.launch

We note, the above command is equivalent to the following and is used for purposes of providing a backward compatible interface to versions of ifm3d-ros prior to the conversion to a nodelet architecture:

$ roslaunch ifm3d nodelet.launch __ns:=ifm3d

Regardless of which command line you used from above, the launch file(s) encapsulate several features:

  1. It exposes some of the camera_nodelet parameters as command-line arguments for ease of runtime configuration.
  2. It instantiates a nodelet manager which the camera_nodelet will be loaded into.
  3. It launches the camera nodelet itself.
  4. It publishes the static transform from the camera's optical frame to a traditional ROS sensor frame as a tf2 static_transform_publisher.

You can either use this launch file directly, or, use it as a basis for integrating ifm3d-ros into your own robot software system.

We note: due to the change in architecture from a standalone node to a nodelet, we have seen one behavior whose solution is not clear to have us provide backward compatible behavior with older versions of ifm3d-ros. Specifically, if you plan to run the camera in software triggered mode, you should lanch the node as follows:

$ GLOG_minloglevel=3 roslaunch ifm3d camera.launch assume_sw_triggered:=true

The incomatibility here is that in prior versions, one would not need to explicitly set the GLOG_ environment variable. While not strictly necessary, it is recommended for keeping the noise level of the ifm3d logs low.

Parameters

Name Data Type Default Value Description
~assume_sw_triggered bool false This provides a hint to the driver that the camera is configured for software triggering (as opposed to free running). In this mode, certain default values are applied to lessen the noise in terms of timeouts from the framegrabber.
~frame_id_base string ifm3d/camera This string provides a prefix into the `tf` tree for `ifm3d-ros` coordinate frames.
~frame_latency_thresh float 60.0 Time (seconds) used to determine that timestamps from the camera cannot be trusted. When this threshold is exceeded, when compared to system time, we use the reception time of the frame and not the capture time of the frame.
~ip string 192.168.0.69 The ip address of the camera.
~password string The password required to establish an edit session with the camera.
~schema_mask uint16 0xf The pcic schema mask to apply to the active session with the frame grabber. This determines which images are available for publication from the camera. More about pcic schemas can be gleaned from the ifm3d project.
~timeout_millis int 500 The number of milliseconds to wait for the framegrabber to return new frame data before declaring a "timeout" and to stop blocking on new data.
~timeout_tolerance_secs float 5.0 The wall time to wait with no new data from the camera before trying to establish a new connection to the camera. This helps to provide robustness against camera cables becoming unplugged or other in-field pathologies which would cause the connection between the ROS node and the camera to be broken.
~soft_on_timeout_millis int 500 If using the `SoftOn` service call, when turning the camera back `on` this is the setting that will be used for `timeout_millis`.
~soft_on_timeout_tolerance_secs float 5.0 If using the `SoftOn` service call, when turning the camera back `on` this is the setting that will be used for `timeout_tolerance_secs`.
~soft_off_timeout_millis int 500 If using the `SoftOff` service call, when turning the camera `off` this is the setting that will be used for `timeout_millis`.
~soft_off_timeout_tolerance_secs float 600.0 If using the `SoftOff` service call, when turning the camera `off` this is the setting that will be used for `timeout_tolerance_secs`.
~sync_clocks bool false Attempt to sync the camera clock to the system clock at start-up. The side-effect is that timestamps on the image should reflect the capture time as opposed to the receipt time.
~xmlrpc_port uint16 80 The TCP port the camera's xmlrpc server is listening on for requests.

Published Topics

Name Data Type Description
amplitude sensor_msgs/Image The normalized amplitude image
cloud sensor_msgs/PointCloud2 The point cloud data
confidence sensor_msgs/Image The confidence image
distance sensor_msgs/Image The radial distance image
extrinsics ifm3d/Extrinsics The extrinsic calibration of the camera with respect to the camera optical frame. The data are mm and degrees.
good_bad_pixels sensor_msgs/Image A binary image indicating good vs. bad pixels as gleaned from the confidence data.
raw_amplitude sensor_msgs/Image The raw amplitude image
unit_vectors sensor_msgs/Image The rotated unit vectors
xyz_image sensor_msgs/Image A 3-channel image encoding of the point cloud. Each of the three image channels respesent a spatial data plane encoding the x, y, z cartesian values respectively.

Subscribed Topics

None.

Advertised Services

Name Service Definition Description
Dump ifm3d/Dump Dumps the state of the camera parameters to JSON
Config ifm3d/Config Provides a means to configure the camera and imager settings, declaratively from a JSON encoding of the desired settings.
SoftOff ifm3d/SoftOff Sets the active application of the camera into software triggered mode which will turn off the active illumination reducing both power and heat.
SoftOn ifm3d/SoftOn Sets the active application of the camera into free-running mode. Its intention is to act as the inverse of `SoftOff`.
SyncClocks ifm3d/SyncClocks Synchronizes the camera clock to the system time. The side-effect is that images can be stamped with the capture time of the frame as opposed to the reception time.
Trigger ifm3d/Trigger Requests the driver to software trigger the imager for data acquisition.

Additional Documentation

LICENSE

Please see the file called LICENSE.

CHANGELOG

Changes between ifm3d-ros 0.6.1 and 0.6.2

  • Updated maintainer email address
  • Added ifm3d-core dependency in preparation for submission to the ROS index

Changes between ifm3d-ros 0.6.0 and 0.6.1

  • Added support syncing the system and camera clocks at startup. Side-effect, is we can now stamp the images with the camera-side capture time and not the host-side reception time.
  • Added the SyncClocks Service

Changes between ifm3d-ros 0.5.1 and 0.6.0

  • Added a image transport plugin blacklist to the nodlet launch file. This prevents many of the errors seen in the terminal when running rosbag -a to capture camera data
  • Added the SoftOn and SoftOff service calls

Changes between ifm3d-ros 0.5.0 and 0.5.1

  • Added support for Ubuntu 18.04 and ROS Melodic

Changes between ifm3d-ros 0.4.2 and 0.5.0

  • Converted primary data publisher to a nodelet architecture
  • Provide the dump and config scripts to call into the exposed ROS services of the nodelet. Removed the older "config node".
  • Added unit tests

Changes between ifm3d-ros 0.4.1 and 0.4.2

  • Now requires ifm3d 0.9.0 and by association the more modernized tooling (C++14, cmake 3.5, dropped support for 14.04/Indigo, etc.)

Changes between ifm3d-ros 0.3.0 and 0.4.0

  • Now publishing extrinsics on a topic

Changes between ifm3d-ros 0.2.0 and 0.3.0

  • Added Dump Service
  • Added Config Service
  • Added Trigger Service

Changes between ifm3d-ros 0.1.0 and 0.2.0

  • Updates to CMakeLists.txt to support Ubuntu 14.04 and ROS Indigo

This file has started tracking ifm3d-ros at 0.1.0

  • Initial (alpha) release

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

No known dependants.

Launch files

  • launch/nodelet.launch
      • camera [default: camera]
      • ip [default: 192.168.0.69]
      • xmlrpc_port [default: 80]
      • password [default: ]
      • schema_mask [default: 15]
      • timeout_millis [default: 500]
      • timeout_tolerance_secs [default: 5.0]
      • respawn [default: false]
      • assume_sw_triggered [default: false]
      • sync_clocks [default: false]
      • frame_id_base [default: ifm3d/$(arg camera)]
  • launch/camera.launch
      • ns [default: ifm3d]
      • nn [default: camera]
      • ip [default: 192.168.0.69]
      • xmlrpc_port [default: 80]
      • password [default: ]
      • schema_mask [default: 15]
      • timeout_millis [default: 500]
      • timeout_tolerance_secs [default: 5.0]
      • frame_id_base [default: $(arg ns)/$(arg nn)]
      • respawn [default: false]
      • assume_sw_triggered [default: false]
      • sync_clocks [default: false]
  • launch/rviz.launch
      • ns [default: ifm3d]
      • nn [default: camera]

Plugins

Recent questions tagged ifm3d at answers.ros.org

ifm3d package from ifm3d repo

ifm3d

Package Summary

Tags No category tags.
Version 0.6.2
License Apache 2
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ifm/ifm3d-ros.git
VCS Type git
VCS Version master
Last Updated 2020-03-18
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Package Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ifm pmd-based 3D ToF Camera ROS package

Additional Links

Maintainers

  • Sean Kelly

Authors

  • Tom Panzarella

ifm3d-ros

ifm3d-ros is a wrapper around ifm3d enabling the usage of ifm pmd-based ToF cameras from within ROS software systems.

rviz1

Software Compatibility Matrix

ifm3d-ros version ifm3d version ROS distribution(s)
0.1.0 0.1.0 Kinetic
0.2.0 0.2.0 Kinetic, Indigo
0.3.0 0.2.0 Kinetic, Indigo
0.4.0 0.2.0, 0.3.0, 0.3.1, 0.3.2 Kinetic, Indigo
0.4.1 0.3.3, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.8.1 Kinetic, Indigo
0.4.2 0.9.0 Kinetic
0.5.0 0.9.0, 0.9.1 Kinetic
0.5.1 0.9.2 Kinetic, Melodic
0.6.0 0.9.2, 0.9.3, 0.10.0, 0.11.0, 0.11.2 Kinetic, Melodic
0.6.1, 0.6.2 0.11.2, 0.12.0, 0.17.0 Kinetic, Melodic

Building and Installing the Software

  1. Preparing your system: Kinetic, Melodic
  2. Installing the ROS node

ROS Interface

camera nodelet

The core ifm3d-ros sensor interface is implemented as a ROS nodelet. This allows for lower-latency data processing vs. the traditional out-of-process node-based ROS interface for applications that require it. However, we ship a launch file with this package that allows for using the core ifm3d-ros driver as a standard node. To launch the node, the following command can be used:

$ roslaunch ifm3d camera.launch

We note, the above command is equivalent to the following and is used for purposes of providing a backward compatible interface to versions of ifm3d-ros prior to the conversion to a nodelet architecture:

$ roslaunch ifm3d nodelet.launch __ns:=ifm3d

Regardless of which command line you used from above, the launch file(s) encapsulate several features:

  1. It exposes some of the camera_nodelet parameters as command-line arguments for ease of runtime configuration.
  2. It instantiates a nodelet manager which the camera_nodelet will be loaded into.
  3. It launches the camera nodelet itself.
  4. It publishes the static transform from the camera's optical frame to a traditional ROS sensor frame as a tf2 static_transform_publisher.

You can either use this launch file directly, or, use it as a basis for integrating ifm3d-ros into your own robot software system.

We note: due to the change in architecture from a standalone node to a nodelet, we have seen one behavior whose solution is not clear to have us provide backward compatible behavior with older versions of ifm3d-ros. Specifically, if you plan to run the camera in software triggered mode, you should lanch the node as follows:

$ GLOG_minloglevel=3 roslaunch ifm3d camera.launch assume_sw_triggered:=true

The incomatibility here is that in prior versions, one would not need to explicitly set the GLOG_ environment variable. While not strictly necessary, it is recommended for keeping the noise level of the ifm3d logs low.

Parameters

Name Data Type Default Value Description
~assume_sw_triggered bool false This provides a hint to the driver that the camera is configured for software triggering (as opposed to free running). In this mode, certain default values are applied to lessen the noise in terms of timeouts from the framegrabber.
~frame_id_base string ifm3d/camera This string provides a prefix into the `tf` tree for `ifm3d-ros` coordinate frames.
~frame_latency_thresh float 60.0 Time (seconds) used to determine that timestamps from the camera cannot be trusted. When this threshold is exceeded, when compared to system time, we use the reception time of the frame and not the capture time of the frame.
~ip string 192.168.0.69 The ip address of the camera.
~password string The password required to establish an edit session with the camera.
~schema_mask uint16 0xf The pcic schema mask to apply to the active session with the frame grabber. This determines which images are available for publication from the camera. More about pcic schemas can be gleaned from the ifm3d project.
~timeout_millis int 500 The number of milliseconds to wait for the framegrabber to return new frame data before declaring a "timeout" and to stop blocking on new data.
~timeout_tolerance_secs float 5.0 The wall time to wait with no new data from the camera before trying to establish a new connection to the camera. This helps to provide robustness against camera cables becoming unplugged or other in-field pathologies which would cause the connection between the ROS node and the camera to be broken.
~soft_on_timeout_millis int 500 If using the `SoftOn` service call, when turning the camera back `on` this is the setting that will be used for `timeout_millis`.
~soft_on_timeout_tolerance_secs float 5.0 If using the `SoftOn` service call, when turning the camera back `on` this is the setting that will be used for `timeout_tolerance_secs`.
~soft_off_timeout_millis int 500 If using the `SoftOff` service call, when turning the camera `off` this is the setting that will be used for `timeout_millis`.
~soft_off_timeout_tolerance_secs float 600.0 If using the `SoftOff` service call, when turning the camera `off` this is the setting that will be used for `timeout_tolerance_secs`.
~sync_clocks bool false Attempt to sync the camera clock to the system clock at start-up. The side-effect is that timestamps on the image should reflect the capture time as opposed to the receipt time.
~xmlrpc_port uint16 80 The TCP port the camera's xmlrpc server is listening on for requests.

Published Topics

Name Data Type Description
amplitude sensor_msgs/Image The normalized amplitude image
cloud sensor_msgs/PointCloud2 The point cloud data
confidence sensor_msgs/Image The confidence image
distance sensor_msgs/Image The radial distance image
extrinsics ifm3d/Extrinsics The extrinsic calibration of the camera with respect to the camera optical frame. The data are mm and degrees.
good_bad_pixels sensor_msgs/Image A binary image indicating good vs. bad pixels as gleaned from the confidence data.
raw_amplitude sensor_msgs/Image The raw amplitude image
unit_vectors sensor_msgs/Image The rotated unit vectors
xyz_image sensor_msgs/Image A 3-channel image encoding of the point cloud. Each of the three image channels respesent a spatial data plane encoding the x, y, z cartesian values respectively.

Subscribed Topics

None.

Advertised Services

Name Service Definition Description
Dump ifm3d/Dump Dumps the state of the camera parameters to JSON
Config ifm3d/Config Provides a means to configure the camera and imager settings, declaratively from a JSON encoding of the desired settings.
SoftOff ifm3d/SoftOff Sets the active application of the camera into software triggered mode which will turn off the active illumination reducing both power and heat.
SoftOn ifm3d/SoftOn Sets the active application of the camera into free-running mode. Its intention is to act as the inverse of `SoftOff`.
SyncClocks ifm3d/SyncClocks Synchronizes the camera clock to the system time. The side-effect is that images can be stamped with the capture time of the frame as opposed to the reception time.
Trigger ifm3d/Trigger Requests the driver to software trigger the imager for data acquisition.

Additional Documentation

LICENSE

Please see the file called LICENSE.

CHANGELOG

Changes between ifm3d-ros 0.6.1 and 0.6.2

  • Updated maintainer email address
  • Added ifm3d-core dependency in preparation for submission to the ROS index

Changes between ifm3d-ros 0.6.0 and 0.6.1

  • Added support syncing the system and camera clocks at startup. Side-effect, is we can now stamp the images with the camera-side capture time and not the host-side reception time.
  • Added the SyncClocks Service

Changes between ifm3d-ros 0.5.1 and 0.6.0

  • Added a image transport plugin blacklist to the nodlet launch file. This prevents many of the errors seen in the terminal when running rosbag -a to capture camera data
  • Added the SoftOn and SoftOff service calls

Changes between ifm3d-ros 0.5.0 and 0.5.1

  • Added support for Ubuntu 18.04 and ROS Melodic

Changes between ifm3d-ros 0.4.2 and 0.5.0

  • Converted primary data publisher to a nodelet architecture
  • Provide the dump and config scripts to call into the exposed ROS services of the nodelet. Removed the older "config node".
  • Added unit tests

Changes between ifm3d-ros 0.4.1 and 0.4.2

  • Now requires ifm3d 0.9.0 and by association the more modernized tooling (C++14, cmake 3.5, dropped support for 14.04/Indigo, etc.)

Changes between ifm3d-ros 0.3.0 and 0.4.0

  • Now publishing extrinsics on a topic

Changes between ifm3d-ros 0.2.0 and 0.3.0

  • Added Dump Service
  • Added Config Service
  • Added Trigger Service

Changes between ifm3d-ros 0.1.0 and 0.2.0

  • Updates to CMakeLists.txt to support Ubuntu 14.04 and ROS Indigo

This file has started tracking ifm3d-ros at 0.1.0

  • Initial (alpha) release

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

No known dependants.

Launch files

  • launch/nodelet.launch
      • camera [default: camera]
      • ip [default: 192.168.0.69]
      • xmlrpc_port [default: 80]
      • password [default: ]
      • schema_mask [default: 15]
      • timeout_millis [default: 500]
      • timeout_tolerance_secs [default: 5.0]
      • respawn [default: false]
      • assume_sw_triggered [default: false]
      • sync_clocks [default: false]
      • frame_id_base [default: ifm3d/$(arg camera)]
  • launch/camera.launch
      • ns [default: ifm3d]
      • nn [default: camera]
      • ip [default: 192.168.0.69]
      • xmlrpc_port [default: 80]
      • password [default: ]
      • schema_mask [default: 15]
      • timeout_millis [default: 500]
      • timeout_tolerance_secs [default: 5.0]
      • frame_id_base [default: $(arg ns)/$(arg nn)]
      • respawn [default: false]
      • assume_sw_triggered [default: false]
      • sync_clocks [default: false]
  • launch/rviz.launch
      • ns [default: ifm3d]
      • nn [default: camera]

Plugins

Recent questions tagged ifm3d at answers.ros.org