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 | 2021-02-03 |
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-ros
ifm3d-ros is a wrapper around ifm3d enabling the usage of ifm pmd-based ToF cameras from within ROS software systems.
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
- Preparing your system: Kinetic, Melodic
- 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:
- It exposes some of the
camera_nodelet
parameters as command-line arguments for ease of runtime configuration. - It instantiates a nodelet manager which the
camera_nodelet
will be loaded into. - It launches the camera nodelet itself.
- 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.
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
andSoftOff
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
andconfig
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
Source Tutorials
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]
Messages
Services
Plugins
Recent questions tagged ifm3d at answers.ros.org
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 | 2021-02-03 |
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-ros
ifm3d-ros is a wrapper around ifm3d enabling the usage of ifm pmd-based ToF cameras from within ROS software systems.
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
- Preparing your system: Kinetic, Melodic
- 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:
- It exposes some of the
camera_nodelet
parameters as command-line arguments for ease of runtime configuration. - It instantiates a nodelet manager which the
camera_nodelet
will be loaded into. - It launches the camera nodelet itself.
- 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.
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
andSoftOff
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
andconfig
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
Source Tutorials
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]
Messages
Services
Plugins
Recent questions tagged ifm3d at answers.ros.org
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 | 2021-02-03 |
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-ros
ifm3d-ros is a wrapper around ifm3d enabling the usage of ifm pmd-based ToF cameras from within ROS software systems.
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
- Preparing your system: Kinetic, Melodic
- 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:
- It exposes some of the
camera_nodelet
parameters as command-line arguments for ease of runtime configuration. - It instantiates a nodelet manager which the
camera_nodelet
will be loaded into. - It launches the camera nodelet itself.
- 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.
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
andSoftOff
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
andconfig
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
Source Tutorials
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]