Blickfeld ROS package¶
This package provides an ROS node and a nodelet for publishing PointCloud2 messages from Blickfeld LiDAR devices.
Supported devices¶
The Blickfeld ROS driver supports all currently available Blickfeld LiDARs, such as Cube 1 and Cube Range 1.
Dependencies¶
To install the Blickfeld ROS driver, please make sure that the following dependencies are installed on your system.
blickfeld-scanner-library (BSL) with system-wide protobuf installation.
Build¶
To build the ROS driver, clone this package into your ROS catkin workspace.
Run
$ catkin build
or respectively
$ catkin build blickfeld_driver
You may use catkin_make
instead of catkin build
as well.
Running the Blickfeld ROS node¶
You can start the Blickfeld driver as either a node or a nodelet. For the node, you can use the launch file
$ live_scanner.launch
and for the nodelet, the
$ live_scanner_nodelet.launch
is provided.
The typical way to launch the ROS driver is the following (Make sure you have sourced your workspace):
$ roslaunch blickfeld_driver live_scanner.launch host:=cube-0028
or respectively
$ roslaunch blickfeld_driver live_scanner_nodelet.launch host:=cube-0028
You should now be able to see a PointCloud2 in Rviz on the /bf_lidar/points_raw
topic.
Parameters¶
Both launch files have arguments you can use:
Argument | Note | Default |
---|---|---|
host (required) | The host name or the IP of the device you want to publish the point clouds from, e.g., cube-0028 . |
|
node_name | Name of this ROS node. | bf_lidar |
point_cloud_out | Topic to publish the PointCloud2 message to. | $(arg node_name)/points_raw |
remap | Remap this node’s input/output topics to commonly used ones. If false , canonical names in the form of $(arg node_name)/foo_(in/out) are used, depending on whether a topic is an input or and output topic. |
true |
lidar_frame_id | The ROS TF where the point cloud should be in. | lidar |
rviz | Start rviz if this argument is true. | false |
use_lidar_timestamp | Set to true if the timestamp in the ROS point cloud message should be generated from the device timestamp; otherwise the timestamp will be the ROS time when the frame was received on ROS. | true |
publish_intensities | Set to true if the PointCloud2 message should contain intensities. | true |
publish_ambient_light | Set to true if the PointCloud2 message should contain the ambient light level. | false |
publish_explicit_range | Set to true if the PointCloud2 message should contain the range field. |
false |
publish_no_return_points | Set to true if the PointCloud2 message should contain points in a given range for pulses without a return. | false |
no_return_point_range | Dummy range for points of pulses without a return. | 1.0 |
publish_all_returns | Set to true to publish all the returns for every point. Adds the field return_id (ID for each returned point) to the point cloud. |
false |
publish_time_delta | If true , the PointCloud2 message will contain the timestamp field per point to represent the time offset from the start of the frame. |
false |
publish_point_id | Add the scanline_id field, the scanline_point_index field (= the point’s number in the scan line), and the point_id (= frame-global point ID) to PointCloud2 message. If the device is configured to return multiple return points (multiple reflections), all these three IDs will be identical; only the return_id will differ. |
false |
License¶
This package is released under a BSD 3-Clause License (see also https://opensource.org/licenses/BSD-3-Clause)