-
 

Package Summary

Tags No category tags.
Version 1.1.1
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 2024-06-25
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

ifm 3D ToF Camera ROS main driver package

Additional Links

Maintainers

  • ifm robotics group

Authors

  • ifm robotics group

The ifm3d_ros_driver package

ROS Interface

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_ros_examples camera_3d.launch

Note: Please notice the use of the subpackage ifm3d_ros_examples.

For further information about the internal ROS nodelet infrastructure and how to apply this to your application, please see our exemplary launch files and a short run down on the nodelet structure in the ifm3d_ros_examples/README.

Nodelet - 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 frame grabber.
~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 VPU.
~password string ”” The password required to establish an edit session on the VPU
~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 projects documentation.
~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 providerobustness 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.
~sync_clocks DEPRECATED 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 unint16 80 The TCP port the camera’s xmlrpc server is listening on for requests.
~pcic_port unint16 50010 The TCP (data) port the camera’s pcic server is listening on for requests.

Nodelet - published Topics

| Name | Data Type | Description | | — | — | — | | amplitude | sensor_msgs/Image | The normalized amplitude image. | | confidence | sensor_msgs/Image | The confidence image. | | cloud | sensor_msgs/PointCloud2 | The point cloud data, i.e. X-, Y-, Z-coordinates. | | distance | sensor_msgs/Image | The radial distance image. | | raw_amplitude | sensor_msgs/Image | The raw (non normalized) amplitude image. | | unit_vectors | sensor_msgs/Image | The rotated unit vectors. | | extrinsics | ifm3d/Extrinsics | The extrinsic calibration of the camera with respect to the camera optical frame. This 3D pose is encoded in mm and rad. | | rgb_image/compressed | sensor_msgs::CompressedImage | The RGB image in compressed format. |

Note: Some topics may have empty data fields. We are working on publishing data on all available topics, but have kept all previous topics active for the moment for legacy reasons.

Nodelet - subscribed Topics

None.

Nodelet - advertised Services

Note: the services are provided by the ifm3d_ros_msgs package.

Name Service Definition Description
Dump ifm3d/Dump Dumps the state of the camera system as a JSON (formatted as a string)
Config ifm3d/Config Provides a means to configure the VPU and Heads (imager settings), declaratively from a JSON (string) 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.
Trigger ifm3d/Trigger Requests the driver to software trigger the imager for data acquisition.

Known limitations

O3R O3D O3X

Additional Documentation

LICENSE

Please see the file called LICENSE.

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

  • launch/camera_2d.launch
      • namespace [default: ifm3d_ros_driver] — Desired namespace for the camera nodelet
      • nodelet_name [default: camera]
      • ip [default: 192.168.0.69] — The IP address of the VPU.
      • xmlrpc_port [default: 80] — The TCP port the camera's xmlrpc server is listening on for requests.
      • pcic_port [default: 50010] — The TCP (data) port the camera's pcic server is listening on for requests.
      • password [default: ] — The password required to establish an edit session on the VPU
      • timeout_millis [default: 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 [default: 5.0] — The wall time to wait with no new data from the camera before trying to establish a new connection to the camera.
      • frame_id_base [default: $(arg namespace)/$(arg nodelet_name)] — This string provides a prefix into the `tf` tree for `ifm3d-ros` coordinate frames.
      • respawn [default: false] — Restart the node automatically if it quits.
      • assume_sw_triggered [default: false] — This mode means the driver of the the camera is configured for software triggering (as opposed to free running and hardware triggered modes - will follow soon).
      • xyz_image_stream [default: false] — Enable xyz image streaming for 3D camera camera streams.
      • confidence_image_stream [default: false] — Enable confidence image streaming for 3D camera camera streams.
      • radial_distance_image_stream [default: false] — Enable radial distance image streaming for 3D camera camera streams.
      • radial_distance_noise_stream [default: false] — Enable distance noise image streaming for 3D camera camera streams.
      • amplitude_image_stream [default: false] — Enable amplitude image streaming for 3D camera camera streams.
      • extrinsic_image_stream [default: false] — Enable extrinsic values streaming for 3D camera camera streams.
      • intrinsic_image_stream [default: false] — Enable intrinsic values streaming for 3D camera camera streams.
      • rgb_image_stream [default: true] — Enable rgb image streaming for 3D camera camera streams.
  • launch/nodelet.launch
      • camera [default: camera]
      • ip [default: 192.168.0.69] — The IP address of the VPU.
      • xmlrpc_port [default: 80] — The TCP port the camera's xmlrpc server is listening on for requests.
      • pcic_port [default: 50010] — The TCP (data) port the camera's pcic server is listening on for requests.
      • password [default: ] — The password required to establish an edit session on the VPU
      • imager_type [default: 3D] — The imager type of the requested camera head
      • timeout_millis [default: 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 [default: 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.
      • respawn [default: false] — Restart the node automatically if it quits.
      • assume_sw_triggered [default: 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 frame grabber.
      • frame_id_base [default: ifm3d/$(arg camera)]
      • xyz_image_stream [default: true] — Enable xyz image streaming for 3D camera camera streams.
      • confidence_image_stream [default: true] — Enable confidence image streaming for 3D camera camera streams.
      • radial_distance_image_stream [default: true] — Enable radial distance image streaming for 3D camera camera streams.
      • radial_distance_noise_stream [default: true] — Enable distance noise image streaming for 3D camera camera streams.
      • amplitude_image_stream [default: true] — Enable amplitude image streaming for 3D camera camera streams.
      • extrinsic_image_stream [default: true] — Enable extrinsic values streaming for 3D camera camera streams.
      • intrinsic_image_stream [default: false] — Enable intrinsic values streaming for 3D camera camera streams.
      • rgb_image_stream [default: false] — Enable rgb image streaming for 3D camera camera streams.
  • launch/camera_3d.launch
      • namespace [default: ifm3d_ros_driver] — Desired namespace for the camera nodelet
      • nodelet_name [default: camera]
      • ip [default: 192.168.0.69] — The IP address of the VPU.
      • xmlrpc_port [default: 80] — The TCP port the camera's xmlrpc server is listening on for requests.
      • pcic_port [default: 50010] — The TCP (data) port the camera's pcic server is listening on for requests.
      • password [default: ] — The password required to establish an edit session on the VPU
      • timeout_millis [default: 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 [default: 5.0] — The wall time to wait with no new data from the camera before trying to establish a new connection to the camera.
      • frame_id_base [default: $(arg namespace)/$(arg nodelet_name)] — This string provides a prefix into the `tf` tree for `ifm3d-ros` coordinate frames.
      • respawn [default: false] — Restart the node automatically if it quits.
      • assume_sw_triggered [default: false] — This mode means the driver of the the camera is configured for software triggering (as opposed to free running and hardware triggered modes - will follow soon).
      • xyz_image_stream [default: true] — Enable xyz image streaming for 3D camera camera streams.
      • confidence_image_stream [default: true] — Enable confidence image streaming for 3D camera camera streams.
      • radial_distance_image_stream [default: true] — Enable radial distance image streaming for 3D camera camera streams.
      • radial_distance_noise_stream [default: true] — Enable distance noise image streaming for 3D camera camera streams.
      • amplitude_image_stream [default: true] — Enable amplitude image streaming for 3D camera camera streams.
      • extrinsic_image_stream [default: true] — Enable extrinsic values streaming for 3D camera camera streams.
      • intrinsic_image_stream [default: false] — Enable intrinsic values streaming for 3D camera camera streams.
      • rgb_image_stream [default: false] — Enable rgb image streaming for 3D camera camera streams.

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged ifm3d_ros_driver at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.1.1
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 2024-06-25
Dev Status DEVELOPED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ifm 3D ToF Camera ROS main driver package

Additional Links

Maintainers

  • ifm robotics group

Authors

  • ifm robotics group

The ifm3d_ros_driver package

ROS Interface

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_ros_examples camera_3d.launch

Note: Please notice the use of the subpackage ifm3d_ros_examples.

For further information about the internal ROS nodelet infrastructure and how to apply this to your application, please see our exemplary launch files and a short run down on the nodelet structure in the ifm3d_ros_examples/README.

Nodelet - 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 frame grabber.
~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 VPU.
~password string ”” The password required to establish an edit session on the VPU
~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 projects documentation.
~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 providerobustness 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.
~sync_clocks DEPRECATED 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 unint16 80 The TCP port the camera’s xmlrpc server is listening on for requests.
~pcic_port unint16 50010 The TCP (data) port the camera’s pcic server is listening on for requests.

Nodelet - published Topics

| Name | Data Type | Description | | — | — | — | | amplitude | sensor_msgs/Image | The normalized amplitude image. | | confidence | sensor_msgs/Image | The confidence image. | | cloud | sensor_msgs/PointCloud2 | The point cloud data, i.e. X-, Y-, Z-coordinates. | | distance | sensor_msgs/Image | The radial distance image. | | raw_amplitude | sensor_msgs/Image | The raw (non normalized) amplitude image. | | unit_vectors | sensor_msgs/Image | The rotated unit vectors. | | extrinsics | ifm3d/Extrinsics | The extrinsic calibration of the camera with respect to the camera optical frame. This 3D pose is encoded in mm and rad. | | rgb_image/compressed | sensor_msgs::CompressedImage | The RGB image in compressed format. |

Note: Some topics may have empty data fields. We are working on publishing data on all available topics, but have kept all previous topics active for the moment for legacy reasons.

Nodelet - subscribed Topics

None.

Nodelet - advertised Services

Note: the services are provided by the ifm3d_ros_msgs package.

Name Service Definition Description
Dump ifm3d/Dump Dumps the state of the camera system as a JSON (formatted as a string)
Config ifm3d/Config Provides a means to configure the VPU and Heads (imager settings), declaratively from a JSON (string) 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.
Trigger ifm3d/Trigger Requests the driver to software trigger the imager for data acquisition.

Known limitations

O3R O3D O3X

Additional Documentation

LICENSE

Please see the file called LICENSE.

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

  • launch/camera_2d.launch
      • namespace [default: ifm3d_ros_driver] — Desired namespace for the camera nodelet
      • nodelet_name [default: camera]
      • ip [default: 192.168.0.69] — The IP address of the VPU.
      • xmlrpc_port [default: 80] — The TCP port the camera's xmlrpc server is listening on for requests.
      • pcic_port [default: 50010] — The TCP (data) port the camera's pcic server is listening on for requests.
      • password [default: ] — The password required to establish an edit session on the VPU
      • timeout_millis [default: 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 [default: 5.0] — The wall time to wait with no new data from the camera before trying to establish a new connection to the camera.
      • frame_id_base [default: $(arg namespace)/$(arg nodelet_name)] — This string provides a prefix into the `tf` tree for `ifm3d-ros` coordinate frames.
      • respawn [default: false] — Restart the node automatically if it quits.
      • assume_sw_triggered [default: false] — This mode means the driver of the the camera is configured for software triggering (as opposed to free running and hardware triggered modes - will follow soon).
      • xyz_image_stream [default: false] — Enable xyz image streaming for 3D camera camera streams.
      • confidence_image_stream [default: false] — Enable confidence image streaming for 3D camera camera streams.
      • radial_distance_image_stream [default: false] — Enable radial distance image streaming for 3D camera camera streams.
      • radial_distance_noise_stream [default: false] — Enable distance noise image streaming for 3D camera camera streams.
      • amplitude_image_stream [default: false] — Enable amplitude image streaming for 3D camera camera streams.
      • extrinsic_image_stream [default: false] — Enable extrinsic values streaming for 3D camera camera streams.
      • intrinsic_image_stream [default: false] — Enable intrinsic values streaming for 3D camera camera streams.
      • rgb_image_stream [default: true] — Enable rgb image streaming for 3D camera camera streams.
  • launch/nodelet.launch
      • camera [default: camera]
      • ip [default: 192.168.0.69] — The IP address of the VPU.
      • xmlrpc_port [default: 80] — The TCP port the camera's xmlrpc server is listening on for requests.
      • pcic_port [default: 50010] — The TCP (data) port the camera's pcic server is listening on for requests.
      • password [default: ] — The password required to establish an edit session on the VPU
      • imager_type [default: 3D] — The imager type of the requested camera head
      • timeout_millis [default: 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 [default: 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.
      • respawn [default: false] — Restart the node automatically if it quits.
      • assume_sw_triggered [default: 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 frame grabber.
      • frame_id_base [default: ifm3d/$(arg camera)]
      • xyz_image_stream [default: true] — Enable xyz image streaming for 3D camera camera streams.
      • confidence_image_stream [default: true] — Enable confidence image streaming for 3D camera camera streams.
      • radial_distance_image_stream [default: true] — Enable radial distance image streaming for 3D camera camera streams.
      • radial_distance_noise_stream [default: true] — Enable distance noise image streaming for 3D camera camera streams.
      • amplitude_image_stream [default: true] — Enable amplitude image streaming for 3D camera camera streams.
      • extrinsic_image_stream [default: true] — Enable extrinsic values streaming for 3D camera camera streams.
      • intrinsic_image_stream [default: false] — Enable intrinsic values streaming for 3D camera camera streams.
      • rgb_image_stream [default: false] — Enable rgb image streaming for 3D camera camera streams.
  • launch/camera_3d.launch
      • namespace [default: ifm3d_ros_driver] — Desired namespace for the camera nodelet
      • nodelet_name [default: camera]
      • ip [default: 192.168.0.69] — The IP address of the VPU.
      • xmlrpc_port [default: 80] — The TCP port the camera's xmlrpc server is listening on for requests.
      • pcic_port [default: 50010] — The TCP (data) port the camera's pcic server is listening on for requests.
      • password [default: ] — The password required to establish an edit session on the VPU
      • timeout_millis [default: 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 [default: 5.0] — The wall time to wait with no new data from the camera before trying to establish a new connection to the camera.
      • frame_id_base [default: $(arg namespace)/$(arg nodelet_name)] — This string provides a prefix into the `tf` tree for `ifm3d-ros` coordinate frames.
      • respawn [default: false] — Restart the node automatically if it quits.
      • assume_sw_triggered [default: false] — This mode means the driver of the the camera is configured for software triggering (as opposed to free running and hardware triggered modes - will follow soon).
      • xyz_image_stream [default: true] — Enable xyz image streaming for 3D camera camera streams.
      • confidence_image_stream [default: true] — Enable confidence image streaming for 3D camera camera streams.
      • radial_distance_image_stream [default: true] — Enable radial distance image streaming for 3D camera camera streams.
      • radial_distance_noise_stream [default: true] — Enable distance noise image streaming for 3D camera camera streams.
      • amplitude_image_stream [default: true] — Enable amplitude image streaming for 3D camera camera streams.
      • extrinsic_image_stream [default: true] — Enable extrinsic values streaming for 3D camera camera streams.
      • intrinsic_image_stream [default: false] — Enable intrinsic values streaming for 3D camera camera streams.
      • rgb_image_stream [default: false] — Enable rgb image streaming for 3D camera camera streams.

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged ifm3d_ros_driver at Robotics Stack Exchange