-
 

Package Summary

Tags No category tags.
Version 2.5.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/velodyne.git
VCS Type git
VCS Version ros2
Last Updated 2024-10-31
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

Point cloud conversions for Velodyne 3D LIDARs.

Additional Links

Maintainers

  • Josh Whitley

Authors

  • Jack O'Quin
  • Piyush Khandelwal
  • Jesse Vera
  • Andreas Klintberg

Velodyne ROS 2 raw to pointcloud converters

This is a ROS 2 package that takes raw velodyne data as output by the velodyne_driver node, and converts it into a sensor_msgs/PointCloud2 message.

There are two different nodes here:

velodyne_convert_node - This node takes in the raw data and converts it to a pointcloud immediately. velodyne_transform_node - This node takes the raw data and converts it only when a corresponding tf message with a compatible timestamp has arrived.

The topics and parameters for both nodes are identical, so they’ll be described together below.

Published Topics

  • velodyne_points (sensor_msgs/PointCloud2) - The pointcloud that results from the raw velodyne data.

Subscribed Topics

  • velodyne_packets (velodyne_msgs/VelodyneScan) - The raw velodyne packets coming from the velodyne_driver.

Parameters

  • calibration (string) - The path to the calibration file for the particular device. There are a set of default calibration files to start with in the “params” subdirectory in this package. Defaults to the empty string.
  • min_range (double) - The minimum range in meters that a point must be to be added to the resulting point cloud. Points closer than this are discarded. Must be between 0.1 and 10.0. Defaults to 0.9.
  • max_range (double) - The maximum range in meters that a point must be to be added to the resulting point cloud. Points further away than this are discarded. Must be between 0.1 and 200.0. Defaults to 130.0.
  • view_direction (double) - The point around the circumference of the device, in radians, to “center” the view. Combined with view_width, this allows the node to generate a pointcloud only for the given width, centered at this point. This can vastly reduce the CPU requirements of the node. Must be between -Pi and Pi, where 0 is straight ahead from the device. Defaults to 0.0.
  • view_width (double) - The width, in radians, of the view to generate for the resulting pointcloud. Combined with view_direction, this allows the node to generate a pointcloud only for the given width, centered at the view_direction point. This can vastly reduce the CPU requirements of the node. Must be between 0 and 2Pi. Defaults to 2Pi.
  • organize_cloud (bool) - Whether to organize the cloud by ring (True), or to use the order as it comes directly from the driver (False). Defaults to True.
  • target_frame (string) - The coordinate frame to apply to the generated point cloud header before publishing. If the empty string (the default), the frame is passed along from the driver packet. If this frame is different than the fixed_frame, a transformation to this coordinate frame is performed while creating the pointcloud.
  • fixed_frame (string) - The fixed coordinate frame to transform the data from.
CHANGELOG

Change history

2.5.1 (2024-10-31)

  • Fix compiling on RHEL-8. (#549)
  • Contributors: Chris Lalancette

2.5.0 (2024-10-30)

  • Clalancette/cmake cleanups (#546)
  • Fix exports (#535)
  • Add in the Eigen dependency to velodyne_pointcloud (#545)
  • Add package to compile in Jazzy (#539)
  • Feature script add two pt ros2 (#498)
  • delete unused valiable (#529)
  • Add vert offset corrections to VLP16 calib file (#518)
  • Fix double-include.
  • feat: support vls128 for ros2 (#493)
  • Update rolling ci (#512) (#513)
  • Contributors: Chris Lalancette, Daisuke Nishimatsu, Joshua Whitley, Mateusz Szczygielski, Pierrick Koch, Taiga Takano, Thomas Emter, g-kurz

2.4.0 (2023-05-27)

2.3.0 (2022-07-08)

  • Passing fixed_frame and target_frame to Convert object. (#330) (#451) Co-authored-by: Joshua Whitley <<jwhitley@autonomoustuff.com>>
  • Updating maintainer email address. (#450)
    • Updating maintainer email address.

    * chore: update maintainer email address Co-authored-by: Joshua Whitley <<jwhitley@autonomoustuff.com>>

  • Add per point time field (#440)
    • Initial commit to timestamp each point using the timing spec in the manuals
    • Added model param to each of the cloud nodelet starters
    • Minor cleanup. added author tag to rawdata
    • Move timing offsets functionality into class private. Also fix linter errors
    • added #include <vector> for linter
    • fix: suppress compiler warning

    * feat: change XYZIR to XYZIRT Co-authored-by: Shawn Hanna <<shawn@kaarta.com>>

  • Link against yaml-cpp (#443)
  • Increase the max_range of the 32C launch file (#323) (#441) Co-authored-by: Shawn Hanna <<50845122+kaarta-SHanna@users.noreply.github.com>>
  • fix for #267, transform each packet (#438)
    • fix for #267, transform each packet

    * fix: fix scope of access modifiers Co-authored-by: Sebastian <<spuetz@uos.de>>

  • Replace deprecated argument names in launch (#430)
  • 2.1.1
  • Updating for first Galactic release
  • Contributors: Daisuke Nishimatsu, Joshua Whitley, Keane Quigley, Stephan Sundermann

2.1.1 (2021-08-23)

2.1.0 (2020-07-10)

2.0.0 (2020-07-10)

  • More fixing of dependencies. (#333)
    • More fixing of dependencies.
  • Fixes pointed out by clang-tidy (#310)
    • Rearrange header includes so clang-tidy is happy.
    • Get rid of unnecessary void arguments on methods.
    • Properly mark methods as override where appropriate.
    • Initialize members and stack variables to zero before use.
    • Mark function implementations in header files 'inline'.
    • Use more efficient 'empty' method instead of empty string.
    • Get rid of unnecessary else statements after a continue/return.
    • Get rid of unnecessary == false use.
    • Make sure to add a virtual destructor to DataContainerBase.
    • Use string != comparison instead of 'compare' method.
    • Rename PointcloudXYZIR parameter name to match implementation.
    • Get rid of usage of typedef.
    • Be more explicit about using floats.
    • Do an explicit lround to do int->float conversion.
    • Fix the intensity calculation.
    • Remove the azimuth from addPoint.
    • Make sure to reset the cloud data to 0 before reusing.
    • Use underscores on pointcloud member variables.
    • Using std::lround means we don't need to add 0.5 to the result.
    • Slightly rearrange and simplify range checks.
    • Add in example launch files for VLP32C.
  • A few more minor style updates. (#308)
    • Get rid of the last users of new in the codebase
    • Get rid of the users of 'using' in the codebase
    • Rename 'calibrationFile' -> 'calibration_file'
  • Dashing fixes (#307)
    • Use std::make_unique as appropriate.
    • Fix the azimuth calculation.
    • Fix a crash during driver startup.
    • Always recalculate the row_step while setting up the cloud.
    • Make sure to call computeTransformation.
    • Fix style errors pointed out by flake8.
  • ROS2: Add Linters to velodyne_pointcloud (#304)
    • VP: Renaming files.
    • VP: Fixed copyrights.
    • VP: cpplint is satisfied!
    • VP: Converted gen_calibration.py to Python3.
    • Uncrustify fixed!
    • VP: Lint errors clear.
    • VP: Moving organized_cloud and pointcloud to lib and building as library.
  • Check for intra-process subscribers
  • Add in example launch files.
  • Disable copy, move, and assign operators.
  • Build the components so the velodyne can be run as a component.
  • Add in NodeOptions to node constructors.
  • Only find the "common" component to PCL.
  • Make sure to install the header files for laserscan and pointcloud.
  • Properly setup the row_step.
  • Add explicit, final, and override to classes where appropriate.
  • Remove organize_cloud, fixed_frame, and target_frame configs.
  • Stop storing view_{direction,width} in the Node classes.
  • Stop storing {min,max}_range in the Node classes.
  • Make DataContainerBase::configure const reference string parameters.
  • Switch argument order to always be (min,max)
  • Remove tmp_{min,max}_angle from stored RawData config.
  • Remove unused tf_ptr.
  • Switch container_ptr to a unique_ptr.
  • container_ptr -> container_ptr_
  • Don't store number of lasers in the Transfrom/Convert node.
  • Make the RawData class RAII-style.
  • Make RawData::setup not return the number of lasers.
  • Remove unused laser_corrections_maps.
  • Remove the calibration read method.
  • Make the Calibration class only have the RAII-style constructor.
  • Remove unnecessary ros_info parameter from Calibration.
  • Remove unused calibration write method.
  • Remove unused setupOffline method.
  • Remove calibrationFile from rawdata config.
  • Switch to using nullptr everywhere.
  • fixed timpepoint issue
  • Remove dead store from rawdata.cc
  • Rename nodes.
  • Switch organize_cloud to true by default.
  • Update the documentation for ROS 2.
  • Remove debugging statements.
  • Fix dead pointers in calibration.cc.
  • Merge pull request #251 from clalancette/dashing-devel3 ROS 2 Dashing port
  • Merge pull request #214 from spuetz/feature/opc_nopcl Container cleanup and organized pointclouds
  • Merge pull request #236 from mpitropov/fix_transform_node_frame_bug set correct output frame
  • Merge pull request #234 from kmhallen/c++11 Set minimum C++ standard to C++11
  • Merge pull request #231 from ros-drivers/ci/test_better_output CI: Adding roslint as separate step. Limiting output of catkin build.
  • Merge pull request #227 from ros-drivers/roslint Applying roslint to velodyne_pointcloud.
  • Merge pull request #223 from mpitropov/feat_Add_fixed_frame Add fixed frame and use ros message time within transform node
  • Merge pull request #224 from mpitropov/feat_add_diagnostics Added diagnostic publishing
  • Merge pull request #222 from mpitropov/feat_Use_GPS_time Add flag to enable using GPS time from within the Velodyne packet instead of ROS time for scan.
  • Contributors: Andreas Klintberg, Chris Lalancette, Ian Colwell, Joshua Whitley, Kevin Hallenbeck, Matthew Pitropov, P. J. Reed, Sebastian, Sebastian Pütz

1.5.2 (2019-01-28)

  • Merge pull request #205 from xiesc/master support for 64E-S3
  • add an example yaml file for S3
  • Contributors: Joshua Whitley, Shichao XIE, xiesc

1.5.1 (2018-12-10)

  • Merge pull request #194 from ros-drivers/avoid_unnecessary_computation Avoid unnecessary computation - causes approximately 20% performance increase on VLP-32C - should be similar for other sensors
  • std::vector<>::reserve is your friend
  • add static to avoid frequence memory allocation
  • avoid unecesary calculations in unpack()
  • Contributors: Davide Faconti, Joshua Whitley

1.5.0 (2018-10-19)

  • Merge pull request #164 from ros-drivers/maint/vlp_32c_support Adding VLP-32C support. This was tested by AutonomouStuff and several external users. Though it does not include new information that I've learned (it appears that the distance resolution is different <50m vs >=50m), it is a good start.
  • Merge pull request #189 from kveretennicov/patch-1
  • Fix malformed plugin description XML ROS pluginlib only recognizes multiple <library> elements if they are under <class_libraries> XML root. It silently ignores malformed XMLs with multiple <library> "root"s and just reads the first one, due to relaxed way tinyxml2 does parsing. Though if you do [rosrun nodelet declared_nodelets]{.title-ref}, the issue is reported properly. See also similar issue in https://github.com/ros-perception/perception_pcl/issues/131
  • Adding distance_resolution to test yaml files.
  • Adding VLP-32C support. Based on work done by \@rockcdr. Adds distance_resolution calibration value to support 0.004m distance resolution for VLP-32C.
  • Contributors: Joshua Whitley, Konstantin Veretennicov

1.4.0 (2018-09-19)

  • Merge pull request #178 from sts-thm/bugfix_issue_#174 Bugfix issue #174
  • Merge pull request #177 from C-NR/feature/WrapPointcloudData Feature/wrap pointcloud data
  • Changes fixing deadlock for specific cut_angle values.
  • moved definition of VPoint and VPointCloud back to namespace rawdata in rawdata.h
  • put a wrapper around pointcloud data including a generic setter method to enable the use of arbitrary data structures (pcl pointcloud, depth image, octomaps and so on) to be filled by just using RawData::unpack method with the wrapper object as parameter
  • Merge pull request #170 from ros-drivers/maint/move_header_files Moving header files to traditional location inside include folders.
  • Merge pull request #160 from ros-drivers/maint/updating_package_xml_to_v2
  • Updated all package.xmls to ver 2. Cleaned up catkin_lint errors. All package.xml files are now compatible with version 2 of the package.xml specification in REP 140. Removed some unnecessary execute permissions on a few files. Fixed a missing test_depend.
  • Merge pull request #136 from stsundermann/patch-1 Use std::abs instead of abs
  • Adding missing 32C configuration file.
  • Merge pull request #139 from ASDeveloper00/vlp32 Adding support for VLP-32C.
  • Merge pull request #138 from volkandre/cut_at_specified_angle_feature Cut at specified angle feature
  • Updated default cut_angle parameters in launch files after switching from deg to rad.
  • Use std::abs instead of abs abs is the c version which returns an integer. This is probably not intended here, so use the templated std::abs function.
  • Contributors: Andre Volk, Autonomoustuff Developer, CNR, Joshua Whitley, Kyle Rector, Stephan Sundermann, Tobias Athmer, kennouni

1.3.0 (2017-11-10)

  • Merge pull request #110 from kmhallen/master Added velodyne_laserscan package
  • Merge remote-tracking branch ros-drivers/master
  • Merge pull request #129 from kmhallen/pluginlib_macro Modern pluginlib macro
  • Update to use non deprecated pluginlib macro
  • Merge pull request #127 from swri-robotics/add_vlp16_hires_support Add VLP16 Puck Hi-Res config file
  • Add VLP16 Puck Hi-Res support
  • velodyne_pointcloud: remove incorrect catkin_package() DEPENDS option (#93) This eliminates a CMake warning when building on Xenial.
  • Merge pull request #111 from OrebroUniversity/master Added an interface to set up raw data processing offline
  • Added an interface to set up raw data processing from a locally defined calibration file. This method is useful when processing data offline from a bag file, without starting any ros master
  • Added velodyne_laserscan package and inserted into existing launch files
  • test multiple nodelet manager support (#108)
  • add launch args to support multiple devices (#108)
  • Merge pull request #105 from fudger/patch-1 Remove unused constants.
  • Merge pull request #104 from altrouge/launch_options Add more options in launch files.
  • Rearranged alphabetically.
  • Remove unused constants. DISTANCE_MAX and DISTANCE_MAX_UNITS are not used anywhere in the code. Furthermore, using them would lead to errors as both VLP-64 manuals state that returns above 120 m should not be used. The VLP-32 manual allows 70 m as the maximum valid sensor range.
  • Merge pull request #103 from fudger/patch-1 Fix misleading typecasts.
  • Add more options in launch files.
    • rpm, device_ip, port, read_once, read_fast, repeat_delay
  • Fix misleading typecasts. intensity and VPoint::intensity are both of type float.
  • update change history
  • merge current master (#94)
  • Merge pull request #92 from adasta/master GCC Build Warnings
  • Modified velodyne_point_cloud/src/lib/rawdata.cc to address warning that last_azimuth_diff variable may be used uninitialized. Variable is now initialized to 0 at creation. velodyne/velodyne_pointcloud/src/lib/rawdata.cc:328:57: error: ‘last_azimuth_diff’ may be used uninitialized in this function [-Werror=maybe-uninitialized] azimuth_corrected_f = azimuth + (azimuth_diff * ((dsr*VLP16_DSR_TOFFSET) + (firing*VLP16_FIRING_TOFFSET)) / VLP16_BLOCK_TDURATION);
  • Modified velodyne_pointcloud/src/conversion/colors.cc to remove address build warning for strict-aliasing. velodyne/velodyne_pointcloud/src/conversions/colors.cc:84:58:
  • Merge pull request #89 from Tones29/feat_dynrec_driver Add dynamic latency configuration to velodyne_driver
  • velodyne_pointcloud: Fix compile warning "Wrong initialization order"
  • velodyne_pointcloud: add dynamic reconfig update to change log (#78)
  • Merge branch fudger-reconfigure_transform_node
  • velodyne_pointcloud: use recommended add_dependencies() CMake variable #78
  • velodyne_pointcloud: fix transform unit tests Use tf2_ros static_transform_publisher for more consistent timing (#2)
  • Merge branch reconfigure_transform_node of https://github.com/fudger/velodyne
  • prepare change history for coming Indigo release (#59)
  • calibration: unit test case improvements (#84)
  • calibration: read all intensities as float, then convert (#84)
  • calibration: add gtest for #84 This currently fails on 64e_s2.1-sztaki.yaml and on issue_84_float_intensities.yaml.
  • calibration: make max_intensity and min_intensity optional (#84) This fixes a regression in the 32e and VLP-16 calibrations which do not contain intensity values. There is still a problem with the 64e_s2.1 calibration.
  • Merge pull request #76 from pomerlef/master Sign inversion in some equations
  • Merge pull request #82 from ros-drivers/fix_pr_80 Fix pr 80; adding travis CI tests.
  • fix the yaml-cpp 0.5 code paths
  • Merge pull request #80 from ros-drivers/fix_yaml_import allow floats in min/max_intensity and make horiz_offset_correction optional
  • allow horiz_offset_correction to be optional with 0 as default
  • allow floats instead of ints in min/max_intensity
  • Resolve frame ID name using tf prefix.
  • Improve coding style.
  • Set up dynamic reconfiguration for transform_node. Previously, transform_node has neither read parameters other than frame_id from the command line nor has it exposed these parameters via dynamic reconfigure. As parameters like max_range and view_width have been initialized to zero, the inconfigurable transform_node has returned an empty point cloud. Now, transform_node launches an reconfigure server just as cloud_node. In contrast to cloud_node, transform node exposes another parameter for dynamic reconfiguration: frame_id, i.e. the frame of reference the incoming Velodyne points are transformed to.
  • Merge pull request #77 from fudger/pretty_print Fix output of calibration data onto console
  • Add a missing space.
  • Fix line that always indicates use of model VLP-16.
  • Align console output of calibration data.
  • Merge branch master of https://github.com/ros-drivers/velodyne
  • resolve sign error
  • Merge pull request #73 from fudger/master Correct important data type error for VLP-16
  • Fix data type error that distorts the point cloud.
  • Fix and add a few comments.
  • Merge pull request #68 from jlblancoc/patch-1 Remove unused variable
  • Remove unused variable I think that [dsr]{.title-ref} was unused. See line 317: for (int dsr=0; ...
  • VLP-16: skip badly formatted data packets (#62, #63)
  • restore VLP-16 min_range setting to 0.4 (#60) NOTE: There is still some other problem keeping that from working.
  • permit min_range settings below 0.9 meters (#60) No known models are currently known to return closer measurements.
  • Merge pull request #55 from lemiant/azimuth_bug_VLP16 Fixed azimuth overflow bug.
  • Fixed azimuth overflow bug. For interpolated azimuth values between 35999.5 and 36000.0 the nested round(fmod()) yields a value of 36000 which is invalid and overflows the pre-computed sin/cos arrays, since they only go form 0..35999
  • Merge pull request #51 from kunlileo/master Added vertical sin angle correction
  • Added vertical sin angle correction
  • Merge pull request #47 from prclibo/master fixed rounding bug in intensity calculation found by songshiyu
  • fixed rounding bug in intensity calculation found by songshiyu
  • fix some overly long C++ source lines
  • Merge pull request #44 from SISegwayRmp/master adding driver and pointcloud support for the VLP16
  • missed the space in the file name which caused the build to fail, removed space before extension
  • adding the VLP16 test scripts and updating the CMakeLists to include the test file from http://download.ros.org/data/velodyne/vlp16.pcap
  • adding support for the VLP16
  • Merge pull request #43 from prclibo/fix_rawdata fixed point computation according to the 64e_s2(.1) velodyne manual
  • fixed point computation according to the 64e_s2(.1) velodyne manual, with luopei"s help
  • Merge pull request #41 from prclibo/master fixed a calibration file parsing bug
  • Merge pull request #42 from prclibo/fix_gen_calibration fixed gen_calibration min/max intensity type
  • fixed gen_calibration min/max intensity type
  • fixed a calibration file parsing bug
  • Contributors: Adam Stambler, Alex Rodrigues, Alexander Schaefer, Andreas Wachaja, Bo Li, Daniel Jartoux, Gabor Meszaros, Jack OQuin, Jose Luis Blanco-Claraco, Joshua Whitley, Kevin Hallenbeck, Kris Kozak, Kun Li, Micho Radovnikovich, Scott K Logan, Thomas Solatges, Todor Stoyanov, William Woodall, jack.oquin, libo24, phussey, piyushk, pomerlef

1.2.0 (2014-08-06)

  • velodyne_pointcloud: remove model-dependent "constants" from rawdata.h (#28)
  • velodyne_pointcloud: change default min_range to 0.9 meters (#25)
  • Added support for YAML-CPP 0.5+ (#23).
  • Add dynamic_reconfigure feature.
  • Add angular limits to the output point cloud, useful for omitting part of it. (#22).
  • Contributors: Jack OQuin, Scott K Logan, Thomas Solatges

1.1.2 (2013-11-05)

  • Move unit test data to download.ros.org (#18).
  • Install missing gen_calibration.py script (#20).

1.1.1 (2013-07-30)

  • Fix lost frame_id transform problem caused by PCL 1.7 fix (#13).
  • Add support for HDL-64E S2 and S2.1 models, which were not working before (#11), thanks to Gabor Meszaros (#12).
  • Add additional parameters to launch files (#14).
  • Contributors: Gabor Meszaros, Jack OQuin

1.1.0 (2013-07-16)

  • Fix build problems due to PCL 1.7 API incompatibilities (#8), thanks to William Woodall. This version also works with Groovy, as long as the correct pcl_conversions is installed.
  • Fix errors with Mac OSX compiler (#8).
  • Install pluginlib XML files (#9).
  • Install some launch and parameter files.
  • Enable unit tests when CATKIN_ENABLE_TESTING is set (#10).

1.0.1 (2013-06-15)

  • Declare explicit pluginlib dependency (#4).

1.0.0 (2013-06-14)

  • Convert to catkin (#1).
  • Release to Hydro.

0.9.2 (2013-07-08)

  • Fix Groovy build problem (#7).

0.9.1 (2012-06-05)

  • Only include "enabled" lasers in YAML calibration file.
  • New param subdirectory for parameter files.
  • Add launch file for the HDL-32E.
  • Add rviz_points.vcg file for viewing Velodyne point clouds with rviz.
  • Fix bug when reading configuration with default minIntensity.
  • Add unit tests with 32E data.
  • Released to Electric, Fuerte and Groovy.

0.9.0 (2012-04-03)

  • Completely revised API, anticipating a 1.0.0 release.
  • HDL-32E device support.
  • New YAML configuration file format.
  • New velodyne_driver and velodyne_pointcloud packages.
  • Old velodyne_common and velodyne_pcl packages no longer included.
  • Released to Electric, Fuerte and Groovy.

0.2.6 (2011-02-23)

  • Label all timing-dependent tests "realtime" so they do not run by default on the build farm machines.

0.2.5 (2010-11-19)

  • Initial implementation of new 0.3 interfaces.
  • Support for ROS 1.3 [std_msgs::Header]{.title-ref} changes.

0.2.0 (2010-08-17)

  • Initial release to ROS C-turtle.

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.

Launch files

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged velodyne_pointcloud at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.5.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/velodyne.git
VCS Type git
VCS Version ros2
Last Updated 2024-10-31
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

Point cloud conversions for Velodyne 3D LIDARs.

Additional Links

Maintainers

  • Josh Whitley

Authors

  • Jack O'Quin
  • Piyush Khandelwal
  • Jesse Vera
  • Andreas Klintberg

Velodyne ROS 2 raw to pointcloud converters

This is a ROS 2 package that takes raw velodyne data as output by the velodyne_driver node, and converts it into a sensor_msgs/PointCloud2 message.

There are two different nodes here:

velodyne_convert_node - This node takes in the raw data and converts it to a pointcloud immediately. velodyne_transform_node - This node takes the raw data and converts it only when a corresponding tf message with a compatible timestamp has arrived.

The topics and parameters for both nodes are identical, so they’ll be described together below.

Published Topics

  • velodyne_points (sensor_msgs/PointCloud2) - The pointcloud that results from the raw velodyne data.

Subscribed Topics

  • velodyne_packets (velodyne_msgs/VelodyneScan) - The raw velodyne packets coming from the velodyne_driver.

Parameters

  • calibration (string) - The path to the calibration file for the particular device. There are a set of default calibration files to start with in the “params” subdirectory in this package. Defaults to the empty string.
  • min_range (double) - The minimum range in meters that a point must be to be added to the resulting point cloud. Points closer than this are discarded. Must be between 0.1 and 10.0. Defaults to 0.9.
  • max_range (double) - The maximum range in meters that a point must be to be added to the resulting point cloud. Points further away than this are discarded. Must be between 0.1 and 200.0. Defaults to 130.0.
  • view_direction (double) - The point around the circumference of the device, in radians, to “center” the view. Combined with view_width, this allows the node to generate a pointcloud only for the given width, centered at this point. This can vastly reduce the CPU requirements of the node. Must be between -Pi and Pi, where 0 is straight ahead from the device. Defaults to 0.0.
  • view_width (double) - The width, in radians, of the view to generate for the resulting pointcloud. Combined with view_direction, this allows the node to generate a pointcloud only for the given width, centered at the view_direction point. This can vastly reduce the CPU requirements of the node. Must be between 0 and 2Pi. Defaults to 2Pi.
  • organize_cloud (bool) - Whether to organize the cloud by ring (True), or to use the order as it comes directly from the driver (False). Defaults to True.
  • target_frame (string) - The coordinate frame to apply to the generated point cloud header before publishing. If the empty string (the default), the frame is passed along from the driver packet. If this frame is different than the fixed_frame, a transformation to this coordinate frame is performed while creating the pointcloud.
  • fixed_frame (string) - The fixed coordinate frame to transform the data from.
CHANGELOG

Change history

2.5.1 (2024-10-31)

  • Fix compiling on RHEL-8. (#549)
  • Contributors: Chris Lalancette

2.5.0 (2024-10-30)

  • Clalancette/cmake cleanups (#546)
  • Fix exports (#535)
  • Add in the Eigen dependency to velodyne_pointcloud (#545)
  • Add package to compile in Jazzy (#539)
  • Feature script add two pt ros2 (#498)
  • delete unused valiable (#529)
  • Add vert offset corrections to VLP16 calib file (#518)
  • Fix double-include.
  • feat: support vls128 for ros2 (#493)
  • Update rolling ci (#512) (#513)
  • Contributors: Chris Lalancette, Daisuke Nishimatsu, Joshua Whitley, Mateusz Szczygielski, Pierrick Koch, Taiga Takano, Thomas Emter, g-kurz

2.4.0 (2023-05-27)

2.3.0 (2022-07-08)

  • Passing fixed_frame and target_frame to Convert object. (#330) (#451) Co-authored-by: Joshua Whitley <<jwhitley@autonomoustuff.com>>
  • Updating maintainer email address. (#450)
    • Updating maintainer email address.

    * chore: update maintainer email address Co-authored-by: Joshua Whitley <<jwhitley@autonomoustuff.com>>

  • Add per point time field (#440)
    • Initial commit to timestamp each point using the timing spec in the manuals
    • Added model param to each of the cloud nodelet starters
    • Minor cleanup. added author tag to rawdata
    • Move timing offsets functionality into class private. Also fix linter errors
    • added #include <vector> for linter
    • fix: suppress compiler warning

    * feat: change XYZIR to XYZIRT Co-authored-by: Shawn Hanna <<shawn@kaarta.com>>

  • Link against yaml-cpp (#443)
  • Increase the max_range of the 32C launch file (#323) (#441) Co-authored-by: Shawn Hanna <<50845122+kaarta-SHanna@users.noreply.github.com>>
  • fix for #267, transform each packet (#438)
    • fix for #267, transform each packet

    * fix: fix scope of access modifiers Co-authored-by: Sebastian <<spuetz@uos.de>>

  • Replace deprecated argument names in launch (#430)
  • 2.1.1
  • Updating for first Galactic release
  • Contributors: Daisuke Nishimatsu, Joshua Whitley, Keane Quigley, Stephan Sundermann

2.1.1 (2021-08-23)

2.1.0 (2020-07-10)

2.0.0 (2020-07-10)

  • More fixing of dependencies. (#333)
    • More fixing of dependencies.
  • Fixes pointed out by clang-tidy (#310)
    • Rearrange header includes so clang-tidy is happy.
    • Get rid of unnecessary void arguments on methods.
    • Properly mark methods as override where appropriate.
    • Initialize members and stack variables to zero before use.
    • Mark function implementations in header files 'inline'.
    • Use more efficient 'empty' method instead of empty string.
    • Get rid of unnecessary else statements after a continue/return.
    • Get rid of unnecessary == false use.
    • Make sure to add a virtual destructor to DataContainerBase.
    • Use string != comparison instead of 'compare' method.
    • Rename PointcloudXYZIR parameter name to match implementation.
    • Get rid of usage of typedef.
    • Be more explicit about using floats.
    • Do an explicit lround to do int->float conversion.
    • Fix the intensity calculation.
    • Remove the azimuth from addPoint.
    • Make sure to reset the cloud data to 0 before reusing.
    • Use underscores on pointcloud member variables.
    • Using std::lround means we don't need to add 0.5 to the result.
    • Slightly rearrange and simplify range checks.
    • Add in example launch files for VLP32C.
  • A few more minor style updates. (#308)
    • Get rid of the last users of new in the codebase
    • Get rid of the users of 'using' in the codebase
    • Rename 'calibrationFile' -> 'calibration_file'
  • Dashing fixes (#307)
    • Use std::make_unique as appropriate.
    • Fix the azimuth calculation.
    • Fix a crash during driver startup.
    • Always recalculate the row_step while setting up the cloud.
    • Make sure to call computeTransformation.
    • Fix style errors pointed out by flake8.
  • ROS2: Add Linters to velodyne_pointcloud (#304)
    • VP: Renaming files.
    • VP: Fixed copyrights.
    • VP: cpplint is satisfied!
    • VP: Converted gen_calibration.py to Python3.
    • Uncrustify fixed!
    • VP: Lint errors clear.
    • VP: Moving organized_cloud and pointcloud to lib and building as library.
  • Check for intra-process subscribers
  • Add in example launch files.
  • Disable copy, move, and assign operators.
  • Build the components so the velodyne can be run as a component.
  • Add in NodeOptions to node constructors.
  • Only find the "common" component to PCL.
  • Make sure to install the header files for laserscan and pointcloud.
  • Properly setup the row_step.
  • Add explicit, final, and override to classes where appropriate.
  • Remove organize_cloud, fixed_frame, and target_frame configs.
  • Stop storing view_{direction,width} in the Node classes.
  • Stop storing {min,max}_range in the Node classes.
  • Make DataContainerBase::configure const reference string parameters.
  • Switch argument order to always be (min,max)
  • Remove tmp_{min,max}_angle from stored RawData config.
  • Remove unused tf_ptr.
  • Switch container_ptr to a unique_ptr.
  • container_ptr -> container_ptr_
  • Don't store number of lasers in the Transfrom/Convert node.
  • Make the RawData class RAII-style.
  • Make RawData::setup not return the number of lasers.
  • Remove unused laser_corrections_maps.
  • Remove the calibration read method.
  • Make the Calibration class only have the RAII-style constructor.
  • Remove unnecessary ros_info parameter from Calibration.
  • Remove unused calibration write method.
  • Remove unused setupOffline method.
  • Remove calibrationFile from rawdata config.
  • Switch to using nullptr everywhere.
  • fixed timpepoint issue
  • Remove dead store from rawdata.cc
  • Rename nodes.
  • Switch organize_cloud to true by default.
  • Update the documentation for ROS 2.
  • Remove debugging statements.
  • Fix dead pointers in calibration.cc.
  • Merge pull request #251 from clalancette/dashing-devel3 ROS 2 Dashing port
  • Merge pull request #214 from spuetz/feature/opc_nopcl Container cleanup and organized pointclouds
  • Merge pull request #236 from mpitropov/fix_transform_node_frame_bug set correct output frame
  • Merge pull request #234 from kmhallen/c++11 Set minimum C++ standard to C++11
  • Merge pull request #231 from ros-drivers/ci/test_better_output CI: Adding roslint as separate step. Limiting output of catkin build.
  • Merge pull request #227 from ros-drivers/roslint Applying roslint to velodyne_pointcloud.
  • Merge pull request #223 from mpitropov/feat_Add_fixed_frame Add fixed frame and use ros message time within transform node
  • Merge pull request #224 from mpitropov/feat_add_diagnostics Added diagnostic publishing
  • Merge pull request #222 from mpitropov/feat_Use_GPS_time Add flag to enable using GPS time from within the Velodyne packet instead of ROS time for scan.
  • Contributors: Andreas Klintberg, Chris Lalancette, Ian Colwell, Joshua Whitley, Kevin Hallenbeck, Matthew Pitropov, P. J. Reed, Sebastian, Sebastian Pütz

1.5.2 (2019-01-28)

  • Merge pull request #205 from xiesc/master support for 64E-S3
  • add an example yaml file for S3
  • Contributors: Joshua Whitley, Shichao XIE, xiesc

1.5.1 (2018-12-10)

  • Merge pull request #194 from ros-drivers/avoid_unnecessary_computation Avoid unnecessary computation - causes approximately 20% performance increase on VLP-32C - should be similar for other sensors
  • std::vector<>::reserve is your friend
  • add static to avoid frequence memory allocation
  • avoid unecesary calculations in unpack()
  • Contributors: Davide Faconti, Joshua Whitley

1.5.0 (2018-10-19)

  • Merge pull request #164 from ros-drivers/maint/vlp_32c_support Adding VLP-32C support. This was tested by AutonomouStuff and several external users. Though it does not include new information that I've learned (it appears that the distance resolution is different <50m vs >=50m), it is a good start.
  • Merge pull request #189 from kveretennicov/patch-1
  • Fix malformed plugin description XML ROS pluginlib only recognizes multiple <library> elements if they are under <class_libraries> XML root. It silently ignores malformed XMLs with multiple <library> "root"s and just reads the first one, due to relaxed way tinyxml2 does parsing. Though if you do [rosrun nodelet declared_nodelets]{.title-ref}, the issue is reported properly. See also similar issue in https://github.com/ros-perception/perception_pcl/issues/131
  • Adding distance_resolution to test yaml files.
  • Adding VLP-32C support. Based on work done by \@rockcdr. Adds distance_resolution calibration value to support 0.004m distance resolution for VLP-32C.
  • Contributors: Joshua Whitley, Konstantin Veretennicov

1.4.0 (2018-09-19)

  • Merge pull request #178 from sts-thm/bugfix_issue_#174 Bugfix issue #174
  • Merge pull request #177 from C-NR/feature/WrapPointcloudData Feature/wrap pointcloud data
  • Changes fixing deadlock for specific cut_angle values.
  • moved definition of VPoint and VPointCloud back to namespace rawdata in rawdata.h
  • put a wrapper around pointcloud data including a generic setter method to enable the use of arbitrary data structures (pcl pointcloud, depth image, octomaps and so on) to be filled by just using RawData::unpack method with the wrapper object as parameter
  • Merge pull request #170 from ros-drivers/maint/move_header_files Moving header files to traditional location inside include folders.
  • Merge pull request #160 from ros-drivers/maint/updating_package_xml_to_v2
  • Updated all package.xmls to ver 2. Cleaned up catkin_lint errors. All package.xml files are now compatible with version 2 of the package.xml specification in REP 140. Removed some unnecessary execute permissions on a few files. Fixed a missing test_depend.
  • Merge pull request #136 from stsundermann/patch-1 Use std::abs instead of abs
  • Adding missing 32C configuration file.
  • Merge pull request #139 from ASDeveloper00/vlp32 Adding support for VLP-32C.
  • Merge pull request #138 from volkandre/cut_at_specified_angle_feature Cut at specified angle feature
  • Updated default cut_angle parameters in launch files after switching from deg to rad.
  • Use std::abs instead of abs abs is the c version which returns an integer. This is probably not intended here, so use the templated std::abs function.
  • Contributors: Andre Volk, Autonomoustuff Developer, CNR, Joshua Whitley, Kyle Rector, Stephan Sundermann, Tobias Athmer, kennouni

1.3.0 (2017-11-10)

  • Merge pull request #110 from kmhallen/master Added velodyne_laserscan package
  • Merge remote-tracking branch ros-drivers/master
  • Merge pull request #129 from kmhallen/pluginlib_macro Modern pluginlib macro
  • Update to use non deprecated pluginlib macro
  • Merge pull request #127 from swri-robotics/add_vlp16_hires_support Add VLP16 Puck Hi-Res config file
  • Add VLP16 Puck Hi-Res support
  • velodyne_pointcloud: remove incorrect catkin_package() DEPENDS option (#93) This eliminates a CMake warning when building on Xenial.
  • Merge pull request #111 from OrebroUniversity/master Added an interface to set up raw data processing offline
  • Added an interface to set up raw data processing from a locally defined calibration file. This method is useful when processing data offline from a bag file, without starting any ros master
  • Added velodyne_laserscan package and inserted into existing launch files
  • test multiple nodelet manager support (#108)
  • add launch args to support multiple devices (#108)
  • Merge pull request #105 from fudger/patch-1 Remove unused constants.
  • Merge pull request #104 from altrouge/launch_options Add more options in launch files.
  • Rearranged alphabetically.
  • Remove unused constants. DISTANCE_MAX and DISTANCE_MAX_UNITS are not used anywhere in the code. Furthermore, using them would lead to errors as both VLP-64 manuals state that returns above 120 m should not be used. The VLP-32 manual allows 70 m as the maximum valid sensor range.
  • Merge pull request #103 from fudger/patch-1 Fix misleading typecasts.
  • Add more options in launch files.
    • rpm, device_ip, port, read_once, read_fast, repeat_delay
  • Fix misleading typecasts. intensity and VPoint::intensity are both of type float.
  • update change history
  • merge current master (#94)
  • Merge pull request #92 from adasta/master GCC Build Warnings
  • Modified velodyne_point_cloud/src/lib/rawdata.cc to address warning that last_azimuth_diff variable may be used uninitialized. Variable is now initialized to 0 at creation. velodyne/velodyne_pointcloud/src/lib/rawdata.cc:328:57: error: ‘last_azimuth_diff’ may be used uninitialized in this function [-Werror=maybe-uninitialized] azimuth_corrected_f = azimuth + (azimuth_diff * ((dsr*VLP16_DSR_TOFFSET) + (firing*VLP16_FIRING_TOFFSET)) / VLP16_BLOCK_TDURATION);
  • Modified velodyne_pointcloud/src/conversion/colors.cc to remove address build warning for strict-aliasing. velodyne/velodyne_pointcloud/src/conversions/colors.cc:84:58:
  • Merge pull request #89 from Tones29/feat_dynrec_driver Add dynamic latency configuration to velodyne_driver
  • velodyne_pointcloud: Fix compile warning "Wrong initialization order"
  • velodyne_pointcloud: add dynamic reconfig update to change log (#78)
  • Merge branch fudger-reconfigure_transform_node
  • velodyne_pointcloud: use recommended add_dependencies() CMake variable #78
  • velodyne_pointcloud: fix transform unit tests Use tf2_ros static_transform_publisher for more consistent timing (#2)
  • Merge branch reconfigure_transform_node of https://github.com/fudger/velodyne
  • prepare change history for coming Indigo release (#59)
  • calibration: unit test case improvements (#84)
  • calibration: read all intensities as float, then convert (#84)
  • calibration: add gtest for #84 This currently fails on 64e_s2.1-sztaki.yaml and on issue_84_float_intensities.yaml.
  • calibration: make max_intensity and min_intensity optional (#84) This fixes a regression in the 32e and VLP-16 calibrations which do not contain intensity values. There is still a problem with the 64e_s2.1 calibration.
  • Merge pull request #76 from pomerlef/master Sign inversion in some equations
  • Merge pull request #82 from ros-drivers/fix_pr_80 Fix pr 80; adding travis CI tests.
  • fix the yaml-cpp 0.5 code paths
  • Merge pull request #80 from ros-drivers/fix_yaml_import allow floats in min/max_intensity and make horiz_offset_correction optional
  • allow horiz_offset_correction to be optional with 0 as default
  • allow floats instead of ints in min/max_intensity
  • Resolve frame ID name using tf prefix.
  • Improve coding style.
  • Set up dynamic reconfiguration for transform_node. Previously, transform_node has neither read parameters other than frame_id from the command line nor has it exposed these parameters via dynamic reconfigure. As parameters like max_range and view_width have been initialized to zero, the inconfigurable transform_node has returned an empty point cloud. Now, transform_node launches an reconfigure server just as cloud_node. In contrast to cloud_node, transform node exposes another parameter for dynamic reconfiguration: frame_id, i.e. the frame of reference the incoming Velodyne points are transformed to.
  • Merge pull request #77 from fudger/pretty_print Fix output of calibration data onto console
  • Add a missing space.
  • Fix line that always indicates use of model VLP-16.
  • Align console output of calibration data.
  • Merge branch master of https://github.com/ros-drivers/velodyne
  • resolve sign error
  • Merge pull request #73 from fudger/master Correct important data type error for VLP-16
  • Fix data type error that distorts the point cloud.
  • Fix and add a few comments.
  • Merge pull request #68 from jlblancoc/patch-1 Remove unused variable
  • Remove unused variable I think that [dsr]{.title-ref} was unused. See line 317: for (int dsr=0; ...
  • VLP-16: skip badly formatted data packets (#62, #63)
  • restore VLP-16 min_range setting to 0.4 (#60) NOTE: There is still some other problem keeping that from working.
  • permit min_range settings below 0.9 meters (#60) No known models are currently known to return closer measurements.
  • Merge pull request #55 from lemiant/azimuth_bug_VLP16 Fixed azimuth overflow bug.
  • Fixed azimuth overflow bug. For interpolated azimuth values between 35999.5 and 36000.0 the nested round(fmod()) yields a value of 36000 which is invalid and overflows the pre-computed sin/cos arrays, since they only go form 0..35999
  • Merge pull request #51 from kunlileo/master Added vertical sin angle correction
  • Added vertical sin angle correction
  • Merge pull request #47 from prclibo/master fixed rounding bug in intensity calculation found by songshiyu
  • fixed rounding bug in intensity calculation found by songshiyu
  • fix some overly long C++ source lines
  • Merge pull request #44 from SISegwayRmp/master adding driver and pointcloud support for the VLP16
  • missed the space in the file name which caused the build to fail, removed space before extension
  • adding the VLP16 test scripts and updating the CMakeLists to include the test file from http://download.ros.org/data/velodyne/vlp16.pcap
  • adding support for the VLP16
  • Merge pull request #43 from prclibo/fix_rawdata fixed point computation according to the 64e_s2(.1) velodyne manual
  • fixed point computation according to the 64e_s2(.1) velodyne manual, with luopei"s help
  • Merge pull request #41 from prclibo/master fixed a calibration file parsing bug
  • Merge pull request #42 from prclibo/fix_gen_calibration fixed gen_calibration min/max intensity type
  • fixed gen_calibration min/max intensity type
  • fixed a calibration file parsing bug
  • Contributors: Adam Stambler, Alex Rodrigues, Alexander Schaefer, Andreas Wachaja, Bo Li, Daniel Jartoux, Gabor Meszaros, Jack OQuin, Jose Luis Blanco-Claraco, Joshua Whitley, Kevin Hallenbeck, Kris Kozak, Kun Li, Micho Radovnikovich, Scott K Logan, Thomas Solatges, Todor Stoyanov, William Woodall, jack.oquin, libo24, phussey, piyushk, pomerlef

1.2.0 (2014-08-06)

  • velodyne_pointcloud: remove model-dependent "constants" from rawdata.h (#28)
  • velodyne_pointcloud: change default min_range to 0.9 meters (#25)
  • Added support for YAML-CPP 0.5+ (#23).
  • Add dynamic_reconfigure feature.
  • Add angular limits to the output point cloud, useful for omitting part of it. (#22).
  • Contributors: Jack OQuin, Scott K Logan, Thomas Solatges

1.1.2 (2013-11-05)

  • Move unit test data to download.ros.org (#18).
  • Install missing gen_calibration.py script (#20).

1.1.1 (2013-07-30)

  • Fix lost frame_id transform problem caused by PCL 1.7 fix (#13).
  • Add support for HDL-64E S2 and S2.1 models, which were not working before (#11), thanks to Gabor Meszaros (#12).
  • Add additional parameters to launch files (#14).
  • Contributors: Gabor Meszaros, Jack OQuin

1.1.0 (2013-07-16)

  • Fix build problems due to PCL 1.7 API incompatibilities (#8), thanks to William Woodall. This version also works with Groovy, as long as the correct pcl_conversions is installed.
  • Fix errors with Mac OSX compiler (#8).
  • Install pluginlib XML files (#9).
  • Install some launch and parameter files.
  • Enable unit tests when CATKIN_ENABLE_TESTING is set (#10).

1.0.1 (2013-06-15)

  • Declare explicit pluginlib dependency (#4).

1.0.0 (2013-06-14)

  • Convert to catkin (#1).
  • Release to Hydro.

0.9.2 (2013-07-08)

  • Fix Groovy build problem (#7).

0.9.1 (2012-06-05)

  • Only include "enabled" lasers in YAML calibration file.
  • New param subdirectory for parameter files.
  • Add launch file for the HDL-32E.
  • Add rviz_points.vcg file for viewing Velodyne point clouds with rviz.
  • Fix bug when reading configuration with default minIntensity.
  • Add unit tests with 32E data.
  • Released to Electric, Fuerte and Groovy.

0.9.0 (2012-04-03)

  • Completely revised API, anticipating a 1.0.0 release.
  • HDL-32E device support.
  • New YAML configuration file format.
  • New velodyne_driver and velodyne_pointcloud packages.
  • Old velodyne_common and velodyne_pcl packages no longer included.
  • Released to Electric, Fuerte and Groovy.

0.2.6 (2011-02-23)

  • Label all timing-dependent tests "realtime" so they do not run by default on the build farm machines.

0.2.5 (2010-11-19)

  • Initial implementation of new 0.3 interfaces.
  • Support for ROS 1.3 [std_msgs::Header]{.title-ref} changes.

0.2.0 (2010-08-17)

  • Initial release to ROS C-turtle.

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.

Launch files

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged velodyne_pointcloud at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.5.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/velodyne.git
VCS Type git
VCS Version ros2
Last Updated 2024-10-31
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

Point cloud conversions for Velodyne 3D LIDARs.

Additional Links

Maintainers

  • Josh Whitley

Authors

  • Jack O'Quin
  • Piyush Khandelwal
  • Jesse Vera
  • Andreas Klintberg

Velodyne ROS 2 raw to pointcloud converters

This is a ROS 2 package that takes raw velodyne data as output by the velodyne_driver node, and converts it into a sensor_msgs/PointCloud2 message.

There are two different nodes here:

velodyne_convert_node - This node takes in the raw data and converts it to a pointcloud immediately. velodyne_transform_node - This node takes the raw data and converts it only when a corresponding tf message with a compatible timestamp has arrived.

The topics and parameters for both nodes are identical, so they’ll be described together below.

Published Topics

  • velodyne_points (sensor_msgs/PointCloud2) - The pointcloud that results from the raw velodyne data.

Subscribed Topics

  • velodyne_packets (velodyne_msgs/VelodyneScan) - The raw velodyne packets coming from the velodyne_driver.

Parameters

  • calibration (string) - The path to the calibration file for the particular device. There are a set of default calibration files to start with in the “params” subdirectory in this package. Defaults to the empty string.
  • min_range (double) - The minimum range in meters that a point must be to be added to the resulting point cloud. Points closer than this are discarded. Must be between 0.1 and 10.0. Defaults to 0.9.
  • max_range (double) - The maximum range in meters that a point must be to be added to the resulting point cloud. Points further away than this are discarded. Must be between 0.1 and 200.0. Defaults to 130.0.
  • view_direction (double) - The point around the circumference of the device, in radians, to “center” the view. Combined with view_width, this allows the node to generate a pointcloud only for the given width, centered at this point. This can vastly reduce the CPU requirements of the node. Must be between -Pi and Pi, where 0 is straight ahead from the device. Defaults to 0.0.
  • view_width (double) - The width, in radians, of the view to generate for the resulting pointcloud. Combined with view_direction, this allows the node to generate a pointcloud only for the given width, centered at the view_direction point. This can vastly reduce the CPU requirements of the node. Must be between 0 and 2Pi. Defaults to 2Pi.
  • organize_cloud (bool) - Whether to organize the cloud by ring (True), or to use the order as it comes directly from the driver (False). Defaults to True.
  • target_frame (string) - The coordinate frame to apply to the generated point cloud header before publishing. If the empty string (the default), the frame is passed along from the driver packet. If this frame is different than the fixed_frame, a transformation to this coordinate frame is performed while creating the pointcloud.
  • fixed_frame (string) - The fixed coordinate frame to transform the data from.
CHANGELOG

Change history

2.5.1 (2024-10-31)

  • Fix compiling on RHEL-8. (#549)
  • Contributors: Chris Lalancette

2.5.0 (2024-10-30)

  • Clalancette/cmake cleanups (#546)
  • Fix exports (#535)
  • Add in the Eigen dependency to velodyne_pointcloud (#545)
  • Add package to compile in Jazzy (#539)
  • Feature script add two pt ros2 (#498)
  • delete unused valiable (#529)
  • Add vert offset corrections to VLP16 calib file (#518)
  • Fix double-include.
  • feat: support vls128 for ros2 (#493)
  • Update rolling ci (#512) (#513)
  • Contributors: Chris Lalancette, Daisuke Nishimatsu, Joshua Whitley, Mateusz Szczygielski, Pierrick Koch, Taiga Takano, Thomas Emter, g-kurz

2.4.0 (2023-05-27)

2.3.0 (2022-07-08)

  • Passing fixed_frame and target_frame to Convert object. (#330) (#451) Co-authored-by: Joshua Whitley <<jwhitley@autonomoustuff.com>>
  • Updating maintainer email address. (#450)
    • Updating maintainer email address.

    * chore: update maintainer email address Co-authored-by: Joshua Whitley <<jwhitley@autonomoustuff.com>>

  • Add per point time field (#440)
    • Initial commit to timestamp each point using the timing spec in the manuals
    • Added model param to each of the cloud nodelet starters
    • Minor cleanup. added author tag to rawdata
    • Move timing offsets functionality into class private. Also fix linter errors
    • added #include <vector> for linter
    • fix: suppress compiler warning

    * feat: change XYZIR to XYZIRT Co-authored-by: Shawn Hanna <<shawn@kaarta.com>>

  • Link against yaml-cpp (#443)
  • Increase the max_range of the 32C launch file (#323) (#441) Co-authored-by: Shawn Hanna <<50845122+kaarta-SHanna@users.noreply.github.com>>
  • fix for #267, transform each packet (#438)
    • fix for #267, transform each packet

    * fix: fix scope of access modifiers Co-authored-by: Sebastian <<spuetz@uos.de>>

  • Replace deprecated argument names in launch (#430)
  • 2.1.1
  • Updating for first Galactic release
  • Contributors: Daisuke Nishimatsu, Joshua Whitley, Keane Quigley, Stephan Sundermann

2.1.1 (2021-08-23)

2.1.0 (2020-07-10)

2.0.0 (2020-07-10)

  • More fixing of dependencies. (#333)
    • More fixing of dependencies.
  • Fixes pointed out by clang-tidy (#310)
    • Rearrange header includes so clang-tidy is happy.
    • Get rid of unnecessary void arguments on methods.
    • Properly mark methods as override where appropriate.
    • Initialize members and stack variables to zero before use.
    • Mark function implementations in header files 'inline'.
    • Use more efficient 'empty' method instead of empty string.
    • Get rid of unnecessary else statements after a continue/return.
    • Get rid of unnecessary == false use.
    • Make sure to add a virtual destructor to DataContainerBase.
    • Use string != comparison instead of 'compare' method.
    • Rename PointcloudXYZIR parameter name to match implementation.
    • Get rid of usage of typedef.
    • Be more explicit about using floats.
    • Do an explicit lround to do int->float conversion.
    • Fix the intensity calculation.
    • Remove the azimuth from addPoint.
    • Make sure to reset the cloud data to 0 before reusing.
    • Use underscores on pointcloud member variables.
    • Using std::lround means we don't need to add 0.5 to the result.
    • Slightly rearrange and simplify range checks.
    • Add in example launch files for VLP32C.
  • A few more minor style updates. (#308)
    • Get rid of the last users of new in the codebase
    • Get rid of the users of 'using' in the codebase
    • Rename 'calibrationFile' -> 'calibration_file'
  • Dashing fixes (#307)
    • Use std::make_unique as appropriate.
    • Fix the azimuth calculation.
    • Fix a crash during driver startup.
    • Always recalculate the row_step while setting up the cloud.
    • Make sure to call computeTransformation.
    • Fix style errors pointed out by flake8.
  • ROS2: Add Linters to velodyne_pointcloud (#304)
    • VP: Renaming files.
    • VP: Fixed copyrights.
    • VP: cpplint is satisfied!
    • VP: Converted gen_calibration.py to Python3.
    • Uncrustify fixed!
    • VP: Lint errors clear.
    • VP: Moving organized_cloud and pointcloud to lib and building as library.
  • Check for intra-process subscribers
  • Add in example launch files.
  • Disable copy, move, and assign operators.
  • Build the components so the velodyne can be run as a component.
  • Add in NodeOptions to node constructors.
  • Only find the "common" component to PCL.
  • Make sure to install the header files for laserscan and pointcloud.
  • Properly setup the row_step.
  • Add explicit, final, and override to classes where appropriate.
  • Remove organize_cloud, fixed_frame, and target_frame configs.
  • Stop storing view_{direction,width} in the Node classes.
  • Stop storing {min,max}_range in the Node classes.
  • Make DataContainerBase::configure const reference string parameters.
  • Switch argument order to always be (min,max)
  • Remove tmp_{min,max}_angle from stored RawData config.
  • Remove unused tf_ptr.
  • Switch container_ptr to a unique_ptr.
  • container_ptr -> container_ptr_
  • Don't store number of lasers in the Transfrom/Convert node.
  • Make the RawData class RAII-style.
  • Make RawData::setup not return the number of lasers.
  • Remove unused laser_corrections_maps.
  • Remove the calibration read method.
  • Make the Calibration class only have the RAII-style constructor.
  • Remove unnecessary ros_info parameter from Calibration.
  • Remove unused calibration write method.
  • Remove unused setupOffline method.
  • Remove calibrationFile from rawdata config.
  • Switch to using nullptr everywhere.
  • fixed timpepoint issue
  • Remove dead store from rawdata.cc
  • Rename nodes.
  • Switch organize_cloud to true by default.
  • Update the documentation for ROS 2.
  • Remove debugging statements.
  • Fix dead pointers in calibration.cc.
  • Merge pull request #251 from clalancette/dashing-devel3 ROS 2 Dashing port
  • Merge pull request #214 from spuetz/feature/opc_nopcl Container cleanup and organized pointclouds
  • Merge pull request #236 from mpitropov/fix_transform_node_frame_bug set correct output frame
  • Merge pull request #234 from kmhallen/c++11 Set minimum C++ standard to C++11
  • Merge pull request #231 from ros-drivers/ci/test_better_output CI: Adding roslint as separate step. Limiting output of catkin build.
  • Merge pull request #227 from ros-drivers/roslint Applying roslint to velodyne_pointcloud.
  • Merge pull request #223 from mpitropov/feat_Add_fixed_frame Add fixed frame and use ros message time within transform node
  • Merge pull request #224 from mpitropov/feat_add_diagnostics Added diagnostic publishing
  • Merge pull request #222 from mpitropov/feat_Use_GPS_time Add flag to enable using GPS time from within the Velodyne packet instead of ROS time for scan.
  • Contributors: Andreas Klintberg, Chris Lalancette, Ian Colwell, Joshua Whitley, Kevin Hallenbeck, Matthew Pitropov, P. J. Reed, Sebastian, Sebastian Pütz

1.5.2 (2019-01-28)

  • Merge pull request #205 from xiesc/master support for 64E-S3
  • add an example yaml file for S3
  • Contributors: Joshua Whitley, Shichao XIE, xiesc

1.5.1 (2018-12-10)

  • Merge pull request #194 from ros-drivers/avoid_unnecessary_computation Avoid unnecessary computation - causes approximately 20% performance increase on VLP-32C - should be similar for other sensors
  • std::vector<>::reserve is your friend
  • add static to avoid frequence memory allocation
  • avoid unecesary calculations in unpack()
  • Contributors: Davide Faconti, Joshua Whitley

1.5.0 (2018-10-19)

  • Merge pull request #164 from ros-drivers/maint/vlp_32c_support Adding VLP-32C support. This was tested by AutonomouStuff and several external users. Though it does not include new information that I've learned (it appears that the distance resolution is different <50m vs >=50m), it is a good start.
  • Merge pull request #189 from kveretennicov/patch-1
  • Fix malformed plugin description XML ROS pluginlib only recognizes multiple <library> elements if they are under <class_libraries> XML root. It silently ignores malformed XMLs with multiple <library> "root"s and just reads the first one, due to relaxed way tinyxml2 does parsing. Though if you do [rosrun nodelet declared_nodelets]{.title-ref}, the issue is reported properly. See also similar issue in https://github.com/ros-perception/perception_pcl/issues/131
  • Adding distance_resolution to test yaml files.
  • Adding VLP-32C support. Based on work done by \@rockcdr. Adds distance_resolution calibration value to support 0.004m distance resolution for VLP-32C.
  • Contributors: Joshua Whitley, Konstantin Veretennicov

1.4.0 (2018-09-19)

  • Merge pull request #178 from sts-thm/bugfix_issue_#174 Bugfix issue #174
  • Merge pull request #177 from C-NR/feature/WrapPointcloudData Feature/wrap pointcloud data
  • Changes fixing deadlock for specific cut_angle values.
  • moved definition of VPoint and VPointCloud back to namespace rawdata in rawdata.h
  • put a wrapper around pointcloud data including a generic setter method to enable the use of arbitrary data structures (pcl pointcloud, depth image, octomaps and so on) to be filled by just using RawData::unpack method with the wrapper object as parameter
  • Merge pull request #170 from ros-drivers/maint/move_header_files Moving header files to traditional location inside include folders.
  • Merge pull request #160 from ros-drivers/maint/updating_package_xml_to_v2
  • Updated all package.xmls to ver 2. Cleaned up catkin_lint errors. All package.xml files are now compatible with version 2 of the package.xml specification in REP 140. Removed some unnecessary execute permissions on a few files. Fixed a missing test_depend.
  • Merge pull request #136 from stsundermann/patch-1 Use std::abs instead of abs
  • Adding missing 32C configuration file.
  • Merge pull request #139 from ASDeveloper00/vlp32 Adding support for VLP-32C.
  • Merge pull request #138 from volkandre/cut_at_specified_angle_feature Cut at specified angle feature
  • Updated default cut_angle parameters in launch files after switching from deg to rad.
  • Use std::abs instead of abs abs is the c version which returns an integer. This is probably not intended here, so use the templated std::abs function.
  • Contributors: Andre Volk, Autonomoustuff Developer, CNR, Joshua Whitley, Kyle Rector, Stephan Sundermann, Tobias Athmer, kennouni

1.3.0 (2017-11-10)

  • Merge pull request #110 from kmhallen/master Added velodyne_laserscan package
  • Merge remote-tracking branch ros-drivers/master
  • Merge pull request #129 from kmhallen/pluginlib_macro Modern pluginlib macro
  • Update to use non deprecated pluginlib macro
  • Merge pull request #127 from swri-robotics/add_vlp16_hires_support Add VLP16 Puck Hi-Res config file
  • Add VLP16 Puck Hi-Res support
  • velodyne_pointcloud: remove incorrect catkin_package() DEPENDS option (#93) This eliminates a CMake warning when building on Xenial.
  • Merge pull request #111 from OrebroUniversity/master Added an interface to set up raw data processing offline
  • Added an interface to set up raw data processing from a locally defined calibration file. This method is useful when processing data offline from a bag file, without starting any ros master
  • Added velodyne_laserscan package and inserted into existing launch files
  • test multiple nodelet manager support (#108)
  • add launch args to support multiple devices (#108)
  • Merge pull request #105 from fudger/patch-1 Remove unused constants.
  • Merge pull request #104 from altrouge/launch_options Add more options in launch files.
  • Rearranged alphabetically.
  • Remove unused constants. DISTANCE_MAX and DISTANCE_MAX_UNITS are not used anywhere in the code. Furthermore, using them would lead to errors as both VLP-64 manuals state that returns above 120 m should not be used. The VLP-32 manual allows 70 m as the maximum valid sensor range.
  • Merge pull request #103 from fudger/patch-1 Fix misleading typecasts.
  • Add more options in launch files.
    • rpm, device_ip, port, read_once, read_fast, repeat_delay
  • Fix misleading typecasts. intensity and VPoint::intensity are both of type float.
  • update change history
  • merge current master (#94)
  • Merge pull request #92 from adasta/master GCC Build Warnings
  • Modified velodyne_point_cloud/src/lib/rawdata.cc to address warning that last_azimuth_diff variable may be used uninitialized. Variable is now initialized to 0 at creation. velodyne/velodyne_pointcloud/src/lib/rawdata.cc:328:57: error: ‘last_azimuth_diff’ may be used uninitialized in this function [-Werror=maybe-uninitialized] azimuth_corrected_f = azimuth + (azimuth_diff * ((dsr*VLP16_DSR_TOFFSET) + (firing*VLP16_FIRING_TOFFSET)) / VLP16_BLOCK_TDURATION);
  • Modified velodyne_pointcloud/src/conversion/colors.cc to remove address build warning for strict-aliasing. velodyne/velodyne_pointcloud/src/conversions/colors.cc:84:58:
  • Merge pull request #89 from Tones29/feat_dynrec_driver Add dynamic latency configuration to velodyne_driver
  • velodyne_pointcloud: Fix compile warning "Wrong initialization order"
  • velodyne_pointcloud: add dynamic reconfig update to change log (#78)
  • Merge branch fudger-reconfigure_transform_node
  • velodyne_pointcloud: use recommended add_dependencies() CMake variable #78
  • velodyne_pointcloud: fix transform unit tests Use tf2_ros static_transform_publisher for more consistent timing (#2)
  • Merge branch reconfigure_transform_node of https://github.com/fudger/velodyne
  • prepare change history for coming Indigo release (#59)
  • calibration: unit test case improvements (#84)
  • calibration: read all intensities as float, then convert (#84)
  • calibration: add gtest for #84 This currently fails on 64e_s2.1-sztaki.yaml and on issue_84_float_intensities.yaml.
  • calibration: make max_intensity and min_intensity optional (#84) This fixes a regression in the 32e and VLP-16 calibrations which do not contain intensity values. There is still a problem with the 64e_s2.1 calibration.
  • Merge pull request #76 from pomerlef/master Sign inversion in some equations
  • Merge pull request #82 from ros-drivers/fix_pr_80 Fix pr 80; adding travis CI tests.
  • fix the yaml-cpp 0.5 code paths
  • Merge pull request #80 from ros-drivers/fix_yaml_import allow floats in min/max_intensity and make horiz_offset_correction optional
  • allow horiz_offset_correction to be optional with 0 as default
  • allow floats instead of ints in min/max_intensity
  • Resolve frame ID name using tf prefix.
  • Improve coding style.
  • Set up dynamic reconfiguration for transform_node. Previously, transform_node has neither read parameters other than frame_id from the command line nor has it exposed these parameters via dynamic reconfigure. As parameters like max_range and view_width have been initialized to zero, the inconfigurable transform_node has returned an empty point cloud. Now, transform_node launches an reconfigure server just as cloud_node. In contrast to cloud_node, transform node exposes another parameter for dynamic reconfiguration: frame_id, i.e. the frame of reference the incoming Velodyne points are transformed to.
  • Merge pull request #77 from fudger/pretty_print Fix output of calibration data onto console
  • Add a missing space.
  • Fix line that always indicates use of model VLP-16.
  • Align console output of calibration data.
  • Merge branch master of https://github.com/ros-drivers/velodyne
  • resolve sign error
  • Merge pull request #73 from fudger/master Correct important data type error for VLP-16
  • Fix data type error that distorts the point cloud.
  • Fix and add a few comments.
  • Merge pull request #68 from jlblancoc/patch-1 Remove unused variable
  • Remove unused variable I think that [dsr]{.title-ref} was unused. See line 317: for (int dsr=0; ...
  • VLP-16: skip badly formatted data packets (#62, #63)
  • restore VLP-16 min_range setting to 0.4 (#60) NOTE: There is still some other problem keeping that from working.
  • permit min_range settings below 0.9 meters (#60) No known models are currently known to return closer measurements.
  • Merge pull request #55 from lemiant/azimuth_bug_VLP16 Fixed azimuth overflow bug.
  • Fixed azimuth overflow bug. For interpolated azimuth values between 35999.5 and 36000.0 the nested round(fmod()) yields a value of 36000 which is invalid and overflows the pre-computed sin/cos arrays, since they only go form 0..35999
  • Merge pull request #51 from kunlileo/master Added vertical sin angle correction
  • Added vertical sin angle correction
  • Merge pull request #47 from prclibo/master fixed rounding bug in intensity calculation found by songshiyu
  • fixed rounding bug in intensity calculation found by songshiyu
  • fix some overly long C++ source lines
  • Merge pull request #44 from SISegwayRmp/master adding driver and pointcloud support for the VLP16
  • missed the space in the file name which caused the build to fail, removed space before extension
  • adding the VLP16 test scripts and updating the CMakeLists to include the test file from http://download.ros.org/data/velodyne/vlp16.pcap
  • adding support for the VLP16
  • Merge pull request #43 from prclibo/fix_rawdata fixed point computation according to the 64e_s2(.1) velodyne manual
  • fixed point computation according to the 64e_s2(.1) velodyne manual, with luopei"s help
  • Merge pull request #41 from prclibo/master fixed a calibration file parsing bug
  • Merge pull request #42 from prclibo/fix_gen_calibration fixed gen_calibration min/max intensity type
  • fixed gen_calibration min/max intensity type
  • fixed a calibration file parsing bug
  • Contributors: Adam Stambler, Alex Rodrigues, Alexander Schaefer, Andreas Wachaja, Bo Li, Daniel Jartoux, Gabor Meszaros, Jack OQuin, Jose Luis Blanco-Claraco, Joshua Whitley, Kevin Hallenbeck, Kris Kozak, Kun Li, Micho Radovnikovich, Scott K Logan, Thomas Solatges, Todor Stoyanov, William Woodall, jack.oquin, libo24, phussey, piyushk, pomerlef

1.2.0 (2014-08-06)

  • velodyne_pointcloud: remove model-dependent "constants" from rawdata.h (#28)
  • velodyne_pointcloud: change default min_range to 0.9 meters (#25)
  • Added support for YAML-CPP 0.5+ (#23).
  • Add dynamic_reconfigure feature.
  • Add angular limits to the output point cloud, useful for omitting part of it. (#22).
  • Contributors: Jack OQuin, Scott K Logan, Thomas Solatges

1.1.2 (2013-11-05)

  • Move unit test data to download.ros.org (#18).
  • Install missing gen_calibration.py script (#20).

1.1.1 (2013-07-30)

  • Fix lost frame_id transform problem caused by PCL 1.7 fix (#13).
  • Add support for HDL-64E S2 and S2.1 models, which were not working before (#11), thanks to Gabor Meszaros (#12).
  • Add additional parameters to launch files (#14).
  • Contributors: Gabor Meszaros, Jack OQuin

1.1.0 (2013-07-16)

  • Fix build problems due to PCL 1.7 API incompatibilities (#8), thanks to William Woodall. This version also works with Groovy, as long as the correct pcl_conversions is installed.
  • Fix errors with Mac OSX compiler (#8).
  • Install pluginlib XML files (#9).
  • Install some launch and parameter files.
  • Enable unit tests when CATKIN_ENABLE_TESTING is set (#10).

1.0.1 (2013-06-15)

  • Declare explicit pluginlib dependency (#4).

1.0.0 (2013-06-14)

  • Convert to catkin (#1).
  • Release to Hydro.

0.9.2 (2013-07-08)

  • Fix Groovy build problem (#7).

0.9.1 (2012-06-05)

  • Only include "enabled" lasers in YAML calibration file.
  • New param subdirectory for parameter files.
  • Add launch file for the HDL-32E.
  • Add rviz_points.vcg file for viewing Velodyne point clouds with rviz.
  • Fix bug when reading configuration with default minIntensity.
  • Add unit tests with 32E data.
  • Released to Electric, Fuerte and Groovy.

0.9.0 (2012-04-03)

  • Completely revised API, anticipating a 1.0.0 release.
  • HDL-32E device support.
  • New YAML configuration file format.
  • New velodyne_driver and velodyne_pointcloud packages.
  • Old velodyne_common and velodyne_pcl packages no longer included.
  • Released to Electric, Fuerte and Groovy.

0.2.6 (2011-02-23)

  • Label all timing-dependent tests "realtime" so they do not run by default on the build farm machines.

0.2.5 (2010-11-19)

  • Initial implementation of new 0.3 interfaces.
  • Support for ROS 1.3 [std_msgs::Header]{.title-ref} changes.

0.2.0 (2010-08-17)

  • Initial release to ROS C-turtle.

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.

Launch files

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged velodyne_pointcloud at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.5.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/velodyne.git
VCS Type git
VCS Version ros2
Last Updated 2024-10-31
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

Point cloud conversions for Velodyne 3D LIDARs.

Additional Links

Maintainers

  • Josh Whitley

Authors

  • Jack O'Quin
  • Piyush Khandelwal
  • Jesse Vera
  • Andreas Klintberg

Velodyne ROS 2 raw to pointcloud converters

This is a ROS 2 package that takes raw velodyne data as output by the velodyne_driver node, and converts it into a sensor_msgs/PointCloud2 message.

There are two different nodes here:

velodyne_convert_node - This node takes in the raw data and converts it to a pointcloud immediately. velodyne_transform_node - This node takes the raw data and converts it only when a corresponding tf message with a compatible timestamp has arrived.

The topics and parameters for both nodes are identical, so they’ll be described together below.

Published Topics

  • velodyne_points (sensor_msgs/PointCloud2) - The pointcloud that results from the raw velodyne data.

Subscribed Topics

  • velodyne_packets (velodyne_msgs/VelodyneScan) - The raw velodyne packets coming from the velodyne_driver.

Parameters

  • calibration (string) - The path to the calibration file for the particular device. There are a set of default calibration files to start with in the “params” subdirectory in this package. Defaults to the empty string.
  • min_range (double) - The minimum range in meters that a point must be to be added to the resulting point cloud. Points closer than this are discarded. Must be between 0.1 and 10.0. Defaults to 0.9.
  • max_range (double) - The maximum range in meters that a point must be to be added to the resulting point cloud. Points further away than this are discarded. Must be between 0.1 and 200.0. Defaults to 130.0.
  • view_direction (double) - The point around the circumference of the device, in radians, to “center” the view. Combined with view_width, this allows the node to generate a pointcloud only for the given width, centered at this point. This can vastly reduce the CPU requirements of the node. Must be between -Pi and Pi, where 0 is straight ahead from the device. Defaults to 0.0.
  • view_width (double) - The width, in radians, of the view to generate for the resulting pointcloud. Combined with view_direction, this allows the node to generate a pointcloud only for the given width, centered at the view_direction point. This can vastly reduce the CPU requirements of the node. Must be between 0 and 2Pi. Defaults to 2Pi.
  • organize_cloud (bool) - Whether to organize the cloud by ring (True), or to use the order as it comes directly from the driver (False). Defaults to True.
  • target_frame (string) - The coordinate frame to apply to the generated point cloud header before publishing. If the empty string (the default), the frame is passed along from the driver packet. If this frame is different than the fixed_frame, a transformation to this coordinate frame is performed while creating the pointcloud.
  • fixed_frame (string) - The fixed coordinate frame to transform the data from.
CHANGELOG

Change history

2.5.1 (2024-10-31)

  • Fix compiling on RHEL-8. (#549)
  • Contributors: Chris Lalancette

2.5.0 (2024-10-30)

  • Clalancette/cmake cleanups (#546)
  • Fix exports (#535)
  • Add in the Eigen dependency to velodyne_pointcloud (#545)
  • Add package to compile in Jazzy (#539)
  • Feature script add two pt ros2 (#498)
  • delete unused valiable (#529)
  • Add vert offset corrections to VLP16 calib file (#518)
  • Fix double-include.
  • feat: support vls128 for ros2 (#493)
  • Update rolling ci (#512) (#513)
  • Contributors: Chris Lalancette, Daisuke Nishimatsu, Joshua Whitley, Mateusz Szczygielski, Pierrick Koch, Taiga Takano, Thomas Emter, g-kurz

2.4.0 (2023-05-27)

2.3.0 (2022-07-08)

  • Passing fixed_frame and target_frame to Convert object. (#330) (#451) Co-authored-by: Joshua Whitley <<jwhitley@autonomoustuff.com>>
  • Updating maintainer email address. (#450)
    • Updating maintainer email address.

    * chore: update maintainer email address Co-authored-by: Joshua Whitley <<jwhitley@autonomoustuff.com>>

  • Add per point time field (#440)
    • Initial commit to timestamp each point using the timing spec in the manuals
    • Added model param to each of the cloud nodelet starters
    • Minor cleanup. added author tag to rawdata
    • Move timing offsets functionality into class private. Also fix linter errors
    • added #include <vector> for linter
    • fix: suppress compiler warning

    * feat: change XYZIR to XYZIRT Co-authored-by: Shawn Hanna <<shawn@kaarta.com>>

  • Link against yaml-cpp (#443)
  • Increase the max_range of the 32C launch file (#323) (#441) Co-authored-by: Shawn Hanna <<50845122+kaarta-SHanna@users.noreply.github.com>>
  • fix for #267, transform each packet (#438)
    • fix for #267, transform each packet

    * fix: fix scope of access modifiers Co-authored-by: Sebastian <<spuetz@uos.de>>

  • Replace deprecated argument names in launch (#430)
  • 2.1.1
  • Updating for first Galactic release
  • Contributors: Daisuke Nishimatsu, Joshua Whitley, Keane Quigley, Stephan Sundermann

2.1.1 (2021-08-23)

2.1.0 (2020-07-10)

2.0.0 (2020-07-10)

  • More fixing of dependencies. (#333)
    • More fixing of dependencies.
  • Fixes pointed out by clang-tidy (#310)
    • Rearrange header includes so clang-tidy is happy.
    • Get rid of unnecessary void arguments on methods.
    • Properly mark methods as override where appropriate.
    • Initialize members and stack variables to zero before use.
    • Mark function implementations in header files 'inline'.
    • Use more efficient 'empty' method instead of empty string.
    • Get rid of unnecessary else statements after a continue/return.
    • Get rid of unnecessary == false use.
    • Make sure to add a virtual destructor to DataContainerBase.
    • Use string != comparison instead of 'compare' method.
    • Rename PointcloudXYZIR parameter name to match implementation.
    • Get rid of usage of typedef.
    • Be more explicit about using floats.
    • Do an explicit lround to do int->float conversion.
    • Fix the intensity calculation.
    • Remove the azimuth from addPoint.
    • Make sure to reset the cloud data to 0 before reusing.
    • Use underscores on pointcloud member variables.
    • Using std::lround means we don't need to add 0.5 to the result.
    • Slightly rearrange and simplify range checks.
    • Add in example launch files for VLP32C.
  • A few more minor style updates. (#308)
    • Get rid of the last users of new in the codebase
    • Get rid of the users of 'using' in the codebase
    • Rename 'calibrationFile' -> 'calibration_file'
  • Dashing fixes (#307)
    • Use std::make_unique as appropriate.
    • Fix the azimuth calculation.
    • Fix a crash during driver startup.
    • Always recalculate the row_step while setting up the cloud.
    • Make sure to call computeTransformation.
    • Fix style errors pointed out by flake8.
  • ROS2: Add Linters to velodyne_pointcloud (#304)
    • VP: Renaming files.
    • VP: Fixed copyrights.
    • VP: cpplint is satisfied!
    • VP: Converted gen_calibration.py to Python3.
    • Uncrustify fixed!
    • VP: Lint errors clear.
    • VP: Moving organized_cloud and pointcloud to lib and building as library.
  • Check for intra-process subscribers
  • Add in example launch files.
  • Disable copy, move, and assign operators.
  • Build the components so the velodyne can be run as a component.
  • Add in NodeOptions to node constructors.
  • Only find the "common" component to PCL.
  • Make sure to install the header files for laserscan and pointcloud.
  • Properly setup the row_step.
  • Add explicit, final, and override to classes where appropriate.
  • Remove organize_cloud, fixed_frame, and target_frame configs.
  • Stop storing view_{direction,width} in the Node classes.
  • Stop storing {min,max}_range in the Node classes.
  • Make DataContainerBase::configure const reference string parameters.
  • Switch argument order to always be (min,max)
  • Remove tmp_{min,max}_angle from stored RawData config.
  • Remove unused tf_ptr.
  • Switch container_ptr to a unique_ptr.
  • container_ptr -> container_ptr_
  • Don't store number of lasers in the Transfrom/Convert node.
  • Make the RawData class RAII-style.
  • Make RawData::setup not return the number of lasers.
  • Remove unused laser_corrections_maps.
  • Remove the calibration read method.
  • Make the Calibration class only have the RAII-style constructor.
  • Remove unnecessary ros_info parameter from Calibration.
  • Remove unused calibration write method.
  • Remove unused setupOffline method.
  • Remove calibrationFile from rawdata config.
  • Switch to using nullptr everywhere.
  • fixed timpepoint issue
  • Remove dead store from rawdata.cc
  • Rename nodes.
  • Switch organize_cloud to true by default.
  • Update the documentation for ROS 2.
  • Remove debugging statements.
  • Fix dead pointers in calibration.cc.
  • Merge pull request #251 from clalancette/dashing-devel3 ROS 2 Dashing port
  • Merge pull request #214 from spuetz/feature/opc_nopcl Container cleanup and organized pointclouds
  • Merge pull request #236 from mpitropov/fix_transform_node_frame_bug set correct output frame
  • Merge pull request #234 from kmhallen/c++11 Set minimum C++ standard to C++11
  • Merge pull request #231 from ros-drivers/ci/test_better_output CI: Adding roslint as separate step. Limiting output of catkin build.
  • Merge pull request #227 from ros-drivers/roslint Applying roslint to velodyne_pointcloud.
  • Merge pull request #223 from mpitropov/feat_Add_fixed_frame Add fixed frame and use ros message time within transform node
  • Merge pull request #224 from mpitropov/feat_add_diagnostics Added diagnostic publishing
  • Merge pull request #222 from mpitropov/feat_Use_GPS_time Add flag to enable using GPS time from within the Velodyne packet instead of ROS time for scan.
  • Contributors: Andreas Klintberg, Chris Lalancette, Ian Colwell, Joshua Whitley, Kevin Hallenbeck, Matthew Pitropov, P. J. Reed, Sebastian, Sebastian Pütz

1.5.2 (2019-01-28)

  • Merge pull request #205 from xiesc/master support for 64E-S3
  • add an example yaml file for S3
  • Contributors: Joshua Whitley, Shichao XIE, xiesc

1.5.1 (2018-12-10)

  • Merge pull request #194 from ros-drivers/avoid_unnecessary_computation Avoid unnecessary computation - causes approximately 20% performance increase on VLP-32C - should be similar for other sensors
  • std::vector<>::reserve is your friend
  • add static to avoid frequence memory allocation
  • avoid unecesary calculations in unpack()
  • Contributors: Davide Faconti, Joshua Whitley

1.5.0 (2018-10-19)

  • Merge pull request #164 from ros-drivers/maint/vlp_32c_support Adding VLP-32C support. This was tested by AutonomouStuff and several external users. Though it does not include new information that I've learned (it appears that the distance resolution is different <50m vs >=50m), it is a good start.
  • Merge pull request #189 from kveretennicov/patch-1
  • Fix malformed plugin description XML ROS pluginlib only recognizes multiple <library> elements if they are under <class_libraries> XML root. It silently ignores malformed XMLs with multiple <library> "root"s and just reads the first one, due to relaxed way tinyxml2 does parsing. Though if you do [rosrun nodelet declared_nodelets]{.title-ref}, the issue is reported properly. See also similar issue in https://github.com/ros-perception/perception_pcl/issues/131
  • Adding distance_resolution to test yaml files.
  • Adding VLP-32C support. Based on work done by \@rockcdr. Adds distance_resolution calibration value to support 0.004m distance resolution for VLP-32C.
  • Contributors: Joshua Whitley, Konstantin Veretennicov

1.4.0 (2018-09-19)

  • Merge pull request #178 from sts-thm/bugfix_issue_#174 Bugfix issue #174
  • Merge pull request #177 from C-NR/feature/WrapPointcloudData Feature/wrap pointcloud data
  • Changes fixing deadlock for specific cut_angle values.
  • moved definition of VPoint and VPointCloud back to namespace rawdata in rawdata.h
  • put a wrapper around pointcloud data including a generic setter method to enable the use of arbitrary data structures (pcl pointcloud, depth image, octomaps and so on) to be filled by just using RawData::unpack method with the wrapper object as parameter
  • Merge pull request #170 from ros-drivers/maint/move_header_files Moving header files to traditional location inside include folders.
  • Merge pull request #160 from ros-drivers/maint/updating_package_xml_to_v2
  • Updated all package.xmls to ver 2. Cleaned up catkin_lint errors. All package.xml files are now compatible with version 2 of the package.xml specification in REP 140. Removed some unnecessary execute permissions on a few files. Fixed a missing test_depend.
  • Merge pull request #136 from stsundermann/patch-1 Use std::abs instead of abs
  • Adding missing 32C configuration file.
  • Merge pull request #139 from ASDeveloper00/vlp32 Adding support for VLP-32C.
  • Merge pull request #138 from volkandre/cut_at_specified_angle_feature Cut at specified angle feature
  • Updated default cut_angle parameters in launch files after switching from deg to rad.
  • Use std::abs instead of abs abs is the c version which returns an integer. This is probably not intended here, so use the templated std::abs function.
  • Contributors: Andre Volk, Autonomoustuff Developer, CNR, Joshua Whitley, Kyle Rector, Stephan Sundermann, Tobias Athmer, kennouni

1.3.0 (2017-11-10)

  • Merge pull request #110 from kmhallen/master Added velodyne_laserscan package
  • Merge remote-tracking branch ros-drivers/master
  • Merge pull request #129 from kmhallen/pluginlib_macro Modern pluginlib macro
  • Update to use non deprecated pluginlib macro
  • Merge pull request #127 from swri-robotics/add_vlp16_hires_support Add VLP16 Puck Hi-Res config file
  • Add VLP16 Puck Hi-Res support
  • velodyne_pointcloud: remove incorrect catkin_package() DEPENDS option (#93) This eliminates a CMake warning when building on Xenial.
  • Merge pull request #111 from OrebroUniversity/master Added an interface to set up raw data processing offline
  • Added an interface to set up raw data processing from a locally defined calibration file. This method is useful when processing data offline from a bag file, without starting any ros master
  • Added velodyne_laserscan package and inserted into existing launch files
  • test multiple nodelet manager support (#108)
  • add launch args to support multiple devices (#108)
  • Merge pull request #105 from fudger/patch-1 Remove unused constants.
  • Merge pull request #104 from altrouge/launch_options Add more options in launch files.
  • Rearranged alphabetically.
  • Remove unused constants. DISTANCE_MAX and DISTANCE_MAX_UNITS are not used anywhere in the code. Furthermore, using them would lead to errors as both VLP-64 manuals state that returns above 120 m should not be used. The VLP-32 manual allows 70 m as the maximum valid sensor range.
  • Merge pull request #103 from fudger/patch-1 Fix misleading typecasts.
  • Add more options in launch files.
    • rpm, device_ip, port, read_once, read_fast, repeat_delay
  • Fix misleading typecasts. intensity and VPoint::intensity are both of type float.
  • update change history
  • merge current master (#94)
  • Merge pull request #92 from adasta/master GCC Build Warnings
  • Modified velodyne_point_cloud/src/lib/rawdata.cc to address warning that last_azimuth_diff variable may be used uninitialized. Variable is now initialized to 0 at creation. velodyne/velodyne_pointcloud/src/lib/rawdata.cc:328:57: error: ‘last_azimuth_diff’ may be used uninitialized in this function [-Werror=maybe-uninitialized] azimuth_corrected_f = azimuth + (azimuth_diff * ((dsr*VLP16_DSR_TOFFSET) + (firing*VLP16_FIRING_TOFFSET)) / VLP16_BLOCK_TDURATION);
  • Modified velodyne_pointcloud/src/conversion/colors.cc to remove address build warning for strict-aliasing. velodyne/velodyne_pointcloud/src/conversions/colors.cc:84:58:
  • Merge pull request #89 from Tones29/feat_dynrec_driver Add dynamic latency configuration to velodyne_driver
  • velodyne_pointcloud: Fix compile warning "Wrong initialization order"
  • velodyne_pointcloud: add dynamic reconfig update to change log (#78)
  • Merge branch fudger-reconfigure_transform_node
  • velodyne_pointcloud: use recommended add_dependencies() CMake variable #78
  • velodyne_pointcloud: fix transform unit tests Use tf2_ros static_transform_publisher for more consistent timing (#2)
  • Merge branch reconfigure_transform_node of https://github.com/fudger/velodyne
  • prepare change history for coming Indigo release (#59)
  • calibration: unit test case improvements (#84)
  • calibration: read all intensities as float, then convert (#84)
  • calibration: add gtest for #84 This currently fails on 64e_s2.1-sztaki.yaml and on issue_84_float_intensities.yaml.
  • calibration: make max_intensity and min_intensity optional (#84) This fixes a regression in the 32e and VLP-16 calibrations which do not contain intensity values. There is still a problem with the 64e_s2.1 calibration.
  • Merge pull request #76 from pomerlef/master Sign inversion in some equations
  • Merge pull request #82 from ros-drivers/fix_pr_80 Fix pr 80; adding travis CI tests.
  • fix the yaml-cpp 0.5 code paths
  • Merge pull request #80 from ros-drivers/fix_yaml_import allow floats in min/max_intensity and make horiz_offset_correction optional
  • allow horiz_offset_correction to be optional with 0 as default
  • allow floats instead of ints in min/max_intensity
  • Resolve frame ID name using tf prefix.
  • Improve coding style.
  • Set up dynamic reconfiguration for transform_node. Previously, transform_node has neither read parameters other than frame_id from the command line nor has it exposed these parameters via dynamic reconfigure. As parameters like max_range and view_width have been initialized to zero, the inconfigurable transform_node has returned an empty point cloud. Now, transform_node launches an reconfigure server just as cloud_node. In contrast to cloud_node, transform node exposes another parameter for dynamic reconfiguration: frame_id, i.e. the frame of reference the incoming Velodyne points are transformed to.
  • Merge pull request #77 from fudger/pretty_print Fix output of calibration data onto console
  • Add a missing space.
  • Fix line that always indicates use of model VLP-16.
  • Align console output of calibration data.
  • Merge branch master of https://github.com/ros-drivers/velodyne
  • resolve sign error
  • Merge pull request #73 from fudger/master Correct important data type error for VLP-16
  • Fix data type error that distorts the point cloud.
  • Fix and add a few comments.
  • Merge pull request #68 from jlblancoc/patch-1 Remove unused variable
  • Remove unused variable I think that [dsr]{.title-ref} was unused. See line 317: for (int dsr=0; ...
  • VLP-16: skip badly formatted data packets (#62, #63)
  • restore VLP-16 min_range setting to 0.4 (#60) NOTE: There is still some other problem keeping that from working.
  • permit min_range settings below 0.9 meters (#60) No known models are currently known to return closer measurements.
  • Merge pull request #55 from lemiant/azimuth_bug_VLP16 Fixed azimuth overflow bug.
  • Fixed azimuth overflow bug. For interpolated azimuth values between 35999.5 and 36000.0 the nested round(fmod()) yields a value of 36000 which is invalid and overflows the pre-computed sin/cos arrays, since they only go form 0..35999
  • Merge pull request #51 from kunlileo/master Added vertical sin angle correction
  • Added vertical sin angle correction
  • Merge pull request #47 from prclibo/master fixed rounding bug in intensity calculation found by songshiyu
  • fixed rounding bug in intensity calculation found by songshiyu
  • fix some overly long C++ source lines
  • Merge pull request #44 from SISegwayRmp/master adding driver and pointcloud support for the VLP16
  • missed the space in the file name which caused the build to fail, removed space before extension
  • adding the VLP16 test scripts and updating the CMakeLists to include the test file from http://download.ros.org/data/velodyne/vlp16.pcap
  • adding support for the VLP16
  • Merge pull request #43 from prclibo/fix_rawdata fixed point computation according to the 64e_s2(.1) velodyne manual
  • fixed point computation according to the 64e_s2(.1) velodyne manual, with luopei"s help
  • Merge pull request #41 from prclibo/master fixed a calibration file parsing bug
  • Merge pull request #42 from prclibo/fix_gen_calibration fixed gen_calibration min/max intensity type
  • fixed gen_calibration min/max intensity type
  • fixed a calibration file parsing bug
  • Contributors: Adam Stambler, Alex Rodrigues, Alexander Schaefer, Andreas Wachaja, Bo Li, Daniel Jartoux, Gabor Meszaros, Jack OQuin, Jose Luis Blanco-Claraco, Joshua Whitley, Kevin Hallenbeck, Kris Kozak, Kun Li, Micho Radovnikovich, Scott K Logan, Thomas Solatges, Todor Stoyanov, William Woodall, jack.oquin, libo24, phussey, piyushk, pomerlef

1.2.0 (2014-08-06)

  • velodyne_pointcloud: remove model-dependent "constants" from rawdata.h (#28)
  • velodyne_pointcloud: change default min_range to 0.9 meters (#25)
  • Added support for YAML-CPP 0.5+ (#23).
  • Add dynamic_reconfigure feature.
  • Add angular limits to the output point cloud, useful for omitting part of it. (#22).
  • Contributors: Jack OQuin, Scott K Logan, Thomas Solatges

1.1.2 (2013-11-05)

  • Move unit test data to download.ros.org (#18).
  • Install missing gen_calibration.py script (#20).

1.1.1 (2013-07-30)

  • Fix lost frame_id transform problem caused by PCL 1.7 fix (#13).
  • Add support for HDL-64E S2 and S2.1 models, which were not working before (#11), thanks to Gabor Meszaros (#12).
  • Add additional parameters to launch files (#14).
  • Contributors: Gabor Meszaros, Jack OQuin

1.1.0 (2013-07-16)

  • Fix build problems due to PCL 1.7 API incompatibilities (#8), thanks to William Woodall. This version also works with Groovy, as long as the correct pcl_conversions is installed.
  • Fix errors with Mac OSX compiler (#8).
  • Install pluginlib XML files (#9).
  • Install some launch and parameter files.
  • Enable unit tests when CATKIN_ENABLE_TESTING is set (#10).

1.0.1 (2013-06-15)

  • Declare explicit pluginlib dependency (#4).

1.0.0 (2013-06-14)

  • Convert to catkin (#1).
  • Release to Hydro.

0.9.2 (2013-07-08)

  • Fix Groovy build problem (#7).

0.9.1 (2012-06-05)

  • Only include "enabled" lasers in YAML calibration file.
  • New param subdirectory for parameter files.
  • Add launch file for the HDL-32E.
  • Add rviz_points.vcg file for viewing Velodyne point clouds with rviz.
  • Fix bug when reading configuration with default minIntensity.
  • Add unit tests with 32E data.
  • Released to Electric, Fuerte and Groovy.

0.9.0 (2012-04-03)

  • Completely revised API, anticipating a 1.0.0 release.
  • HDL-32E device support.
  • New YAML configuration file format.
  • New velodyne_driver and velodyne_pointcloud packages.
  • Old velodyne_common and velodyne_pcl packages no longer included.
  • Released to Electric, Fuerte and Groovy.

0.2.6 (2011-02-23)

  • Label all timing-dependent tests "realtime" so they do not run by default on the build farm machines.

0.2.5 (2010-11-19)

  • Initial implementation of new 0.3 interfaces.
  • Support for ROS 1.3 [std_msgs::Header]{.title-ref} changes.

0.2.0 (2010-08-17)

  • Initial release to ROS C-turtle.

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.

Launch files

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged velodyne_pointcloud at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.7.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/velodyne.git
VCS Type git
VCS Version master
Last Updated 2023-06-01
Dev Status DEVELOPED
CI status
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Point cloud conversions for Velodyne 3D LIDARs.

Additional Links

Maintainers

  • Josh Whitley

Authors

  • Jack O'Quin
  • Piyush Khandelwal
  • Jesse Vera
  • Sebastian Pütz
README
No README found. See repository README.
CHANGELOG

Change history

1.7.0 (2022-07-08)

  • build timings in offline setup (#428) Currently when using the offline setup, it does not build the per-point timing offsets which means when unpacking the packets in the offline mode, you cannot timestamp each point with its packet time. This commit does the following:
    • call buildTimings from setupOffline function
    • add model to setupOffline interface
    • set config model param which is needed by buildTimings
  • vls128: add line only once all four banks are processed (#413)
  • PCAP timestamps & PCAP+GPS timestamps (#384)
    • Add pcap_time param and implement gps_time with it
    • If gps_time == true, ignore pcap_time
  • Fixed row_step=0 when init_width=0 (dense cloud) (#404) The PointCloud2 msg will be then valid: http://docs.ros.org/en/melodic/api/sensor_msgs/html/msg/PointCloud2.html Referred issues:
  • Fix accidental integer division (#391) Intensity values for VLP-16 were being calculated incorrectly.
  • Add VLS128 launch and calibration file (#382)
  • Fixing incorrect type in velodyne_pointcloud.
  • Fixing typo.
  • Add support for the velodyne Alpha Prime (#370)
    • Add support for the velodyne Alpha Prime
    • Change packet rate for the VLS128 according to the times specified in the manual
    • Organize setup functions to avoid code duplication. Add a constant for the model ID of the VLS128.

    * Use the defined constants to calculate the time offset of the points for the VLS128 Co-authored-by: jugo <<juan.gonzalez@unibw.de>>

  • Contributors: Daisuke Nishimatsu, HMellor, Institute for Autonomous Systems Technology, Joshua Whitley, Martin Valgur, Nick Charron, Sebastian Scherer, matlabbe

1.6.1 (2020-11-09)

  • Add invalid points in organized cloud (#360)
    • Set NaN in ordered point cloud in case of no return
    • Adapt to current master

    * consider min/max angle and timing_offsets also in organized mode Co-authored-by: Nuernberg Thomas (CR/AEV4) <<thomas.nuernberg@de.bosch.com>>

  • build and export library data_containers so it can be used in other packages (#359)
  • Contributors: Sebastian Scherer

1.6.0 (2020-07-09)

  • Unify tf frame parameters between transform and cloud nodes (#344)
    • Unify tf frame parameters between transform and cloud nodes
    • Use more common ROS terminology instead of 'htm'
    • Just use tf listener when necessary
    • Migrate package to tf2
    • Explicitly store sensor frame in a dedicated variable to make code easier to read

    * Avoid unnecessary transforms when sensor_frame == target_frame Co-authored-by: anre <<andreas.reich@unibw.de>>

  • Velodyne pcl (#335)
    • fix time assignment in organized cloud container
    • add velodyne_pcl package with point_types.h
    • add README.md with infos for conversion
    • rename containers to cover the added time property

    * Update package.xml to Format2 and package version to 1.5.2 Co-authored-by: Joshua Whitley <<josh.whitley@autoware.org>>

  • Passing fixed_frame and target_frame to Convert object. (#330)
  • Updating maintainer email address.
  • Increase the max_range of the 32C launch file (#323)
  • Getting model param for timings from private node handle. (#318)
  • updated model to have a default of "" so that tests run successfully
  • Move timing offsets functionality into class private. Also fix linter errors
  • Added model param to each of the cloud nodelet starters
  • Initial commit to timestamp each point using the timing spec in the manuals
  • use correct node handles and node names for diagnostic_updater::Updater
  • Added config option to timestamp a full scan based on first velo packet instead of last packet
  • Remove a dead store from rawdata.cc.
  • fix for #267, transform each packet
  • Merge pull request #250 from zhixy/master bug fix for row step
  • Merge pull request #253 from ros-drivers/fix/fixed_frame_target_frame Add configurable fixed_frame/target_frame for velodyne_pointcloud
  • Merge pull request #214 from spuetz/feature/opc_nopcl Container cleanup and organized pointclouds
  • Merge pull request #236 from mpitropov/fix_transform_node_frame_bug set correct output frame
  • Merge pull request #234 from kmhallen/c++11 Set minimum C++ standard to C++11
  • Merge pull request #223 from mpitropov/feat_Add_fixed_frame Add fixed frame and use ros message time within transform node
  • Made static tf publisher test adhere to REP 105
  • change more odom to map
  • Merge pull request #224 from mpitropov/feat_add_diagnostics Added diagnostic publishing
  • Merge pull request #222 from mpitropov/feat_Use_GPS_time Add flag to enable using GPS time from within the Velodyne packet instead of ROS time for scan.
  • Created gps_time param to enable this feature
  • Contributors: AndreasR30, Chris Lalancette, Daniel Seifert, Ian Colwell, Joshua Whitley, Kevin Hallenbeck, Matthew Pitropov, Sebastian, Sebastian Pütz, Shawn Hanna, zhixiangyang

1.5.2 (2019-01-28)

  • Merge pull request #205 from xiesc/master support for 64E-S3
  • add an example yaml file for S3
  • Contributors: Joshua Whitley, Shichao XIE, xiesc

1.5.1 (2018-12-10)

  • Merge pull request #194 from ros-drivers/avoid_unnecessary_computation Avoid unnecessary computation - causes approximately 20% performance increase on VLP-32C - should be similar for other sensors
  • std::vector<>::reserve is your friend
  • add static to avoid frequence memory allocation
  • avoid unecesary calculations in unpack()
  • Contributors: Davide Faconti, Joshua Whitley

1.5.0 (2018-10-19)

  • Merge pull request #164 from ros-drivers/maint/vlp_32c_support Adding VLP-32C support. This was tested by AutonomouStuff and several external users. Though it does not include new information that I've learned (it appears that the distance resolution is different <50m vs >=50m), it is a good start.
  • Merge pull request #189 from kveretennicov/patch-1
  • Fix malformed plugin description XML ROS pluginlib only recognizes multiple <library> elements if they are under <class_libraries> XML root. It silently ignores malformed XMLs with multiple <library> "root"s and just reads the first one, due to relaxed way tinyxml2 does parsing. Though if you do [rosrun nodelet declared_nodelets]{.title-ref}, the issue is reported properly. See also similar issue in https://github.com/ros-perception/perception_pcl/issues/131
  • Adding distance_resolution to test yaml files.
  • Adding VLP-32C support. Based on work done by \@rockcdr. Adds distance_resolution calibration value to support 0.004m distance resolution for VLP-32C.
  • Contributors: Joshua Whitley, Konstantin Veretennicov

1.4.0 (2018-09-19)

  • Merge pull request #178 from sts-thm/bugfix_issue_#174 Bugfix issue #174
  • Merge pull request #177 from C-NR/feature/WrapPointcloudData Feature/wrap pointcloud data
  • Changes fixing deadlock for specific cut_angle values.
  • moved definition of VPoint and VPointCloud back to namespace rawdata in rawdata.h
  • put a wrapper around pointcloud data including a generic setter method to enable the use of arbitrary data structures (pcl pointcloud, depth image, octomaps and so on) to be filled by just using RawData::unpack method with the wrapper object as parameter
  • Merge pull request #170 from ros-drivers/maint/move_header_files Moving header files to traditional location inside include folders.
  • Merge pull request #160 from ros-drivers/maint/updating_package_xml_to_v2
  • Updated all package.xmls to ver 2. Cleaned up catkin_lint errors. All package.xml files are now compatible with version 2 of the package.xml specification in REP 140. Removed some unnecessary execute permissions on a few files. Fixed a missing test_depend.
  • Merge pull request #136 from stsundermann/patch-1 Use std::abs instead of abs
  • Adding missing 32C configuration file.
  • Merge pull request #139 from ASDeveloper00/vlp32 Adding support for VLP-32C.
  • Merge pull request #138 from volkandre/cut_at_specified_angle_feature Cut at specified angle feature
  • Updated default cut_angle parameters in launch files after switching from deg to rad.
  • Use std::abs instead of abs abs is the c version which returns an integer. This is probably not intended here, so use the templated std::abs function.
  • Contributors: Andre Volk, Autonomoustuff Developer, CNR, Joshua Whitley, Kyle Rector, Stephan Sundermann, Tobias Athmer, kennouni

1.3.0 (2017-11-10)

  • Merge pull request #110 from kmhallen/master Added velodyne_laserscan package
  • Merge remote-tracking branch ros-drivers/master
  • Merge pull request #129 from kmhallen/pluginlib_macro Modern pluginlib macro
  • Update to use non deprecated pluginlib macro
  • Merge pull request #127 from swri-robotics/add_vlp16_hires_support Add VLP16 Puck Hi-Res config file
  • Add VLP16 Puck Hi-Res support
  • velodyne_pointcloud: remove incorrect catkin_package() DEPENDS option (#93) This eliminates a CMake warning when building on Xenial.
  • Merge pull request #111 from OrebroUniversity/master Added an interface to set up raw data processing offline
  • Added an interface to set up raw data processing from a locally defined calibration file. This method is useful when processing data offline from a bag file, without starting any ros master
  • Added velodyne_laserscan package and inserted into existing launch files
  • test multiple nodelet manager support (#108)
  • add launch args to support multiple devices (#108)
  • Merge pull request #105 from fudger/patch-1 Remove unused constants.
  • Merge pull request #104 from altrouge/launch_options Add more options in launch files.
  • Rearranged alphabetically.
  • Remove unused constants. DISTANCE_MAX and DISTANCE_MAX_UNITS are not used anywhere in the code. Furthermore, using them would lead to errors as both VLP-64 manuals state that returns above 120 m should not be used. The VLP-32 manual allows 70 m as the maximum valid sensor range.
  • Merge pull request #103 from fudger/patch-1 Fix misleading typecasts.
  • Add more options in launch files.
    • rpm, device_ip, port, read_once, read_fast, repeat_delay
  • Fix misleading typecasts. intensity and VPoint::intensity are both of type float.
  • update change history
  • merge current master (#94)
  • Merge pull request #92 from adasta/master GCC Build Warnings
  • Modified velodyne_point_cloud/src/lib/rawdata.cc to address warning that last_azimuth_diff variable may be used uninitialized. Variable is now initialized to 0 at creation. velodyne/velodyne_pointcloud/src/lib/rawdata.cc:328:57: error: ‘last_azimuth_diff’ may be used uninitialized in this function [-Werror=maybe-uninitialized] azimuth_corrected_f = azimuth + (azimuth_diff * ((dsr*VLP16_DSR_TOFFSET) + (firing*VLP16_FIRING_TOFFSET)) / VLP16_BLOCK_TDURATION);
  • Modified velodyne_pointcloud/src/conversion/colors.cc to remove address build warning for strict-aliasing. velodyne/velodyne_pointcloud/src/conversions/colors.cc:84:58:
  • Merge pull request #89 from Tones29/feat_dynrec_driver Add dynamic latency configuration to velodyne_driver
  • velodyne_pointcloud: Fix compile warning "Wrong initialization order"
  • velodyne_pointcloud: add dynamic reconfig update to change log (#78)
  • Merge branch fudger-reconfigure_transform_node
  • velodyne_pointcloud: use recommended add_dependencies() CMake variable #78
  • velodyne_pointcloud: fix transform unit tests Use tf2_ros static_transform_publisher for more consistent timing (#2)
  • Merge branch reconfigure_transform_node of https://github.com/fudger/velodyne
  • prepare change history for coming Indigo release (#59)
  • calibration: unit test case improvements (#84)
  • calibration: read all intensities as float, then convert (#84)
  • calibration: add gtest for #84 This currently fails on 64e_s2.1-sztaki.yaml and on issue_84_float_intensities.yaml.
  • calibration: make max_intensity and min_intensity optional (#84) This fixes a regression in the 32e and VLP-16 calibrations which do not contain intensity values. There is still a problem with the 64e_s2.1 calibration.
  • Merge pull request #76 from pomerlef/master Sign inversion in some equations
  • Merge pull request #82 from ros-drivers/fix_pr_80 Fix pr 80; adding travis CI tests.
  • fix the yaml-cpp 0.5 code paths
  • Merge pull request #80 from ros-drivers/fix_yaml_import allow floats in min/max_intensity and make horiz_offset_correction optional
  • allow horiz_offset_correction to be optional with 0 as default
  • allow floats instead of ints in min/max_intensity
  • Resolve frame ID name using tf prefix.
  • Improve coding style.
  • Set up dynamic reconfiguration for transform_node. Previously, transform_node has neither read parameters other than frame_id from the command line nor has it exposed these parameters via dynamic reconfigure. As parameters like max_range and view_width have been initialized to zero, the inconfigurable transform_node has returned an empty point cloud. Now, transform_node launches an reconfigure server just as cloud_node. In contrast to cloud_node, transform node exposes another parameter for dynamic reconfiguration: frame_id, i.e. the frame of reference the incoming Velodyne points are transformed to.
  • Merge pull request #77 from fudger/pretty_print Fix output of calibration data onto console
  • Add a missing space.
  • Fix line that always indicates use of model VLP-16.
  • Align console output of calibration data.
  • Merge branch master of https://github.com/ros-drivers/velodyne
  • resolve sign error
  • Merge pull request #73 from fudger/master Correct important data type error for VLP-16
  • Fix data type error that distorts the point cloud.
  • Fix and add a few comments.
  • Merge pull request #68 from jlblancoc/patch-1 Remove unused variable
  • Remove unused variable I think that [dsr]{.title-ref} was unused. See line 317: for (int dsr=0; ...
  • VLP-16: skip badly formatted data packets (#62, #63)
  • restore VLP-16 min_range setting to 0.4 (#60) NOTE: There is still some other problem keeping that from working.
  • permit min_range settings below 0.9 meters (#60) No known models are currently known to return closer measurements.
  • Merge pull request #55 from lemiant/azimuth_bug_VLP16 Fixed azimuth overflow bug.
  • Fixed azimuth overflow bug. For interpolated azimuth values between 35999.5 and 36000.0 the nested round(fmod()) yields a value of 36000 which is invalid and overflows the pre-computed sin/cos arrays, since they only go form 0..35999
  • Merge pull request #51 from kunlileo/master Added vertical sin angle correction
  • Added vertical sin angle correction
  • Merge pull request #47 from prclibo/master fixed rounding bug in intensity calculation found by songshiyu
  • fixed rounding bug in intensity calculation found by songshiyu
  • fix some overly long C++ source lines
  • Merge pull request #44 from SISegwayRmp/master adding driver and pointcloud support for the VLP16
  • missed the space in the file name which caused the build to fail, removed space before extension
  • adding the VLP16 test scripts and updating the CMakeLists to include the test file from http://download.ros.org/data/velodyne/vlp16.pcap
  • adding support for the VLP16
  • Merge pull request #43 from prclibo/fix_rawdata fixed point computation according to the 64e_s2(.1) velodyne manual
  • fixed point computation according to the 64e_s2(.1) velodyne manual, with luopei"s help
  • Merge pull request #41 from prclibo/master fixed a calibration file parsing bug
  • Merge pull request #42 from prclibo/fix_gen_calibration fixed gen_calibration min/max intensity type
  • fixed gen_calibration min/max intensity type
  • fixed a calibration file parsing bug
  • Contributors: Adam Stambler, Alex Rodrigues, Alexander Schaefer, Andreas Wachaja, Bo Li, Daniel Jartoux, Gabor Meszaros, Jack OQuin, Jose Luis Blanco-Claraco, Joshua Whitley, Kevin Hallenbeck, Kris Kozak, Kun Li, Micho Radovnikovich, Scott K Logan, Thomas Solatges, Todor Stoyanov, William Woodall, jack.oquin, libo24, phussey, piyushk, pomerlef

1.2.0 (2014-08-06)

  • velodyne_pointcloud: remove model-dependent "constants" from rawdata.h (#28)
  • velodyne_pointcloud: change default min_range to 0.9 meters (#25)
  • Added support for YAML-CPP 0.5+ (#23).
  • Add dynamic_reconfigure feature.
  • Add angular limits to the output point cloud, useful for omitting part of it. (#22).
  • Contributors: Jack OQuin, Scott K Logan, Thomas Solatges

1.1.2 (2013-11-05)

  • Move unit test data to download.ros.org (#18).
  • Install missing gen_calibration.py script (#20).

1.1.1 (2013-07-30)

  • Fix lost frame_id transform problem caused by PCL 1.7 fix (#13).
  • Add support for HDL-64E S2 and S2.1 models, which were not working before (#11), thanks to Gabor Meszaros (#12).
  • Add additional parameters to launch files (#14).
  • Contributors: Gabor Meszaros, Jack OQuin

1.1.0 (2013-07-16)

  • Fix build problems due to PCL 1.7 API incompatibilities (#8), thanks to William Woodall. This version also works with Groovy, as long as the correct pcl_conversions is installed.
  • Fix errors with Mac OSX compiler (#8).
  • Install pluginlib XML files (#9).
  • Install some launch and parameter files.
  • Enable unit tests when CATKIN_ENABLE_TESTING is set (#10).

1.0.1 (2013-06-15)

  • Declare explicit pluginlib dependency (#4).

1.0.0 (2013-06-14)

  • Convert to catkin (#1).
  • Release to Hydro.

0.9.2 (2013-07-08)

  • Fix Groovy build problem (#7).

0.9.1 (2012-06-05)

  • Only include "enabled" lasers in YAML calibration file.
  • New param subdirectory for parameter files.
  • Add launch file for the HDL-32E.
  • Add rviz_points.vcg file for viewing Velodyne point clouds with rviz.
  • Fix bug when reading configuration with default minIntensity.
  • Add unit tests with 32E data.
  • Released to Electric, Fuerte and Groovy.

0.9.0 (2012-04-03)

  • Completely revised API, anticipating a 1.0.0 release.
  • HDL-32E device support.
  • New YAML configuration file format.
  • New velodyne_driver and velodyne_pointcloud packages.
  • Old velodyne_common and velodyne_pcl packages no longer included.
  • Released to Electric, Fuerte and Groovy.

0.2.6 (2011-02-23)

  • Label all timing-dependent tests "realtime" so they do not run by default on the build farm machines.

0.2.5 (2010-11-19)

  • Initial implementation of new 0.3 interfaces.
  • Support for ROS 1.3 [std_msgs::Header]{.title-ref} changes.

0.2.0 (2010-08-17)

  • Initial release to ROS C-turtle.

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.

Launch files

  • launch/transform_nodelet.launch
    • -*- mode: XML -*-
      • model [default: ]
      • calibration [default: ]
      • fixed_frame [default: ]
      • target_frame [default: ]
      • manager [default: velodyne_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.9]
      • organize_cloud [default: false]
  • launch/VLP-32C_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/VeloView-VLP-32C.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 200.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • pcap_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/64e_S3.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/64e_s3-xiesc.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • pcap_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
  • launch/VLP16_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/VLP16db.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • pcap_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/32e_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/32db.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • pcap_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/laserscan_nodelet.launch
    • -*- mode: XML -*-
      • manager [default: velodyne_nodelet_manager]
      • ring [default: -1]
      • resolution [default: 0.007]
  • launch/VLS128_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/VLS128.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 200.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • tests/static_vehicle_tf.launch
    • -*- mode: XML -*-

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged velodyne_pointcloud at Robotics Stack Exchange

No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 2.5.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/velodyne.git
VCS Type git
VCS Version ros2
Last Updated 2024-10-31
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

Point cloud conversions for Velodyne 3D LIDARs.

Additional Links

Maintainers

  • Josh Whitley

Authors

  • Jack O'Quin
  • Piyush Khandelwal
  • Jesse Vera
  • Andreas Klintberg

Velodyne ROS 2 raw to pointcloud converters

This is a ROS 2 package that takes raw velodyne data as output by the velodyne_driver node, and converts it into a sensor_msgs/PointCloud2 message.

There are two different nodes here:

velodyne_convert_node - This node takes in the raw data and converts it to a pointcloud immediately. velodyne_transform_node - This node takes the raw data and converts it only when a corresponding tf message with a compatible timestamp has arrived.

The topics and parameters for both nodes are identical, so they’ll be described together below.

Published Topics

  • velodyne_points (sensor_msgs/PointCloud2) - The pointcloud that results from the raw velodyne data.

Subscribed Topics

  • velodyne_packets (velodyne_msgs/VelodyneScan) - The raw velodyne packets coming from the velodyne_driver.

Parameters

  • calibration (string) - The path to the calibration file for the particular device. There are a set of default calibration files to start with in the “params” subdirectory in this package. Defaults to the empty string.
  • min_range (double) - The minimum range in meters that a point must be to be added to the resulting point cloud. Points closer than this are discarded. Must be between 0.1 and 10.0. Defaults to 0.9.
  • max_range (double) - The maximum range in meters that a point must be to be added to the resulting point cloud. Points further away than this are discarded. Must be between 0.1 and 200.0. Defaults to 130.0.
  • view_direction (double) - The point around the circumference of the device, in radians, to “center” the view. Combined with view_width, this allows the node to generate a pointcloud only for the given width, centered at this point. This can vastly reduce the CPU requirements of the node. Must be between -Pi and Pi, where 0 is straight ahead from the device. Defaults to 0.0.
  • view_width (double) - The width, in radians, of the view to generate for the resulting pointcloud. Combined with view_direction, this allows the node to generate a pointcloud only for the given width, centered at the view_direction point. This can vastly reduce the CPU requirements of the node. Must be between 0 and 2Pi. Defaults to 2Pi.
  • organize_cloud (bool) - Whether to organize the cloud by ring (True), or to use the order as it comes directly from the driver (False). Defaults to True.
  • target_frame (string) - The coordinate frame to apply to the generated point cloud header before publishing. If the empty string (the default), the frame is passed along from the driver packet. If this frame is different than the fixed_frame, a transformation to this coordinate frame is performed while creating the pointcloud.
  • fixed_frame (string) - The fixed coordinate frame to transform the data from.
CHANGELOG

Change history

2.5.1 (2024-10-31)

  • Fix compiling on RHEL-8. (#549)
  • Contributors: Chris Lalancette

2.5.0 (2024-10-30)

  • Clalancette/cmake cleanups (#546)
  • Fix exports (#535)
  • Add in the Eigen dependency to velodyne_pointcloud (#545)
  • Add package to compile in Jazzy (#539)
  • Feature script add two pt ros2 (#498)
  • delete unused valiable (#529)
  • Add vert offset corrections to VLP16 calib file (#518)
  • Fix double-include.
  • feat: support vls128 for ros2 (#493)
  • Update rolling ci (#512) (#513)
  • Contributors: Chris Lalancette, Daisuke Nishimatsu, Joshua Whitley, Mateusz Szczygielski, Pierrick Koch, Taiga Takano, Thomas Emter, g-kurz

2.4.0 (2023-05-27)

2.3.0 (2022-07-08)

  • Passing fixed_frame and target_frame to Convert object. (#330) (#451) Co-authored-by: Joshua Whitley <<jwhitley@autonomoustuff.com>>
  • Updating maintainer email address. (#450)
    • Updating maintainer email address.

    * chore: update maintainer email address Co-authored-by: Joshua Whitley <<jwhitley@autonomoustuff.com>>

  • Add per point time field (#440)
    • Initial commit to timestamp each point using the timing spec in the manuals
    • Added model param to each of the cloud nodelet starters
    • Minor cleanup. added author tag to rawdata
    • Move timing offsets functionality into class private. Also fix linter errors
    • added #include <vector> for linter
    • fix: suppress compiler warning

    * feat: change XYZIR to XYZIRT Co-authored-by: Shawn Hanna <<shawn@kaarta.com>>

  • Link against yaml-cpp (#443)
  • Increase the max_range of the 32C launch file (#323) (#441) Co-authored-by: Shawn Hanna <<50845122+kaarta-SHanna@users.noreply.github.com>>
  • fix for #267, transform each packet (#438)
    • fix for #267, transform each packet

    * fix: fix scope of access modifiers Co-authored-by: Sebastian <<spuetz@uos.de>>

  • Replace deprecated argument names in launch (#430)
  • 2.1.1
  • Updating for first Galactic release
  • Contributors: Daisuke Nishimatsu, Joshua Whitley, Keane Quigley, Stephan Sundermann

2.1.1 (2021-08-23)

2.1.0 (2020-07-10)

2.0.0 (2020-07-10)

  • More fixing of dependencies. (#333)
    • More fixing of dependencies.
  • Fixes pointed out by clang-tidy (#310)
    • Rearrange header includes so clang-tidy is happy.
    • Get rid of unnecessary void arguments on methods.
    • Properly mark methods as override where appropriate.
    • Initialize members and stack variables to zero before use.
    • Mark function implementations in header files 'inline'.
    • Use more efficient 'empty' method instead of empty string.
    • Get rid of unnecessary else statements after a continue/return.
    • Get rid of unnecessary == false use.
    • Make sure to add a virtual destructor to DataContainerBase.
    • Use string != comparison instead of 'compare' method.
    • Rename PointcloudXYZIR parameter name to match implementation.
    • Get rid of usage of typedef.
    • Be more explicit about using floats.
    • Do an explicit lround to do int->float conversion.
    • Fix the intensity calculation.
    • Remove the azimuth from addPoint.
    • Make sure to reset the cloud data to 0 before reusing.
    • Use underscores on pointcloud member variables.
    • Using std::lround means we don't need to add 0.5 to the result.
    • Slightly rearrange and simplify range checks.
    • Add in example launch files for VLP32C.
  • A few more minor style updates. (#308)
    • Get rid of the last users of new in the codebase
    • Get rid of the users of 'using' in the codebase
    • Rename 'calibrationFile' -> 'calibration_file'
  • Dashing fixes (#307)
    • Use std::make_unique as appropriate.
    • Fix the azimuth calculation.
    • Fix a crash during driver startup.
    • Always recalculate the row_step while setting up the cloud.
    • Make sure to call computeTransformation.
    • Fix style errors pointed out by flake8.
  • ROS2: Add Linters to velodyne_pointcloud (#304)
    • VP: Renaming files.
    • VP: Fixed copyrights.
    • VP: cpplint is satisfied!
    • VP: Converted gen_calibration.py to Python3.
    • Uncrustify fixed!
    • VP: Lint errors clear.
    • VP: Moving organized_cloud and pointcloud to lib and building as library.
  • Check for intra-process subscribers
  • Add in example launch files.
  • Disable copy, move, and assign operators.
  • Build the components so the velodyne can be run as a component.
  • Add in NodeOptions to node constructors.
  • Only find the "common" component to PCL.
  • Make sure to install the header files for laserscan and pointcloud.
  • Properly setup the row_step.
  • Add explicit, final, and override to classes where appropriate.
  • Remove organize_cloud, fixed_frame, and target_frame configs.
  • Stop storing view_{direction,width} in the Node classes.
  • Stop storing {min,max}_range in the Node classes.
  • Make DataContainerBase::configure const reference string parameters.
  • Switch argument order to always be (min,max)
  • Remove tmp_{min,max}_angle from stored RawData config.
  • Remove unused tf_ptr.
  • Switch container_ptr to a unique_ptr.
  • container_ptr -> container_ptr_
  • Don't store number of lasers in the Transfrom/Convert node.
  • Make the RawData class RAII-style.
  • Make RawData::setup not return the number of lasers.
  • Remove unused laser_corrections_maps.
  • Remove the calibration read method.
  • Make the Calibration class only have the RAII-style constructor.
  • Remove unnecessary ros_info parameter from Calibration.
  • Remove unused calibration write method.
  • Remove unused setupOffline method.
  • Remove calibrationFile from rawdata config.
  • Switch to using nullptr everywhere.
  • fixed timpepoint issue
  • Remove dead store from rawdata.cc
  • Rename nodes.
  • Switch organize_cloud to true by default.
  • Update the documentation for ROS 2.
  • Remove debugging statements.
  • Fix dead pointers in calibration.cc.
  • Merge pull request #251 from clalancette/dashing-devel3 ROS 2 Dashing port
  • Merge pull request #214 from spuetz/feature/opc_nopcl Container cleanup and organized pointclouds
  • Merge pull request #236 from mpitropov/fix_transform_node_frame_bug set correct output frame
  • Merge pull request #234 from kmhallen/c++11 Set minimum C++ standard to C++11
  • Merge pull request #231 from ros-drivers/ci/test_better_output CI: Adding roslint as separate step. Limiting output of catkin build.
  • Merge pull request #227 from ros-drivers/roslint Applying roslint to velodyne_pointcloud.
  • Merge pull request #223 from mpitropov/feat_Add_fixed_frame Add fixed frame and use ros message time within transform node
  • Merge pull request #224 from mpitropov/feat_add_diagnostics Added diagnostic publishing
  • Merge pull request #222 from mpitropov/feat_Use_GPS_time Add flag to enable using GPS time from within the Velodyne packet instead of ROS time for scan.
  • Contributors: Andreas Klintberg, Chris Lalancette, Ian Colwell, Joshua Whitley, Kevin Hallenbeck, Matthew Pitropov, P. J. Reed, Sebastian, Sebastian Pütz

1.5.2 (2019-01-28)

  • Merge pull request #205 from xiesc/master support for 64E-S3
  • add an example yaml file for S3
  • Contributors: Joshua Whitley, Shichao XIE, xiesc

1.5.1 (2018-12-10)

  • Merge pull request #194 from ros-drivers/avoid_unnecessary_computation Avoid unnecessary computation - causes approximately 20% performance increase on VLP-32C - should be similar for other sensors
  • std::vector<>::reserve is your friend
  • add static to avoid frequence memory allocation
  • avoid unecesary calculations in unpack()
  • Contributors: Davide Faconti, Joshua Whitley

1.5.0 (2018-10-19)

  • Merge pull request #164 from ros-drivers/maint/vlp_32c_support Adding VLP-32C support. This was tested by AutonomouStuff and several external users. Though it does not include new information that I've learned (it appears that the distance resolution is different <50m vs >=50m), it is a good start.
  • Merge pull request #189 from kveretennicov/patch-1
  • Fix malformed plugin description XML ROS pluginlib only recognizes multiple <library> elements if they are under <class_libraries> XML root. It silently ignores malformed XMLs with multiple <library> "root"s and just reads the first one, due to relaxed way tinyxml2 does parsing. Though if you do [rosrun nodelet declared_nodelets]{.title-ref}, the issue is reported properly. See also similar issue in https://github.com/ros-perception/perception_pcl/issues/131
  • Adding distance_resolution to test yaml files.
  • Adding VLP-32C support. Based on work done by \@rockcdr. Adds distance_resolution calibration value to support 0.004m distance resolution for VLP-32C.
  • Contributors: Joshua Whitley, Konstantin Veretennicov

1.4.0 (2018-09-19)

  • Merge pull request #178 from sts-thm/bugfix_issue_#174 Bugfix issue #174
  • Merge pull request #177 from C-NR/feature/WrapPointcloudData Feature/wrap pointcloud data
  • Changes fixing deadlock for specific cut_angle values.
  • moved definition of VPoint and VPointCloud back to namespace rawdata in rawdata.h
  • put a wrapper around pointcloud data including a generic setter method to enable the use of arbitrary data structures (pcl pointcloud, depth image, octomaps and so on) to be filled by just using RawData::unpack method with the wrapper object as parameter
  • Merge pull request #170 from ros-drivers/maint/move_header_files Moving header files to traditional location inside include folders.
  • Merge pull request #160 from ros-drivers/maint/updating_package_xml_to_v2
  • Updated all package.xmls to ver 2. Cleaned up catkin_lint errors. All package.xml files are now compatible with version 2 of the package.xml specification in REP 140. Removed some unnecessary execute permissions on a few files. Fixed a missing test_depend.
  • Merge pull request #136 from stsundermann/patch-1 Use std::abs instead of abs
  • Adding missing 32C configuration file.
  • Merge pull request #139 from ASDeveloper00/vlp32 Adding support for VLP-32C.
  • Merge pull request #138 from volkandre/cut_at_specified_angle_feature Cut at specified angle feature
  • Updated default cut_angle parameters in launch files after switching from deg to rad.
  • Use std::abs instead of abs abs is the c version which returns an integer. This is probably not intended here, so use the templated std::abs function.
  • Contributors: Andre Volk, Autonomoustuff Developer, CNR, Joshua Whitley, Kyle Rector, Stephan Sundermann, Tobias Athmer, kennouni

1.3.0 (2017-11-10)

  • Merge pull request #110 from kmhallen/master Added velodyne_laserscan package
  • Merge remote-tracking branch ros-drivers/master
  • Merge pull request #129 from kmhallen/pluginlib_macro Modern pluginlib macro
  • Update to use non deprecated pluginlib macro
  • Merge pull request #127 from swri-robotics/add_vlp16_hires_support Add VLP16 Puck Hi-Res config file
  • Add VLP16 Puck Hi-Res support
  • velodyne_pointcloud: remove incorrect catkin_package() DEPENDS option (#93) This eliminates a CMake warning when building on Xenial.
  • Merge pull request #111 from OrebroUniversity/master Added an interface to set up raw data processing offline
  • Added an interface to set up raw data processing from a locally defined calibration file. This method is useful when processing data offline from a bag file, without starting any ros master
  • Added velodyne_laserscan package and inserted into existing launch files
  • test multiple nodelet manager support (#108)
  • add launch args to support multiple devices (#108)
  • Merge pull request #105 from fudger/patch-1 Remove unused constants.
  • Merge pull request #104 from altrouge/launch_options Add more options in launch files.
  • Rearranged alphabetically.
  • Remove unused constants. DISTANCE_MAX and DISTANCE_MAX_UNITS are not used anywhere in the code. Furthermore, using them would lead to errors as both VLP-64 manuals state that returns above 120 m should not be used. The VLP-32 manual allows 70 m as the maximum valid sensor range.
  • Merge pull request #103 from fudger/patch-1 Fix misleading typecasts.
  • Add more options in launch files.
    • rpm, device_ip, port, read_once, read_fast, repeat_delay
  • Fix misleading typecasts. intensity and VPoint::intensity are both of type float.
  • update change history
  • merge current master (#94)
  • Merge pull request #92 from adasta/master GCC Build Warnings
  • Modified velodyne_point_cloud/src/lib/rawdata.cc to address warning that last_azimuth_diff variable may be used uninitialized. Variable is now initialized to 0 at creation. velodyne/velodyne_pointcloud/src/lib/rawdata.cc:328:57: error: ‘last_azimuth_diff’ may be used uninitialized in this function [-Werror=maybe-uninitialized] azimuth_corrected_f = azimuth + (azimuth_diff * ((dsr*VLP16_DSR_TOFFSET) + (firing*VLP16_FIRING_TOFFSET)) / VLP16_BLOCK_TDURATION);
  • Modified velodyne_pointcloud/src/conversion/colors.cc to remove address build warning for strict-aliasing. velodyne/velodyne_pointcloud/src/conversions/colors.cc:84:58:
  • Merge pull request #89 from Tones29/feat_dynrec_driver Add dynamic latency configuration to velodyne_driver
  • velodyne_pointcloud: Fix compile warning "Wrong initialization order"
  • velodyne_pointcloud: add dynamic reconfig update to change log (#78)
  • Merge branch fudger-reconfigure_transform_node
  • velodyne_pointcloud: use recommended add_dependencies() CMake variable #78
  • velodyne_pointcloud: fix transform unit tests Use tf2_ros static_transform_publisher for more consistent timing (#2)
  • Merge branch reconfigure_transform_node of https://github.com/fudger/velodyne
  • prepare change history for coming Indigo release (#59)
  • calibration: unit test case improvements (#84)
  • calibration: read all intensities as float, then convert (#84)
  • calibration: add gtest for #84 This currently fails on 64e_s2.1-sztaki.yaml and on issue_84_float_intensities.yaml.
  • calibration: make max_intensity and min_intensity optional (#84) This fixes a regression in the 32e and VLP-16 calibrations which do not contain intensity values. There is still a problem with the 64e_s2.1 calibration.
  • Merge pull request #76 from pomerlef/master Sign inversion in some equations
  • Merge pull request #82 from ros-drivers/fix_pr_80 Fix pr 80; adding travis CI tests.
  • fix the yaml-cpp 0.5 code paths
  • Merge pull request #80 from ros-drivers/fix_yaml_import allow floats in min/max_intensity and make horiz_offset_correction optional
  • allow horiz_offset_correction to be optional with 0 as default
  • allow floats instead of ints in min/max_intensity
  • Resolve frame ID name using tf prefix.
  • Improve coding style.
  • Set up dynamic reconfiguration for transform_node. Previously, transform_node has neither read parameters other than frame_id from the command line nor has it exposed these parameters via dynamic reconfigure. As parameters like max_range and view_width have been initialized to zero, the inconfigurable transform_node has returned an empty point cloud. Now, transform_node launches an reconfigure server just as cloud_node. In contrast to cloud_node, transform node exposes another parameter for dynamic reconfiguration: frame_id, i.e. the frame of reference the incoming Velodyne points are transformed to.
  • Merge pull request #77 from fudger/pretty_print Fix output of calibration data onto console
  • Add a missing space.
  • Fix line that always indicates use of model VLP-16.
  • Align console output of calibration data.
  • Merge branch master of https://github.com/ros-drivers/velodyne
  • resolve sign error
  • Merge pull request #73 from fudger/master Correct important data type error for VLP-16
  • Fix data type error that distorts the point cloud.
  • Fix and add a few comments.
  • Merge pull request #68 from jlblancoc/patch-1 Remove unused variable
  • Remove unused variable I think that [dsr]{.title-ref} was unused. See line 317: for (int dsr=0; ...
  • VLP-16: skip badly formatted data packets (#62, #63)
  • restore VLP-16 min_range setting to 0.4 (#60) NOTE: There is still some other problem keeping that from working.
  • permit min_range settings below 0.9 meters (#60) No known models are currently known to return closer measurements.
  • Merge pull request #55 from lemiant/azimuth_bug_VLP16 Fixed azimuth overflow bug.
  • Fixed azimuth overflow bug. For interpolated azimuth values between 35999.5 and 36000.0 the nested round(fmod()) yields a value of 36000 which is invalid and overflows the pre-computed sin/cos arrays, since they only go form 0..35999
  • Merge pull request #51 from kunlileo/master Added vertical sin angle correction
  • Added vertical sin angle correction
  • Merge pull request #47 from prclibo/master fixed rounding bug in intensity calculation found by songshiyu
  • fixed rounding bug in intensity calculation found by songshiyu
  • fix some overly long C++ source lines
  • Merge pull request #44 from SISegwayRmp/master adding driver and pointcloud support for the VLP16
  • missed the space in the file name which caused the build to fail, removed space before extension
  • adding the VLP16 test scripts and updating the CMakeLists to include the test file from http://download.ros.org/data/velodyne/vlp16.pcap
  • adding support for the VLP16
  • Merge pull request #43 from prclibo/fix_rawdata fixed point computation according to the 64e_s2(.1) velodyne manual
  • fixed point computation according to the 64e_s2(.1) velodyne manual, with luopei"s help
  • Merge pull request #41 from prclibo/master fixed a calibration file parsing bug
  • Merge pull request #42 from prclibo/fix_gen_calibration fixed gen_calibration min/max intensity type
  • fixed gen_calibration min/max intensity type
  • fixed a calibration file parsing bug
  • Contributors: Adam Stambler, Alex Rodrigues, Alexander Schaefer, Andreas Wachaja, Bo Li, Daniel Jartoux, Gabor Meszaros, Jack OQuin, Jose Luis Blanco-Claraco, Joshua Whitley, Kevin Hallenbeck, Kris Kozak, Kun Li, Micho Radovnikovich, Scott K Logan, Thomas Solatges, Todor Stoyanov, William Woodall, jack.oquin, libo24, phussey, piyushk, pomerlef

1.2.0 (2014-08-06)

  • velodyne_pointcloud: remove model-dependent "constants" from rawdata.h (#28)
  • velodyne_pointcloud: change default min_range to 0.9 meters (#25)
  • Added support for YAML-CPP 0.5+ (#23).
  • Add dynamic_reconfigure feature.
  • Add angular limits to the output point cloud, useful for omitting part of it. (#22).
  • Contributors: Jack OQuin, Scott K Logan, Thomas Solatges

1.1.2 (2013-11-05)

  • Move unit test data to download.ros.org (#18).
  • Install missing gen_calibration.py script (#20).

1.1.1 (2013-07-30)

  • Fix lost frame_id transform problem caused by PCL 1.7 fix (#13).
  • Add support for HDL-64E S2 and S2.1 models, which were not working before (#11), thanks to Gabor Meszaros (#12).
  • Add additional parameters to launch files (#14).
  • Contributors: Gabor Meszaros, Jack OQuin

1.1.0 (2013-07-16)

  • Fix build problems due to PCL 1.7 API incompatibilities (#8), thanks to William Woodall. This version also works with Groovy, as long as the correct pcl_conversions is installed.
  • Fix errors with Mac OSX compiler (#8).
  • Install pluginlib XML files (#9).
  • Install some launch and parameter files.
  • Enable unit tests when CATKIN_ENABLE_TESTING is set (#10).

1.0.1 (2013-06-15)

  • Declare explicit pluginlib dependency (#4).

1.0.0 (2013-06-14)

  • Convert to catkin (#1).
  • Release to Hydro.

0.9.2 (2013-07-08)

  • Fix Groovy build problem (#7).

0.9.1 (2012-06-05)

  • Only include "enabled" lasers in YAML calibration file.
  • New param subdirectory for parameter files.
  • Add launch file for the HDL-32E.
  • Add rviz_points.vcg file for viewing Velodyne point clouds with rviz.
  • Fix bug when reading configuration with default minIntensity.
  • Add unit tests with 32E data.
  • Released to Electric, Fuerte and Groovy.

0.9.0 (2012-04-03)

  • Completely revised API, anticipating a 1.0.0 release.
  • HDL-32E device support.
  • New YAML configuration file format.
  • New velodyne_driver and velodyne_pointcloud packages.
  • Old velodyne_common and velodyne_pcl packages no longer included.
  • Released to Electric, Fuerte and Groovy.

0.2.6 (2011-02-23)

  • Label all timing-dependent tests "realtime" so they do not run by default on the build farm machines.

0.2.5 (2010-11-19)

  • Initial implementation of new 0.3 interfaces.
  • Support for ROS 1.3 [std_msgs::Header]{.title-ref} changes.

0.2.0 (2010-08-17)

  • Initial release to ROS C-turtle.

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.

Launch files

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged velodyne_pointcloud at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.0.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/velodyne.git
VCS Type git
VCS Version dashing-devel
Last Updated 2020-07-18
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

Point cloud conversions for Velodyne 3D LIDARs.

Additional Links

Maintainers

  • Josh Whitley

Authors

  • Jack O'Quin
  • Piyush Khandelwal
  • Jesse Vera
  • Andreas Klintberg

Velodyne ROS 2 raw to pointcloud converters

This is a ROS 2 package that takes raw velodyne data as output by the velodyne_driver node, and converts it into a sensor_msgs/PointCloud2 message.

There are two different nodes here:

velodyne_convert_node - This node takes in the raw data and converts it to a pointcloud immediately. velodyne_transform_node - This node takes the raw data and converts it only when a corresponding tf message with a compatible timestamp has arrived.

The topics and parameters for both nodes are identical, so they’ll be described together below.

Published Topics

  • velodyne_points (sensor_msgs/PointCloud2) - The pointcloud that results from the raw velodyne data.

Subscribed Topics

  • velodyne_packets (velodyne_msgs/VelodyneScan) - The raw velodyne packets coming from the velodyne_driver.

Parameters

  • calibration (string) - The path to the calibration file for the particular device. There are a set of default calibration files to start with in the “params” subdirectory in this package. Defaults to the empty string.
  • min_range (double) - The minimum range in meters that a point must be to be added to the resulting point cloud. Points closer than this are discarded. Must be between 0.1 and 10.0. Defaults to 0.9.
  • max_range (double) - The maximum range in meters that a point must be to be added to the resulting point cloud. Points further away than this are discarded. Must be between 0.1 and 200.0. Defaults to 130.0.
  • view_direction (double) - The point around the circumference of the device, in radians, to “center” the view. Combined with view_width, this allows the node to generate a pointcloud only for the given width, centered at this point. This can vastly reduce the CPU requirements of the node. Must be between -Pi and Pi, where 0 is straight ahead from the device. Defaults to 0.0.
  • view_width (double) - The width, in radians, of the view to generate for the resulting pointcloud. Combined with view_direction, this allows the node to generate a pointcloud only for the given width, centered at the view_direction point. This can vastly reduce the CPU requirements of the node. Must be between 0 and 2Pi. Defaults to 2Pi.
  • organize_cloud (bool) - Whether to organize the cloud by ring (True), or to use the order as it comes directly from the driver (False). Defaults to True.
  • target_frame (string) - The coordinate frame to apply to the generated point cloud header before publishing. If the empty string (the default), the frame is passed along from the driver packet. If this frame is different than the fixed_frame, a transformation to this coordinate frame is performed while creating the pointcloud.
  • fixed_frame (string) - The fixed coordinate frame to transform the data from.
CHANGELOG

Change history

2.0.0 (2020-07-10)

  • More fixing of dependencies. (#333)
    • More fixing of dependencies.
  • Fixes pointed out by clang-tidy (#310)
    • Rearrange header includes so clang-tidy is happy.
    • Get rid of unnecessary void arguments on methods.
    • Properly mark methods as override where appropriate.
    • Initialize members and stack variables to zero before use.
    • Mark function implementations in header files 'inline'.
    • Use more efficient 'empty' method instead of empty string.
    • Get rid of unnecessary else statements after a continue/return.
    • Get rid of unnecessary == false use.
    • Make sure to add a virtual destructor to DataContainerBase.
    • Use string != comparison instead of 'compare' method.
    • Rename PointcloudXYZIR parameter name to match implementation.
    • Get rid of usage of typedef.
    • Be more explicit about using floats.
    • Do an explicit lround to do int->float conversion.
    • Fix the intensity calculation.
    • Remove the azimuth from addPoint.
    • Make sure to reset the cloud data to 0 before reusing.
    • Use underscores on pointcloud member variables.
    • Using std::lround means we don't need to add 0.5 to the result.
    • Slightly rearrange and simplify range checks.
    • Add in example launch files for VLP32C.
  • A few more minor style updates. (#308)
    • Get rid of the last users of new in the codebase
    • Get rid of the users of 'using' in the codebase
    • Rename 'calibrationFile' -> 'calibration_file'
  • Dashing fixes (#307)
    • Use std::make_unique as appropriate.
    • Fix the azimuth calculation.
    • Fix a crash during driver startup.
    • Always recalculate the row_step while setting up the cloud.
    • Make sure to call computeTransformation.
    • Fix style errors pointed out by flake8.
  • ROS2: Add Linters to velodyne_pointcloud (#304)
    • VP: Renaming files.
    • VP: Fixed copyrights.
    • VP: cpplint is satisfied!
    • VP: Converted gen_calibration.py to Python3.
    • Uncrustify fixed!
    • VP: Lint errors clear.
    • VP: Moving organized_cloud and pointcloud to lib and building as library.
  • Check for intra-process subscribers
  • Add in example launch files.
  • Disable copy, move, and assign operators.
  • Build the components so the velodyne can be run as a component.
  • Add in NodeOptions to node constructors.
  • Only find the "common" component to PCL.
  • Make sure to install the header files for laserscan and pointcloud.
  • Properly setup the row_step.
  • Add explicit, final, and override to classes where appropriate.
  • Remove organize_cloud, fixed_frame, and target_frame configs.
  • Stop storing view_{direction,width} in the Node classes.
  • Stop storing {min,max}_range in the Node classes.
  • Make DataContainerBase::configure const reference string parameters.
  • Switch argument order to always be (min,max)
  • Remove tmp_{min,max}_angle from stored RawData config.
  • Remove unused tf_ptr.
  • Switch container_ptr to a unique_ptr.
  • container_ptr -> container_ptr_
  • Don't store number of lasers in the Transfrom/Convert node.
  • Make the RawData class RAII-style.
  • Make RawData::setup not return the number of lasers.
  • Remove unused laser_corrections_maps.
  • Remove the calibration read method.
  • Make the Calibration class only have the RAII-style constructor.
  • Remove unnecessary ros_info parameter from Calibration.
  • Remove unused calibration write method.
  • Remove unused setupOffline method.
  • Remove calibrationFile from rawdata config.
  • Switch to using nullptr everywhere.
  • fixed timpepoint issue
  • Remove dead store from rawdata.cc
  • Rename nodes.
  • Switch organize_cloud to true by default.
  • Update the documentation for ROS 2.
  • Remove debugging statements.
  • Fix dead pointers in calibration.cc.
  • Merge pull request #251 from clalancette/dashing-devel3 ROS 2 Dashing port
  • Merge pull request #214 from spuetz/feature/opc_nopcl Container cleanup and organized pointclouds
  • Merge pull request #236 from mpitropov/fix_transform_node_frame_bug set correct output frame
  • Merge pull request #234 from kmhallen/c++11 Set minimum C++ standard to C++11
  • Merge pull request #231 from ros-drivers/ci/test_better_output CI: Adding roslint as separate step. Limiting output of catkin build.
  • Merge pull request #227 from ros-drivers/roslint Applying roslint to velodyne_pointcloud.
  • Merge pull request #223 from mpitropov/feat_Add_fixed_frame Add fixed frame and use ros message time within transform node
  • Merge pull request #224 from mpitropov/feat_add_diagnostics Added diagnostic publishing
  • Merge pull request #222 from mpitropov/feat_Use_GPS_time Add flag to enable using GPS time from within the Velodyne packet instead of ROS time for scan.
  • Contributors: Andreas Klintberg, Chris Lalancette, Ian Colwell, Joshua Whitley, Kevin Hallenbeck, Matthew Pitropov, P. J. Reed, Sebastian, Sebastian Pütz

1.5.2 (2019-01-28)

  • Merge pull request #205 from xiesc/master support for 64E-S3
  • add an example yaml file for S3
  • Contributors: Joshua Whitley, Shichao XIE, xiesc

1.5.1 (2018-12-10)

  • Merge pull request #194 from ros-drivers/avoid_unnecessary_computation Avoid unnecessary computation - causes approximately 20% performance increase on VLP-32C - should be similar for other sensors
  • std::vector<>::reserve is your friend
  • add static to avoid frequence memory allocation
  • avoid unecesary calculations in unpack()
  • Contributors: Davide Faconti, Joshua Whitley

1.5.0 (2018-10-19)

  • Merge pull request #164 from ros-drivers/maint/vlp_32c_support Adding VLP-32C support. This was tested by AutonomouStuff and several external users. Though it does not include new information that I've learned (it appears that the distance resolution is different <50m vs >=50m), it is a good start.
  • Merge pull request #189 from kveretennicov/patch-1
  • Fix malformed plugin description XML ROS pluginlib only recognizes multiple <library> elements if they are under <class_libraries> XML root. It silently ignores malformed XMLs with multiple <library> "root"s and just reads the first one, due to relaxed way tinyxml2 does parsing. Though if you do [rosrun nodelet declared_nodelets]{.title-ref}, the issue is reported properly. See also similar issue in https://github.com/ros-perception/perception_pcl/issues/131
  • Adding distance_resolution to test yaml files.
  • Adding VLP-32C support. Based on work done by \@rockcdr. Adds distance_resolution calibration value to support 0.004m distance resolution for VLP-32C.
  • Contributors: Joshua Whitley, Konstantin Veretennicov

1.4.0 (2018-09-19)

  • Merge pull request #178 from sts-thm/bugfix_issue_#174 Bugfix issue #174
  • Merge pull request #177 from C-NR/feature/WrapPointcloudData Feature/wrap pointcloud data
  • Changes fixing deadlock for specific cut_angle values.
  • moved definition of VPoint and VPointCloud back to namespace rawdata in rawdata.h
  • put a wrapper around pointcloud data including a generic setter method to enable the use of arbitrary data structures (pcl pointcloud, depth image, octomaps and so on) to be filled by just using RawData::unpack method with the wrapper object as parameter
  • Merge pull request #170 from ros-drivers/maint/move_header_files Moving header files to traditional location inside include folders.
  • Merge pull request #160 from ros-drivers/maint/updating_package_xml_to_v2
  • Updated all package.xmls to ver 2. Cleaned up catkin_lint errors. All package.xml files are now compatible with version 2 of the package.xml specification in REP 140. Removed some unnecessary execute permissions on a few files. Fixed a missing test_depend.
  • Merge pull request #136 from stsundermann/patch-1 Use std::abs instead of abs
  • Adding missing 32C configuration file.
  • Merge pull request #139 from ASDeveloper00/vlp32 Adding support for VLP-32C.
  • Merge pull request #138 from volkandre/cut_at_specified_angle_feature Cut at specified angle feature
  • Updated default cut_angle parameters in launch files after switching from deg to rad.
  • Use std::abs instead of abs abs is the c version which returns an integer. This is probably not intended here, so use the templated std::abs function.
  • Contributors: Andre Volk, Autonomoustuff Developer, CNR, Joshua Whitley, Kyle Rector, Stephan Sundermann, Tobias Athmer, kennouni

1.3.0 (2017-11-10)

  • Merge pull request #110 from kmhallen/master Added velodyne_laserscan package
  • Merge remote-tracking branch ros-drivers/master
  • Merge pull request #129 from kmhallen/pluginlib_macro Modern pluginlib macro
  • Update to use non deprecated pluginlib macro
  • Merge pull request #127 from swri-robotics/add_vlp16_hires_support Add VLP16 Puck Hi-Res config file
  • Add VLP16 Puck Hi-Res support
  • velodyne_pointcloud: remove incorrect catkin_package() DEPENDS option (#93) This eliminates a CMake warning when building on Xenial.
  • Merge pull request #111 from OrebroUniversity/master Added an interface to set up raw data processing offline
  • Added an interface to set up raw data processing from a locally defined calibration file. This method is useful when processing data offline from a bag file, without starting any ros master
  • Added velodyne_laserscan package and inserted into existing launch files
  • test multiple nodelet manager support (#108)
  • add launch args to support multiple devices (#108)
  • Merge pull request #105 from fudger/patch-1 Remove unused constants.
  • Merge pull request #104 from altrouge/launch_options Add more options in launch files.
  • Rearranged alphabetically.
  • Remove unused constants. DISTANCE_MAX and DISTANCE_MAX_UNITS are not used anywhere in the code. Furthermore, using them would lead to errors as both VLP-64 manuals state that returns above 120 m should not be used. The VLP-32 manual allows 70 m as the maximum valid sensor range.
  • Merge pull request #103 from fudger/patch-1 Fix misleading typecasts.
  • Add more options in launch files.
    • rpm, device_ip, port, read_once, read_fast, repeat_delay
  • Fix misleading typecasts. intensity and VPoint::intensity are both of type float.
  • update change history
  • merge current master (#94)
  • Merge pull request #92 from adasta/master GCC Build Warnings
  • Modified velodyne_point_cloud/src/lib/rawdata.cc to address warning that last_azimuth_diff variable may be used uninitialized. Variable is now initialized to 0 at creation. velodyne/velodyne_pointcloud/src/lib/rawdata.cc:328:57: error: ‘last_azimuth_diff’ may be used uninitialized in this function [-Werror=maybe-uninitialized] azimuth_corrected_f = azimuth + (azimuth_diff * ((dsr*VLP16_DSR_TOFFSET) + (firing*VLP16_FIRING_TOFFSET)) / VLP16_BLOCK_TDURATION);
  • Modified velodyne_pointcloud/src/conversion/colors.cc to remove address build warning for strict-aliasing. velodyne/velodyne_pointcloud/src/conversions/colors.cc:84:58:
  • Merge pull request #89 from Tones29/feat_dynrec_driver Add dynamic latency configuration to velodyne_driver
  • velodyne_pointcloud: Fix compile warning "Wrong initialization order"
  • velodyne_pointcloud: add dynamic reconfig update to change log (#78)
  • Merge branch fudger-reconfigure_transform_node
  • velodyne_pointcloud: use recommended add_dependencies() CMake variable #78
  • velodyne_pointcloud: fix transform unit tests Use tf2_ros static_transform_publisher for more consistent timing (#2)
  • Merge branch reconfigure_transform_node of https://github.com/fudger/velodyne
  • prepare change history for coming Indigo release (#59)
  • calibration: unit test case improvements (#84)
  • calibration: read all intensities as float, then convert (#84)
  • calibration: add gtest for #84 This currently fails on 64e_s2.1-sztaki.yaml and on issue_84_float_intensities.yaml.
  • calibration: make max_intensity and min_intensity optional (#84) This fixes a regression in the 32e and VLP-16 calibrations which do not contain intensity values. There is still a problem with the 64e_s2.1 calibration.
  • Merge pull request #76 from pomerlef/master Sign inversion in some equations
  • Merge pull request #82 from ros-drivers/fix_pr_80 Fix pr 80; adding travis CI tests.
  • fix the yaml-cpp 0.5 code paths
  • Merge pull request #80 from ros-drivers/fix_yaml_import allow floats in min/max_intensity and make horiz_offset_correction optional
  • allow horiz_offset_correction to be optional with 0 as default
  • allow floats instead of ints in min/max_intensity
  • Resolve frame ID name using tf prefix.
  • Improve coding style.
  • Set up dynamic reconfiguration for transform_node. Previously, transform_node has neither read parameters other than frame_id from the command line nor has it exposed these parameters via dynamic reconfigure. As parameters like max_range and view_width have been initialized to zero, the inconfigurable transform_node has returned an empty point cloud. Now, transform_node launches an reconfigure server just as cloud_node. In contrast to cloud_node, transform node exposes another parameter for dynamic reconfiguration: frame_id, i.e. the frame of reference the incoming Velodyne points are transformed to.
  • Merge pull request #77 from fudger/pretty_print Fix output of calibration data onto console
  • Add a missing space.
  • Fix line that always indicates use of model VLP-16.
  • Align console output of calibration data.
  • Merge branch master of https://github.com/ros-drivers/velodyne
  • resolve sign error
  • Merge pull request #73 from fudger/master Correct important data type error for VLP-16
  • Fix data type error that distorts the point cloud.
  • Fix and add a few comments.
  • Merge pull request #68 from jlblancoc/patch-1 Remove unused variable
  • Remove unused variable I think that [dsr]{.title-ref} was unused. See line 317: for (int dsr=0; ...
  • VLP-16: skip badly formatted data packets (#62, #63)
  • restore VLP-16 min_range setting to 0.4 (#60) NOTE: There is still some other problem keeping that from working.
  • permit min_range settings below 0.9 meters (#60) No known models are currently known to return closer measurements.
  • Merge pull request #55 from lemiant/azimuth_bug_VLP16 Fixed azimuth overflow bug.
  • Fixed azimuth overflow bug. For interpolated azimuth values between 35999.5 and 36000.0 the nested round(fmod()) yields a value of 36000 which is invalid and overflows the pre-computed sin/cos arrays, since they only go form 0..35999
  • Merge pull request #51 from kunlileo/master Added vertical sin angle correction
  • Added vertical sin angle correction
  • Merge pull request #47 from prclibo/master fixed rounding bug in intensity calculation found by songshiyu
  • fixed rounding bug in intensity calculation found by songshiyu
  • fix some overly long C++ source lines
  • Merge pull request #44 from SISegwayRmp/master adding driver and pointcloud support for the VLP16
  • missed the space in the file name which caused the build to fail, removed space before extension
  • adding the VLP16 test scripts and updating the CMakeLists to include the test file from http://download.ros.org/data/velodyne/vlp16.pcap
  • adding support for the VLP16
  • Merge pull request #43 from prclibo/fix_rawdata fixed point computation according to the 64e_s2(.1) velodyne manual
  • fixed point computation according to the 64e_s2(.1) velodyne manual, with luopei"s help
  • Merge pull request #41 from prclibo/master fixed a calibration file parsing bug
  • Merge pull request #42 from prclibo/fix_gen_calibration fixed gen_calibration min/max intensity type
  • fixed gen_calibration min/max intensity type
  • fixed a calibration file parsing bug
  • Contributors: Adam Stambler, Alex Rodrigues, Alexander Schaefer, Andreas Wachaja, Bo Li, Daniel Jartoux, Gabor Meszaros, Jack OQuin, Jose Luis Blanco-Claraco, Joshua Whitley, Kevin Hallenbeck, Kris Kozak, Kun Li, Micho Radovnikovich, Scott K Logan, Thomas Solatges, Todor Stoyanov, William Woodall, jack.oquin, libo24, phussey, piyushk, pomerlef

1.2.0 (2014-08-06)

  • velodyne_pointcloud: remove model-dependent "constants" from rawdata.h (#28)
  • velodyne_pointcloud: change default min_range to 0.9 meters (#25)
  • Added support for YAML-CPP 0.5+ (#23).
  • Add dynamic_reconfigure feature.
  • Add angular limits to the output point cloud, useful for omitting part of it. (#22).
  • Contributors: Jack OQuin, Scott K Logan, Thomas Solatges

1.1.2 (2013-11-05)

  • Move unit test data to download.ros.org (#18).
  • Install missing gen_calibration.py script (#20).

1.1.1 (2013-07-30)

  • Fix lost frame_id transform problem caused by PCL 1.7 fix (#13).
  • Add support for HDL-64E S2 and S2.1 models, which were not working before (#11), thanks to Gabor Meszaros (#12).
  • Add additional parameters to launch files (#14).
  • Contributors: Gabor Meszaros, Jack OQuin

1.1.0 (2013-07-16)

  • Fix build problems due to PCL 1.7 API incompatibilities (#8), thanks to William Woodall. This version also works with Groovy, as long as the correct pcl_conversions is installed.
  • Fix errors with Mac OSX compiler (#8).
  • Install pluginlib XML files (#9).
  • Install some launch and parameter files.
  • Enable unit tests when CATKIN_ENABLE_TESTING is set (#10).

1.0.1 (2013-06-15)

  • Declare explicit pluginlib dependency (#4).

1.0.0 (2013-06-14)

  • Convert to catkin (#1).
  • Release to Hydro.

0.9.2 (2013-07-08)

  • Fix Groovy build problem (#7).

0.9.1 (2012-06-05)

  • Only include "enabled" lasers in YAML calibration file.
  • New param subdirectory for parameter files.
  • Add launch file for the HDL-32E.
  • Add rviz_points.vcg file for viewing Velodyne point clouds with rviz.
  • Fix bug when reading configuration with default minIntensity.
  • Add unit tests with 32E data.
  • Released to Electric, Fuerte and Groovy.

0.9.0 (2012-04-03)

  • Completely revised API, anticipating a 1.0.0 release.
  • HDL-32E device support.
  • New YAML configuration file format.
  • New velodyne_driver and velodyne_pointcloud packages.
  • Old velodyne_common and velodyne_pcl packages no longer included.
  • Released to Electric, Fuerte and Groovy.

0.2.6 (2011-02-23)

  • Label all timing-dependent tests "realtime" so they do not run by default on the build farm machines.

0.2.5 (2010-11-19)

  • Initial implementation of new 0.3 interfaces.
  • Support for ROS 1.3 [std_msgs::Header]{.title-ref} changes.

0.2.0 (2010-08-17)

  • Initial release to ROS C-turtle.

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.

Launch files

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged velodyne_pointcloud at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.5.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/velodyne.git
VCS Type git
VCS Version ros2
Last Updated 2024-10-31
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

Point cloud conversions for Velodyne 3D LIDARs.

Additional Links

Maintainers

  • Josh Whitley

Authors

  • Jack O'Quin
  • Piyush Khandelwal
  • Jesse Vera
  • Andreas Klintberg

Velodyne ROS 2 raw to pointcloud converters

This is a ROS 2 package that takes raw velodyne data as output by the velodyne_driver node, and converts it into a sensor_msgs/PointCloud2 message.

There are two different nodes here:

velodyne_convert_node - This node takes in the raw data and converts it to a pointcloud immediately. velodyne_transform_node - This node takes the raw data and converts it only when a corresponding tf message with a compatible timestamp has arrived.

The topics and parameters for both nodes are identical, so they’ll be described together below.

Published Topics

  • velodyne_points (sensor_msgs/PointCloud2) - The pointcloud that results from the raw velodyne data.

Subscribed Topics

  • velodyne_packets (velodyne_msgs/VelodyneScan) - The raw velodyne packets coming from the velodyne_driver.

Parameters

  • calibration (string) - The path to the calibration file for the particular device. There are a set of default calibration files to start with in the “params” subdirectory in this package. Defaults to the empty string.
  • min_range (double) - The minimum range in meters that a point must be to be added to the resulting point cloud. Points closer than this are discarded. Must be between 0.1 and 10.0. Defaults to 0.9.
  • max_range (double) - The maximum range in meters that a point must be to be added to the resulting point cloud. Points further away than this are discarded. Must be between 0.1 and 200.0. Defaults to 130.0.
  • view_direction (double) - The point around the circumference of the device, in radians, to “center” the view. Combined with view_width, this allows the node to generate a pointcloud only for the given width, centered at this point. This can vastly reduce the CPU requirements of the node. Must be between -Pi and Pi, where 0 is straight ahead from the device. Defaults to 0.0.
  • view_width (double) - The width, in radians, of the view to generate for the resulting pointcloud. Combined with view_direction, this allows the node to generate a pointcloud only for the given width, centered at the view_direction point. This can vastly reduce the CPU requirements of the node. Must be between 0 and 2Pi. Defaults to 2Pi.
  • organize_cloud (bool) - Whether to organize the cloud by ring (True), or to use the order as it comes directly from the driver (False). Defaults to True.
  • target_frame (string) - The coordinate frame to apply to the generated point cloud header before publishing. If the empty string (the default), the frame is passed along from the driver packet. If this frame is different than the fixed_frame, a transformation to this coordinate frame is performed while creating the pointcloud.
  • fixed_frame (string) - The fixed coordinate frame to transform the data from.
CHANGELOG

Change history

2.5.1 (2024-10-31)

  • Fix compiling on RHEL-8. (#549)
  • Contributors: Chris Lalancette

2.5.0 (2024-10-30)

  • Clalancette/cmake cleanups (#546)
  • Fix exports (#535)
  • Add in the Eigen dependency to velodyne_pointcloud (#545)
  • Add package to compile in Jazzy (#539)
  • Feature script add two pt ros2 (#498)
  • delete unused valiable (#529)
  • Add vert offset corrections to VLP16 calib file (#518)
  • Fix double-include.
  • feat: support vls128 for ros2 (#493)
  • Update rolling ci (#512) (#513)
  • Contributors: Chris Lalancette, Daisuke Nishimatsu, Joshua Whitley, Mateusz Szczygielski, Pierrick Koch, Taiga Takano, Thomas Emter, g-kurz

2.4.0 (2023-05-27)

2.3.0 (2022-07-08)

  • Passing fixed_frame and target_frame to Convert object. (#330) (#451) Co-authored-by: Joshua Whitley <<jwhitley@autonomoustuff.com>>
  • Updating maintainer email address. (#450)
    • Updating maintainer email address.

    * chore: update maintainer email address Co-authored-by: Joshua Whitley <<jwhitley@autonomoustuff.com>>

  • Add per point time field (#440)
    • Initial commit to timestamp each point using the timing spec in the manuals
    • Added model param to each of the cloud nodelet starters
    • Minor cleanup. added author tag to rawdata
    • Move timing offsets functionality into class private. Also fix linter errors
    • added #include <vector> for linter
    • fix: suppress compiler warning

    * feat: change XYZIR to XYZIRT Co-authored-by: Shawn Hanna <<shawn@kaarta.com>>

  • Link against yaml-cpp (#443)
  • Increase the max_range of the 32C launch file (#323) (#441) Co-authored-by: Shawn Hanna <<50845122+kaarta-SHanna@users.noreply.github.com>>
  • fix for #267, transform each packet (#438)
    • fix for #267, transform each packet

    * fix: fix scope of access modifiers Co-authored-by: Sebastian <<spuetz@uos.de>>

  • Replace deprecated argument names in launch (#430)
  • 2.1.1
  • Updating for first Galactic release
  • Contributors: Daisuke Nishimatsu, Joshua Whitley, Keane Quigley, Stephan Sundermann

2.1.1 (2021-08-23)

2.1.0 (2020-07-10)

2.0.0 (2020-07-10)

  • More fixing of dependencies. (#333)
    • More fixing of dependencies.
  • Fixes pointed out by clang-tidy (#310)
    • Rearrange header includes so clang-tidy is happy.
    • Get rid of unnecessary void arguments on methods.
    • Properly mark methods as override where appropriate.
    • Initialize members and stack variables to zero before use.
    • Mark function implementations in header files 'inline'.
    • Use more efficient 'empty' method instead of empty string.
    • Get rid of unnecessary else statements after a continue/return.
    • Get rid of unnecessary == false use.
    • Make sure to add a virtual destructor to DataContainerBase.
    • Use string != comparison instead of 'compare' method.
    • Rename PointcloudXYZIR parameter name to match implementation.
    • Get rid of usage of typedef.
    • Be more explicit about using floats.
    • Do an explicit lround to do int->float conversion.
    • Fix the intensity calculation.
    • Remove the azimuth from addPoint.
    • Make sure to reset the cloud data to 0 before reusing.
    • Use underscores on pointcloud member variables.
    • Using std::lround means we don't need to add 0.5 to the result.
    • Slightly rearrange and simplify range checks.
    • Add in example launch files for VLP32C.
  • A few more minor style updates. (#308)
    • Get rid of the last users of new in the codebase
    • Get rid of the users of 'using' in the codebase
    • Rename 'calibrationFile' -> 'calibration_file'
  • Dashing fixes (#307)
    • Use std::make_unique as appropriate.
    • Fix the azimuth calculation.
    • Fix a crash during driver startup.
    • Always recalculate the row_step while setting up the cloud.
    • Make sure to call computeTransformation.
    • Fix style errors pointed out by flake8.
  • ROS2: Add Linters to velodyne_pointcloud (#304)
    • VP: Renaming files.
    • VP: Fixed copyrights.
    • VP: cpplint is satisfied!
    • VP: Converted gen_calibration.py to Python3.
    • Uncrustify fixed!
    • VP: Lint errors clear.
    • VP: Moving organized_cloud and pointcloud to lib and building as library.
  • Check for intra-process subscribers
  • Add in example launch files.
  • Disable copy, move, and assign operators.
  • Build the components so the velodyne can be run as a component.
  • Add in NodeOptions to node constructors.
  • Only find the "common" component to PCL.
  • Make sure to install the header files for laserscan and pointcloud.
  • Properly setup the row_step.
  • Add explicit, final, and override to classes where appropriate.
  • Remove organize_cloud, fixed_frame, and target_frame configs.
  • Stop storing view_{direction,width} in the Node classes.
  • Stop storing {min,max}_range in the Node classes.
  • Make DataContainerBase::configure const reference string parameters.
  • Switch argument order to always be (min,max)
  • Remove tmp_{min,max}_angle from stored RawData config.
  • Remove unused tf_ptr.
  • Switch container_ptr to a unique_ptr.
  • container_ptr -> container_ptr_
  • Don't store number of lasers in the Transfrom/Convert node.
  • Make the RawData class RAII-style.
  • Make RawData::setup not return the number of lasers.
  • Remove unused laser_corrections_maps.
  • Remove the calibration read method.
  • Make the Calibration class only have the RAII-style constructor.
  • Remove unnecessary ros_info parameter from Calibration.
  • Remove unused calibration write method.
  • Remove unused setupOffline method.
  • Remove calibrationFile from rawdata config.
  • Switch to using nullptr everywhere.
  • fixed timpepoint issue
  • Remove dead store from rawdata.cc
  • Rename nodes.
  • Switch organize_cloud to true by default.
  • Update the documentation for ROS 2.
  • Remove debugging statements.
  • Fix dead pointers in calibration.cc.
  • Merge pull request #251 from clalancette/dashing-devel3 ROS 2 Dashing port
  • Merge pull request #214 from spuetz/feature/opc_nopcl Container cleanup and organized pointclouds
  • Merge pull request #236 from mpitropov/fix_transform_node_frame_bug set correct output frame
  • Merge pull request #234 from kmhallen/c++11 Set minimum C++ standard to C++11
  • Merge pull request #231 from ros-drivers/ci/test_better_output CI: Adding roslint as separate step. Limiting output of catkin build.
  • Merge pull request #227 from ros-drivers/roslint Applying roslint to velodyne_pointcloud.
  • Merge pull request #223 from mpitropov/feat_Add_fixed_frame Add fixed frame and use ros message time within transform node
  • Merge pull request #224 from mpitropov/feat_add_diagnostics Added diagnostic publishing
  • Merge pull request #222 from mpitropov/feat_Use_GPS_time Add flag to enable using GPS time from within the Velodyne packet instead of ROS time for scan.
  • Contributors: Andreas Klintberg, Chris Lalancette, Ian Colwell, Joshua Whitley, Kevin Hallenbeck, Matthew Pitropov, P. J. Reed, Sebastian, Sebastian Pütz

1.5.2 (2019-01-28)

  • Merge pull request #205 from xiesc/master support for 64E-S3
  • add an example yaml file for S3
  • Contributors: Joshua Whitley, Shichao XIE, xiesc

1.5.1 (2018-12-10)

  • Merge pull request #194 from ros-drivers/avoid_unnecessary_computation Avoid unnecessary computation - causes approximately 20% performance increase on VLP-32C - should be similar for other sensors
  • std::vector<>::reserve is your friend
  • add static to avoid frequence memory allocation
  • avoid unecesary calculations in unpack()
  • Contributors: Davide Faconti, Joshua Whitley

1.5.0 (2018-10-19)

  • Merge pull request #164 from ros-drivers/maint/vlp_32c_support Adding VLP-32C support. This was tested by AutonomouStuff and several external users. Though it does not include new information that I've learned (it appears that the distance resolution is different <50m vs >=50m), it is a good start.
  • Merge pull request #189 from kveretennicov/patch-1
  • Fix malformed plugin description XML ROS pluginlib only recognizes multiple <library> elements if they are under <class_libraries> XML root. It silently ignores malformed XMLs with multiple <library> "root"s and just reads the first one, due to relaxed way tinyxml2 does parsing. Though if you do [rosrun nodelet declared_nodelets]{.title-ref}, the issue is reported properly. See also similar issue in https://github.com/ros-perception/perception_pcl/issues/131
  • Adding distance_resolution to test yaml files.
  • Adding VLP-32C support. Based on work done by \@rockcdr. Adds distance_resolution calibration value to support 0.004m distance resolution for VLP-32C.
  • Contributors: Joshua Whitley, Konstantin Veretennicov

1.4.0 (2018-09-19)

  • Merge pull request #178 from sts-thm/bugfix_issue_#174 Bugfix issue #174
  • Merge pull request #177 from C-NR/feature/WrapPointcloudData Feature/wrap pointcloud data
  • Changes fixing deadlock for specific cut_angle values.
  • moved definition of VPoint and VPointCloud back to namespace rawdata in rawdata.h
  • put a wrapper around pointcloud data including a generic setter method to enable the use of arbitrary data structures (pcl pointcloud, depth image, octomaps and so on) to be filled by just using RawData::unpack method with the wrapper object as parameter
  • Merge pull request #170 from ros-drivers/maint/move_header_files Moving header files to traditional location inside include folders.
  • Merge pull request #160 from ros-drivers/maint/updating_package_xml_to_v2
  • Updated all package.xmls to ver 2. Cleaned up catkin_lint errors. All package.xml files are now compatible with version 2 of the package.xml specification in REP 140. Removed some unnecessary execute permissions on a few files. Fixed a missing test_depend.
  • Merge pull request #136 from stsundermann/patch-1 Use std::abs instead of abs
  • Adding missing 32C configuration file.
  • Merge pull request #139 from ASDeveloper00/vlp32 Adding support for VLP-32C.
  • Merge pull request #138 from volkandre/cut_at_specified_angle_feature Cut at specified angle feature
  • Updated default cut_angle parameters in launch files after switching from deg to rad.
  • Use std::abs instead of abs abs is the c version which returns an integer. This is probably not intended here, so use the templated std::abs function.
  • Contributors: Andre Volk, Autonomoustuff Developer, CNR, Joshua Whitley, Kyle Rector, Stephan Sundermann, Tobias Athmer, kennouni

1.3.0 (2017-11-10)

  • Merge pull request #110 from kmhallen/master Added velodyne_laserscan package
  • Merge remote-tracking branch ros-drivers/master
  • Merge pull request #129 from kmhallen/pluginlib_macro Modern pluginlib macro
  • Update to use non deprecated pluginlib macro
  • Merge pull request #127 from swri-robotics/add_vlp16_hires_support Add VLP16 Puck Hi-Res config file
  • Add VLP16 Puck Hi-Res support
  • velodyne_pointcloud: remove incorrect catkin_package() DEPENDS option (#93) This eliminates a CMake warning when building on Xenial.
  • Merge pull request #111 from OrebroUniversity/master Added an interface to set up raw data processing offline
  • Added an interface to set up raw data processing from a locally defined calibration file. This method is useful when processing data offline from a bag file, without starting any ros master
  • Added velodyne_laserscan package and inserted into existing launch files
  • test multiple nodelet manager support (#108)
  • add launch args to support multiple devices (#108)
  • Merge pull request #105 from fudger/patch-1 Remove unused constants.
  • Merge pull request #104 from altrouge/launch_options Add more options in launch files.
  • Rearranged alphabetically.
  • Remove unused constants. DISTANCE_MAX and DISTANCE_MAX_UNITS are not used anywhere in the code. Furthermore, using them would lead to errors as both VLP-64 manuals state that returns above 120 m should not be used. The VLP-32 manual allows 70 m as the maximum valid sensor range.
  • Merge pull request #103 from fudger/patch-1 Fix misleading typecasts.
  • Add more options in launch files.
    • rpm, device_ip, port, read_once, read_fast, repeat_delay
  • Fix misleading typecasts. intensity and VPoint::intensity are both of type float.
  • update change history
  • merge current master (#94)
  • Merge pull request #92 from adasta/master GCC Build Warnings
  • Modified velodyne_point_cloud/src/lib/rawdata.cc to address warning that last_azimuth_diff variable may be used uninitialized. Variable is now initialized to 0 at creation. velodyne/velodyne_pointcloud/src/lib/rawdata.cc:328:57: error: ‘last_azimuth_diff’ may be used uninitialized in this function [-Werror=maybe-uninitialized] azimuth_corrected_f = azimuth + (azimuth_diff * ((dsr*VLP16_DSR_TOFFSET) + (firing*VLP16_FIRING_TOFFSET)) / VLP16_BLOCK_TDURATION);
  • Modified velodyne_pointcloud/src/conversion/colors.cc to remove address build warning for strict-aliasing. velodyne/velodyne_pointcloud/src/conversions/colors.cc:84:58:
  • Merge pull request #89 from Tones29/feat_dynrec_driver Add dynamic latency configuration to velodyne_driver
  • velodyne_pointcloud: Fix compile warning "Wrong initialization order"
  • velodyne_pointcloud: add dynamic reconfig update to change log (#78)
  • Merge branch fudger-reconfigure_transform_node
  • velodyne_pointcloud: use recommended add_dependencies() CMake variable #78
  • velodyne_pointcloud: fix transform unit tests Use tf2_ros static_transform_publisher for more consistent timing (#2)
  • Merge branch reconfigure_transform_node of https://github.com/fudger/velodyne
  • prepare change history for coming Indigo release (#59)
  • calibration: unit test case improvements (#84)
  • calibration: read all intensities as float, then convert (#84)
  • calibration: add gtest for #84 This currently fails on 64e_s2.1-sztaki.yaml and on issue_84_float_intensities.yaml.
  • calibration: make max_intensity and min_intensity optional (#84) This fixes a regression in the 32e and VLP-16 calibrations which do not contain intensity values. There is still a problem with the 64e_s2.1 calibration.
  • Merge pull request #76 from pomerlef/master Sign inversion in some equations
  • Merge pull request #82 from ros-drivers/fix_pr_80 Fix pr 80; adding travis CI tests.
  • fix the yaml-cpp 0.5 code paths
  • Merge pull request #80 from ros-drivers/fix_yaml_import allow floats in min/max_intensity and make horiz_offset_correction optional
  • allow horiz_offset_correction to be optional with 0 as default
  • allow floats instead of ints in min/max_intensity
  • Resolve frame ID name using tf prefix.
  • Improve coding style.
  • Set up dynamic reconfiguration for transform_node. Previously, transform_node has neither read parameters other than frame_id from the command line nor has it exposed these parameters via dynamic reconfigure. As parameters like max_range and view_width have been initialized to zero, the inconfigurable transform_node has returned an empty point cloud. Now, transform_node launches an reconfigure server just as cloud_node. In contrast to cloud_node, transform node exposes another parameter for dynamic reconfiguration: frame_id, i.e. the frame of reference the incoming Velodyne points are transformed to.
  • Merge pull request #77 from fudger/pretty_print Fix output of calibration data onto console
  • Add a missing space.
  • Fix line that always indicates use of model VLP-16.
  • Align console output of calibration data.
  • Merge branch master of https://github.com/ros-drivers/velodyne
  • resolve sign error
  • Merge pull request #73 from fudger/master Correct important data type error for VLP-16
  • Fix data type error that distorts the point cloud.
  • Fix and add a few comments.
  • Merge pull request #68 from jlblancoc/patch-1 Remove unused variable
  • Remove unused variable I think that [dsr]{.title-ref} was unused. See line 317: for (int dsr=0; ...
  • VLP-16: skip badly formatted data packets (#62, #63)
  • restore VLP-16 min_range setting to 0.4 (#60) NOTE: There is still some other problem keeping that from working.
  • permit min_range settings below 0.9 meters (#60) No known models are currently known to return closer measurements.
  • Merge pull request #55 from lemiant/azimuth_bug_VLP16 Fixed azimuth overflow bug.
  • Fixed azimuth overflow bug. For interpolated azimuth values between 35999.5 and 36000.0 the nested round(fmod()) yields a value of 36000 which is invalid and overflows the pre-computed sin/cos arrays, since they only go form 0..35999
  • Merge pull request #51 from kunlileo/master Added vertical sin angle correction
  • Added vertical sin angle correction
  • Merge pull request #47 from prclibo/master fixed rounding bug in intensity calculation found by songshiyu
  • fixed rounding bug in intensity calculation found by songshiyu
  • fix some overly long C++ source lines
  • Merge pull request #44 from SISegwayRmp/master adding driver and pointcloud support for the VLP16
  • missed the space in the file name which caused the build to fail, removed space before extension
  • adding the VLP16 test scripts and updating the CMakeLists to include the test file from http://download.ros.org/data/velodyne/vlp16.pcap
  • adding support for the VLP16
  • Merge pull request #43 from prclibo/fix_rawdata fixed point computation according to the 64e_s2(.1) velodyne manual
  • fixed point computation according to the 64e_s2(.1) velodyne manual, with luopei"s help
  • Merge pull request #41 from prclibo/master fixed a calibration file parsing bug
  • Merge pull request #42 from prclibo/fix_gen_calibration fixed gen_calibration min/max intensity type
  • fixed gen_calibration min/max intensity type
  • fixed a calibration file parsing bug
  • Contributors: Adam Stambler, Alex Rodrigues, Alexander Schaefer, Andreas Wachaja, Bo Li, Daniel Jartoux, Gabor Meszaros, Jack OQuin, Jose Luis Blanco-Claraco, Joshua Whitley, Kevin Hallenbeck, Kris Kozak, Kun Li, Micho Radovnikovich, Scott K Logan, Thomas Solatges, Todor Stoyanov, William Woodall, jack.oquin, libo24, phussey, piyushk, pomerlef

1.2.0 (2014-08-06)

  • velodyne_pointcloud: remove model-dependent "constants" from rawdata.h (#28)
  • velodyne_pointcloud: change default min_range to 0.9 meters (#25)
  • Added support for YAML-CPP 0.5+ (#23).
  • Add dynamic_reconfigure feature.
  • Add angular limits to the output point cloud, useful for omitting part of it. (#22).
  • Contributors: Jack OQuin, Scott K Logan, Thomas Solatges

1.1.2 (2013-11-05)

  • Move unit test data to download.ros.org (#18).
  • Install missing gen_calibration.py script (#20).

1.1.1 (2013-07-30)

  • Fix lost frame_id transform problem caused by PCL 1.7 fix (#13).
  • Add support for HDL-64E S2 and S2.1 models, which were not working before (#11), thanks to Gabor Meszaros (#12).
  • Add additional parameters to launch files (#14).
  • Contributors: Gabor Meszaros, Jack OQuin

1.1.0 (2013-07-16)

  • Fix build problems due to PCL 1.7 API incompatibilities (#8), thanks to William Woodall. This version also works with Groovy, as long as the correct pcl_conversions is installed.
  • Fix errors with Mac OSX compiler (#8).
  • Install pluginlib XML files (#9).
  • Install some launch and parameter files.
  • Enable unit tests when CATKIN_ENABLE_TESTING is set (#10).

1.0.1 (2013-06-15)

  • Declare explicit pluginlib dependency (#4).

1.0.0 (2013-06-14)

  • Convert to catkin (#1).
  • Release to Hydro.

0.9.2 (2013-07-08)

  • Fix Groovy build problem (#7).

0.9.1 (2012-06-05)

  • Only include "enabled" lasers in YAML calibration file.
  • New param subdirectory for parameter files.
  • Add launch file for the HDL-32E.
  • Add rviz_points.vcg file for viewing Velodyne point clouds with rviz.
  • Fix bug when reading configuration with default minIntensity.
  • Add unit tests with 32E data.
  • Released to Electric, Fuerte and Groovy.

0.9.0 (2012-04-03)

  • Completely revised API, anticipating a 1.0.0 release.
  • HDL-32E device support.
  • New YAML configuration file format.
  • New velodyne_driver and velodyne_pointcloud packages.
  • Old velodyne_common and velodyne_pcl packages no longer included.
  • Released to Electric, Fuerte and Groovy.

0.2.6 (2011-02-23)

  • Label all timing-dependent tests "realtime" so they do not run by default on the build farm machines.

0.2.5 (2010-11-19)

  • Initial implementation of new 0.3 interfaces.
  • Support for ROS 1.3 [std_msgs::Header]{.title-ref} changes.

0.2.0 (2010-08-17)

  • Initial release to ROS C-turtle.

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.

Launch files

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged velodyne_pointcloud at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.1.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/velodyne.git
VCS Type git
VCS Version foxy-devel
Last Updated 2022-02-08
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

Point cloud conversions for Velodyne 3D LIDARs.

Additional Links

Maintainers

  • Josh Whitley

Authors

  • Jack O'Quin
  • Piyush Khandelwal
  • Jesse Vera
  • Andreas Klintberg

Velodyne ROS 2 raw to pointcloud converters

This is a ROS 2 package that takes raw velodyne data as output by the velodyne_driver node, and converts it into a sensor_msgs/PointCloud2 message.

There are two different nodes here:

velodyne_convert_node - This node takes in the raw data and converts it to a pointcloud immediately. velodyne_transform_node - This node takes the raw data and converts it only when a corresponding tf message with a compatible timestamp has arrived.

The topics and parameters for both nodes are identical, so they’ll be described together below.

Published Topics

  • velodyne_points (sensor_msgs/PointCloud2) - The pointcloud that results from the raw velodyne data.

Subscribed Topics

  • velodyne_packets (velodyne_msgs/VelodyneScan) - The raw velodyne packets coming from the velodyne_driver.

Parameters

  • calibration (string) - The path to the calibration file for the particular device. There are a set of default calibration files to start with in the “params” subdirectory in this package. Defaults to the empty string.
  • min_range (double) - The minimum range in meters that a point must be to be added to the resulting point cloud. Points closer than this are discarded. Must be between 0.1 and 10.0. Defaults to 0.9.
  • max_range (double) - The maximum range in meters that a point must be to be added to the resulting point cloud. Points further away than this are discarded. Must be between 0.1 and 200.0. Defaults to 130.0.
  • view_direction (double) - The point around the circumference of the device, in radians, to “center” the view. Combined with view_width, this allows the node to generate a pointcloud only for the given width, centered at this point. This can vastly reduce the CPU requirements of the node. Must be between -Pi and Pi, where 0 is straight ahead from the device. Defaults to 0.0.
  • view_width (double) - The width, in radians, of the view to generate for the resulting pointcloud. Combined with view_direction, this allows the node to generate a pointcloud only for the given width, centered at the view_direction point. This can vastly reduce the CPU requirements of the node. Must be between 0 and 2Pi. Defaults to 2Pi.
  • organize_cloud (bool) - Whether to organize the cloud by ring (True), or to use the order as it comes directly from the driver (False). Defaults to True.
  • target_frame (string) - The coordinate frame to apply to the generated point cloud header before publishing. If the empty string (the default), the frame is passed along from the driver packet. If this frame is different than the fixed_frame, a transformation to this coordinate frame is performed while creating the pointcloud.
  • fixed_frame (string) - The fixed coordinate frame to transform the data from.
CHANGELOG

Change history

2.1.1 (2022-02-07)

  • Replace deprecated argument names in launch (#435) Co-authored-by: Keane Quigley <<keaneq@protonmail.com>>
  • Contributors: Chris Lalancette

2.1.0 (2020-07-10)

2.0.0 (2020-07-10)

  • More fixing of dependencies. (#333)
    • More fixing of dependencies.
  • Fixes pointed out by clang-tidy (#310)
    • Rearrange header includes so clang-tidy is happy.
    • Get rid of unnecessary void arguments on methods.
    • Properly mark methods as override where appropriate.
    • Initialize members and stack variables to zero before use.
    • Mark function implementations in header files 'inline'.
    • Use more efficient 'empty' method instead of empty string.
    • Get rid of unnecessary else statements after a continue/return.
    • Get rid of unnecessary == false use.
    • Make sure to add a virtual destructor to DataContainerBase.
    • Use string != comparison instead of 'compare' method.
    • Rename PointcloudXYZIR parameter name to match implementation.
    • Get rid of usage of typedef.
    • Be more explicit about using floats.
    • Do an explicit lround to do int->float conversion.
    • Fix the intensity calculation.
    • Remove the azimuth from addPoint.
    • Make sure to reset the cloud data to 0 before reusing.
    • Use underscores on pointcloud member variables.
    • Using std::lround means we don't need to add 0.5 to the result.
    • Slightly rearrange and simplify range checks.
    • Add in example launch files for VLP32C.
  • A few more minor style updates. (#308)
    • Get rid of the last users of new in the codebase
    • Get rid of the users of 'using' in the codebase
    • Rename 'calibrationFile' -> 'calibration_file'
  • Dashing fixes (#307)
    • Use std::make_unique as appropriate.
    • Fix the azimuth calculation.
    • Fix a crash during driver startup.
    • Always recalculate the row_step while setting up the cloud.
    • Make sure to call computeTransformation.
    • Fix style errors pointed out by flake8.
  • ROS2: Add Linters to velodyne_pointcloud (#304)
    • VP: Renaming files.
    • VP: Fixed copyrights.
    • VP: cpplint is satisfied!
    • VP: Converted gen_calibration.py to Python3.
    • Uncrustify fixed!
    • VP: Lint errors clear.
    • VP: Moving organized_cloud and pointcloud to lib and building as library.
  • Check for intra-process subscribers
  • Add in example launch files.
  • Disable copy, move, and assign operators.
  • Build the components so the velodyne can be run as a component.
  • Add in NodeOptions to node constructors.
  • Only find the "common" component to PCL.
  • Make sure to install the header files for laserscan and pointcloud.
  • Properly setup the row_step.
  • Add explicit, final, and override to classes where appropriate.
  • Remove organize_cloud, fixed_frame, and target_frame configs.
  • Stop storing view_{direction,width} in the Node classes.
  • Stop storing {min,max}_range in the Node classes.
  • Make DataContainerBase::configure const reference string parameters.
  • Switch argument order to always be (min,max)
  • Remove tmp_{min,max}_angle from stored RawData config.
  • Remove unused tf_ptr.
  • Switch container_ptr to a unique_ptr.
  • container_ptr -> container_ptr_
  • Don't store number of lasers in the Transfrom/Convert node.
  • Make the RawData class RAII-style.
  • Make RawData::setup not return the number of lasers.
  • Remove unused laser_corrections_maps.
  • Remove the calibration read method.
  • Make the Calibration class only have the RAII-style constructor.
  • Remove unnecessary ros_info parameter from Calibration.
  • Remove unused calibration write method.
  • Remove unused setupOffline method.
  • Remove calibrationFile from rawdata config.
  • Switch to using nullptr everywhere.
  • fixed timpepoint issue
  • Remove dead store from rawdata.cc
  • Rename nodes.
  • Switch organize_cloud to true by default.
  • Update the documentation for ROS 2.
  • Remove debugging statements.
  • Fix dead pointers in calibration.cc.
  • Merge pull request #251 from clalancette/dashing-devel3 ROS 2 Dashing port
  • Merge pull request #214 from spuetz/feature/opc_nopcl Container cleanup and organized pointclouds
  • Merge pull request #236 from mpitropov/fix_transform_node_frame_bug set correct output frame
  • Merge pull request #234 from kmhallen/c++11 Set minimum C++ standard to C++11
  • Merge pull request #231 from ros-drivers/ci/test_better_output CI: Adding roslint as separate step. Limiting output of catkin build.
  • Merge pull request #227 from ros-drivers/roslint Applying roslint to velodyne_pointcloud.
  • Merge pull request #223 from mpitropov/feat_Add_fixed_frame Add fixed frame and use ros message time within transform node
  • Merge pull request #224 from mpitropov/feat_add_diagnostics Added diagnostic publishing
  • Merge pull request #222 from mpitropov/feat_Use_GPS_time Add flag to enable using GPS time from within the Velodyne packet instead of ROS time for scan.
  • Contributors: Andreas Klintberg, Chris Lalancette, Ian Colwell, Joshua Whitley, Kevin Hallenbeck, Matthew Pitropov, P. J. Reed, Sebastian, Sebastian Pütz

1.5.2 (2019-01-28)

  • Merge pull request #205 from xiesc/master support for 64E-S3
  • add an example yaml file for S3
  • Contributors: Joshua Whitley, Shichao XIE, xiesc

1.5.1 (2018-12-10)

  • Merge pull request #194 from ros-drivers/avoid_unnecessary_computation Avoid unnecessary computation - causes approximately 20% performance increase on VLP-32C - should be similar for other sensors
  • std::vector<>::reserve is your friend
  • add static to avoid frequence memory allocation
  • avoid unecesary calculations in unpack()
  • Contributors: Davide Faconti, Joshua Whitley

1.5.0 (2018-10-19)

  • Merge pull request #164 from ros-drivers/maint/vlp_32c_support Adding VLP-32C support. This was tested by AutonomouStuff and several external users. Though it does not include new information that I've learned (it appears that the distance resolution is different <50m vs >=50m), it is a good start.
  • Merge pull request #189 from kveretennicov/patch-1
  • Fix malformed plugin description XML ROS pluginlib only recognizes multiple <library> elements if they are under <class_libraries> XML root. It silently ignores malformed XMLs with multiple <library> "root"s and just reads the first one, due to relaxed way tinyxml2 does parsing. Though if you do [rosrun nodelet declared_nodelets]{.title-ref}, the issue is reported properly. See also similar issue in https://github.com/ros-perception/perception_pcl/issues/131
  • Adding distance_resolution to test yaml files.
  • Adding VLP-32C support. Based on work done by \@rockcdr. Adds distance_resolution calibration value to support 0.004m distance resolution for VLP-32C.
  • Contributors: Joshua Whitley, Konstantin Veretennicov

1.4.0 (2018-09-19)

  • Merge pull request #178 from sts-thm/bugfix_issue_#174 Bugfix issue #174
  • Merge pull request #177 from C-NR/feature/WrapPointcloudData Feature/wrap pointcloud data
  • Changes fixing deadlock for specific cut_angle values.
  • moved definition of VPoint and VPointCloud back to namespace rawdata in rawdata.h
  • put a wrapper around pointcloud data including a generic setter method to enable the use of arbitrary data structures (pcl pointcloud, depth image, octomaps and so on) to be filled by just using RawData::unpack method with the wrapper object as parameter
  • Merge pull request #170 from ros-drivers/maint/move_header_files Moving header files to traditional location inside include folders.
  • Merge pull request #160 from ros-drivers/maint/updating_package_xml_to_v2
  • Updated all package.xmls to ver 2. Cleaned up catkin_lint errors. All package.xml files are now compatible with version 2 of the package.xml specification in REP 140. Removed some unnecessary execute permissions on a few files. Fixed a missing test_depend.
  • Merge pull request #136 from stsundermann/patch-1 Use std::abs instead of abs
  • Adding missing 32C configuration file.
  • Merge pull request #139 from ASDeveloper00/vlp32 Adding support for VLP-32C.
  • Merge pull request #138 from volkandre/cut_at_specified_angle_feature Cut at specified angle feature
  • Updated default cut_angle parameters in launch files after switching from deg to rad.
  • Use std::abs instead of abs abs is the c version which returns an integer. This is probably not intended here, so use the templated std::abs function.
  • Contributors: Andre Volk, Autonomoustuff Developer, CNR, Joshua Whitley, Kyle Rector, Stephan Sundermann, Tobias Athmer, kennouni

1.3.0 (2017-11-10)

  • Merge pull request #110 from kmhallen/master Added velodyne_laserscan package
  • Merge remote-tracking branch ros-drivers/master
  • Merge pull request #129 from kmhallen/pluginlib_macro Modern pluginlib macro
  • Update to use non deprecated pluginlib macro
  • Merge pull request #127 from swri-robotics/add_vlp16_hires_support Add VLP16 Puck Hi-Res config file
  • Add VLP16 Puck Hi-Res support
  • velodyne_pointcloud: remove incorrect catkin_package() DEPENDS option (#93) This eliminates a CMake warning when building on Xenial.
  • Merge pull request #111 from OrebroUniversity/master Added an interface to set up raw data processing offline
  • Added an interface to set up raw data processing from a locally defined calibration file. This method is useful when processing data offline from a bag file, without starting any ros master
  • Added velodyne_laserscan package and inserted into existing launch files
  • test multiple nodelet manager support (#108)
  • add launch args to support multiple devices (#108)
  • Merge pull request #105 from fudger/patch-1 Remove unused constants.
  • Merge pull request #104 from altrouge/launch_options Add more options in launch files.
  • Rearranged alphabetically.
  • Remove unused constants. DISTANCE_MAX and DISTANCE_MAX_UNITS are not used anywhere in the code. Furthermore, using them would lead to errors as both VLP-64 manuals state that returns above 120 m should not be used. The VLP-32 manual allows 70 m as the maximum valid sensor range.
  • Merge pull request #103 from fudger/patch-1 Fix misleading typecasts.
  • Add more options in launch files.
    • rpm, device_ip, port, read_once, read_fast, repeat_delay
  • Fix misleading typecasts. intensity and VPoint::intensity are both of type float.
  • update change history
  • merge current master (#94)
  • Merge pull request #92 from adasta/master GCC Build Warnings
  • Modified velodyne_point_cloud/src/lib/rawdata.cc to address warning that last_azimuth_diff variable may be used uninitialized. Variable is now initialized to 0 at creation. velodyne/velodyne_pointcloud/src/lib/rawdata.cc:328:57: error: ‘last_azimuth_diff’ may be used uninitialized in this function [-Werror=maybe-uninitialized] azimuth_corrected_f = azimuth + (azimuth_diff * ((dsr*VLP16_DSR_TOFFSET) + (firing*VLP16_FIRING_TOFFSET)) / VLP16_BLOCK_TDURATION);
  • Modified velodyne_pointcloud/src/conversion/colors.cc to remove address build warning for strict-aliasing. velodyne/velodyne_pointcloud/src/conversions/colors.cc:84:58:
  • Merge pull request #89 from Tones29/feat_dynrec_driver Add dynamic latency configuration to velodyne_driver
  • velodyne_pointcloud: Fix compile warning "Wrong initialization order"
  • velodyne_pointcloud: add dynamic reconfig update to change log (#78)
  • Merge branch fudger-reconfigure_transform_node
  • velodyne_pointcloud: use recommended add_dependencies() CMake variable #78
  • velodyne_pointcloud: fix transform unit tests Use tf2_ros static_transform_publisher for more consistent timing (#2)
  • Merge branch reconfigure_transform_node of https://github.com/fudger/velodyne
  • prepare change history for coming Indigo release (#59)
  • calibration: unit test case improvements (#84)
  • calibration: read all intensities as float, then convert (#84)
  • calibration: add gtest for #84 This currently fails on 64e_s2.1-sztaki.yaml and on issue_84_float_intensities.yaml.
  • calibration: make max_intensity and min_intensity optional (#84) This fixes a regression in the 32e and VLP-16 calibrations which do not contain intensity values. There is still a problem with the 64e_s2.1 calibration.
  • Merge pull request #76 from pomerlef/master Sign inversion in some equations
  • Merge pull request #82 from ros-drivers/fix_pr_80 Fix pr 80; adding travis CI tests.
  • fix the yaml-cpp 0.5 code paths
  • Merge pull request #80 from ros-drivers/fix_yaml_import allow floats in min/max_intensity and make horiz_offset_correction optional
  • allow horiz_offset_correction to be optional with 0 as default
  • allow floats instead of ints in min/max_intensity
  • Resolve frame ID name using tf prefix.
  • Improve coding style.
  • Set up dynamic reconfiguration for transform_node. Previously, transform_node has neither read parameters other than frame_id from the command line nor has it exposed these parameters via dynamic reconfigure. As parameters like max_range and view_width have been initialized to zero, the inconfigurable transform_node has returned an empty point cloud. Now, transform_node launches an reconfigure server just as cloud_node. In contrast to cloud_node, transform node exposes another parameter for dynamic reconfiguration: frame_id, i.e. the frame of reference the incoming Velodyne points are transformed to.
  • Merge pull request #77 from fudger/pretty_print Fix output of calibration data onto console
  • Add a missing space.
  • Fix line that always indicates use of model VLP-16.
  • Align console output of calibration data.
  • Merge branch master of https://github.com/ros-drivers/velodyne
  • resolve sign error
  • Merge pull request #73 from fudger/master Correct important data type error for VLP-16
  • Fix data type error that distorts the point cloud.
  • Fix and add a few comments.
  • Merge pull request #68 from jlblancoc/patch-1 Remove unused variable
  • Remove unused variable I think that [dsr]{.title-ref} was unused. See line 317: for (int dsr=0; ...
  • VLP-16: skip badly formatted data packets (#62, #63)
  • restore VLP-16 min_range setting to 0.4 (#60) NOTE: There is still some other problem keeping that from working.
  • permit min_range settings below 0.9 meters (#60) No known models are currently known to return closer measurements.
  • Merge pull request #55 from lemiant/azimuth_bug_VLP16 Fixed azimuth overflow bug.
  • Fixed azimuth overflow bug. For interpolated azimuth values between 35999.5 and 36000.0 the nested round(fmod()) yields a value of 36000 which is invalid and overflows the pre-computed sin/cos arrays, since they only go form 0..35999
  • Merge pull request #51 from kunlileo/master Added vertical sin angle correction
  • Added vertical sin angle correction
  • Merge pull request #47 from prclibo/master fixed rounding bug in intensity calculation found by songshiyu
  • fixed rounding bug in intensity calculation found by songshiyu
  • fix some overly long C++ source lines
  • Merge pull request #44 from SISegwayRmp/master adding driver and pointcloud support for the VLP16
  • missed the space in the file name which caused the build to fail, removed space before extension
  • adding the VLP16 test scripts and updating the CMakeLists to include the test file from http://download.ros.org/data/velodyne/vlp16.pcap
  • adding support for the VLP16
  • Merge pull request #43 from prclibo/fix_rawdata fixed point computation according to the 64e_s2(.1) velodyne manual
  • fixed point computation according to the 64e_s2(.1) velodyne manual, with luopei"s help
  • Merge pull request #41 from prclibo/master fixed a calibration file parsing bug
  • Merge pull request #42 from prclibo/fix_gen_calibration fixed gen_calibration min/max intensity type
  • fixed gen_calibration min/max intensity type
  • fixed a calibration file parsing bug
  • Contributors: Adam Stambler, Alex Rodrigues, Alexander Schaefer, Andreas Wachaja, Bo Li, Daniel Jartoux, Gabor Meszaros, Jack OQuin, Jose Luis Blanco-Claraco, Joshua Whitley, Kevin Hallenbeck, Kris Kozak, Kun Li, Micho Radovnikovich, Scott K Logan, Thomas Solatges, Todor Stoyanov, William Woodall, jack.oquin, libo24, phussey, piyushk, pomerlef

1.2.0 (2014-08-06)

  • velodyne_pointcloud: remove model-dependent "constants" from rawdata.h (#28)
  • velodyne_pointcloud: change default min_range to 0.9 meters (#25)
  • Added support for YAML-CPP 0.5+ (#23).
  • Add dynamic_reconfigure feature.
  • Add angular limits to the output point cloud, useful for omitting part of it. (#22).
  • Contributors: Jack OQuin, Scott K Logan, Thomas Solatges

1.1.2 (2013-11-05)

  • Move unit test data to download.ros.org (#18).
  • Install missing gen_calibration.py script (#20).

1.1.1 (2013-07-30)

  • Fix lost frame_id transform problem caused by PCL 1.7 fix (#13).
  • Add support for HDL-64E S2 and S2.1 models, which were not working before (#11), thanks to Gabor Meszaros (#12).
  • Add additional parameters to launch files (#14).
  • Contributors: Gabor Meszaros, Jack OQuin

1.1.0 (2013-07-16)

  • Fix build problems due to PCL 1.7 API incompatibilities (#8), thanks to William Woodall. This version also works with Groovy, as long as the correct pcl_conversions is installed.
  • Fix errors with Mac OSX compiler (#8).
  • Install pluginlib XML files (#9).
  • Install some launch and parameter files.
  • Enable unit tests when CATKIN_ENABLE_TESTING is set (#10).

1.0.1 (2013-06-15)

  • Declare explicit pluginlib dependency (#4).

1.0.0 (2013-06-14)

  • Convert to catkin (#1).
  • Release to Hydro.

0.9.2 (2013-07-08)

  • Fix Groovy build problem (#7).

0.9.1 (2012-06-05)

  • Only include "enabled" lasers in YAML calibration file.
  • New param subdirectory for parameter files.
  • Add launch file for the HDL-32E.
  • Add rviz_points.vcg file for viewing Velodyne point clouds with rviz.
  • Fix bug when reading configuration with default minIntensity.
  • Add unit tests with 32E data.
  • Released to Electric, Fuerte and Groovy.

0.9.0 (2012-04-03)

  • Completely revised API, anticipating a 1.0.0 release.
  • HDL-32E device support.
  • New YAML configuration file format.
  • New velodyne_driver and velodyne_pointcloud packages.
  • Old velodyne_common and velodyne_pcl packages no longer included.
  • Released to Electric, Fuerte and Groovy.

0.2.6 (2011-02-23)

  • Label all timing-dependent tests "realtime" so they do not run by default on the build farm machines.

0.2.5 (2010-11-19)

  • Initial implementation of new 0.3 interfaces.
  • Support for ROS 1.3 [std_msgs::Header]{.title-ref} changes.

0.2.0 (2010-08-17)

  • Initial release to ROS C-turtle.

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.

Launch files

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged velodyne_pointcloud at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.7.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/velodyne.git
VCS Type git
VCS Version master
Last Updated 2023-06-01
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Point cloud conversions for Velodyne 3D LIDARs.

Additional Links

Maintainers

  • Josh Whitley

Authors

  • Jack O'Quin
  • Piyush Khandelwal
  • Jesse Vera
  • Sebastian Pütz
README
No README found. See repository README.
CHANGELOG

Change history

1.7.0 (2022-07-08)

  • build timings in offline setup (#428) Currently when using the offline setup, it does not build the per-point timing offsets which means when unpacking the packets in the offline mode, you cannot timestamp each point with its packet time. This commit does the following:
    • call buildTimings from setupOffline function
    • add model to setupOffline interface
    • set config model param which is needed by buildTimings
  • vls128: add line only once all four banks are processed (#413)
  • PCAP timestamps & PCAP+GPS timestamps (#384)
    • Add pcap_time param and implement gps_time with it
    • If gps_time == true, ignore pcap_time
  • Fixed row_step=0 when init_width=0 (dense cloud) (#404) The PointCloud2 msg will be then valid: http://docs.ros.org/en/melodic/api/sensor_msgs/html/msg/PointCloud2.html Referred issues:
  • Fix accidental integer division (#391) Intensity values for VLP-16 were being calculated incorrectly.
  • Add VLS128 launch and calibration file (#382)
  • Fixing incorrect type in velodyne_pointcloud.
  • Fixing typo.
  • Add support for the velodyne Alpha Prime (#370)
    • Add support for the velodyne Alpha Prime
    • Change packet rate for the VLS128 according to the times specified in the manual
    • Organize setup functions to avoid code duplication. Add a constant for the model ID of the VLS128.

    * Use the defined constants to calculate the time offset of the points for the VLS128 Co-authored-by: jugo <<juan.gonzalez@unibw.de>>

  • Contributors: Daisuke Nishimatsu, HMellor, Institute for Autonomous Systems Technology, Joshua Whitley, Martin Valgur, Nick Charron, Sebastian Scherer, matlabbe

1.6.1 (2020-11-09)

  • Add invalid points in organized cloud (#360)
    • Set NaN in ordered point cloud in case of no return
    • Adapt to current master

    * consider min/max angle and timing_offsets also in organized mode Co-authored-by: Nuernberg Thomas (CR/AEV4) <<thomas.nuernberg@de.bosch.com>>

  • build and export library data_containers so it can be used in other packages (#359)
  • Contributors: Sebastian Scherer

1.6.0 (2020-07-09)

  • Unify tf frame parameters between transform and cloud nodes (#344)
    • Unify tf frame parameters between transform and cloud nodes
    • Use more common ROS terminology instead of 'htm'
    • Just use tf listener when necessary
    • Migrate package to tf2
    • Explicitly store sensor frame in a dedicated variable to make code easier to read

    * Avoid unnecessary transforms when sensor_frame == target_frame Co-authored-by: anre <<andreas.reich@unibw.de>>

  • Velodyne pcl (#335)
    • fix time assignment in organized cloud container
    • add velodyne_pcl package with point_types.h
    • add README.md with infos for conversion
    • rename containers to cover the added time property

    * Update package.xml to Format2 and package version to 1.5.2 Co-authored-by: Joshua Whitley <<josh.whitley@autoware.org>>

  • Passing fixed_frame and target_frame to Convert object. (#330)
  • Updating maintainer email address.
  • Increase the max_range of the 32C launch file (#323)
  • Getting model param for timings from private node handle. (#318)
  • updated model to have a default of "" so that tests run successfully
  • Move timing offsets functionality into class private. Also fix linter errors
  • Added model param to each of the cloud nodelet starters
  • Initial commit to timestamp each point using the timing spec in the manuals
  • use correct node handles and node names for diagnostic_updater::Updater
  • Added config option to timestamp a full scan based on first velo packet instead of last packet
  • Remove a dead store from rawdata.cc.
  • fix for #267, transform each packet
  • Merge pull request #250 from zhixy/master bug fix for row step
  • Merge pull request #253 from ros-drivers/fix/fixed_frame_target_frame Add configurable fixed_frame/target_frame for velodyne_pointcloud
  • Merge pull request #214 from spuetz/feature/opc_nopcl Container cleanup and organized pointclouds
  • Merge pull request #236 from mpitropov/fix_transform_node_frame_bug set correct output frame
  • Merge pull request #234 from kmhallen/c++11 Set minimum C++ standard to C++11
  • Merge pull request #223 from mpitropov/feat_Add_fixed_frame Add fixed frame and use ros message time within transform node
  • Made static tf publisher test adhere to REP 105
  • change more odom to map
  • Merge pull request #224 from mpitropov/feat_add_diagnostics Added diagnostic publishing
  • Merge pull request #222 from mpitropov/feat_Use_GPS_time Add flag to enable using GPS time from within the Velodyne packet instead of ROS time for scan.
  • Created gps_time param to enable this feature
  • Contributors: AndreasR30, Chris Lalancette, Daniel Seifert, Ian Colwell, Joshua Whitley, Kevin Hallenbeck, Matthew Pitropov, Sebastian, Sebastian Pütz, Shawn Hanna, zhixiangyang

1.5.2 (2019-01-28)

  • Merge pull request #205 from xiesc/master support for 64E-S3
  • add an example yaml file for S3
  • Contributors: Joshua Whitley, Shichao XIE, xiesc

1.5.1 (2018-12-10)

  • Merge pull request #194 from ros-drivers/avoid_unnecessary_computation Avoid unnecessary computation - causes approximately 20% performance increase on VLP-32C - should be similar for other sensors
  • std::vector<>::reserve is your friend
  • add static to avoid frequence memory allocation
  • avoid unecesary calculations in unpack()
  • Contributors: Davide Faconti, Joshua Whitley

1.5.0 (2018-10-19)

  • Merge pull request #164 from ros-drivers/maint/vlp_32c_support Adding VLP-32C support. This was tested by AutonomouStuff and several external users. Though it does not include new information that I've learned (it appears that the distance resolution is different <50m vs >=50m), it is a good start.
  • Merge pull request #189 from kveretennicov/patch-1
  • Fix malformed plugin description XML ROS pluginlib only recognizes multiple <library> elements if they are under <class_libraries> XML root. It silently ignores malformed XMLs with multiple <library> "root"s and just reads the first one, due to relaxed way tinyxml2 does parsing. Though if you do [rosrun nodelet declared_nodelets]{.title-ref}, the issue is reported properly. See also similar issue in https://github.com/ros-perception/perception_pcl/issues/131
  • Adding distance_resolution to test yaml files.
  • Adding VLP-32C support. Based on work done by \@rockcdr. Adds distance_resolution calibration value to support 0.004m distance resolution for VLP-32C.
  • Contributors: Joshua Whitley, Konstantin Veretennicov

1.4.0 (2018-09-19)

  • Merge pull request #178 from sts-thm/bugfix_issue_#174 Bugfix issue #174
  • Merge pull request #177 from C-NR/feature/WrapPointcloudData Feature/wrap pointcloud data
  • Changes fixing deadlock for specific cut_angle values.
  • moved definition of VPoint and VPointCloud back to namespace rawdata in rawdata.h
  • put a wrapper around pointcloud data including a generic setter method to enable the use of arbitrary data structures (pcl pointcloud, depth image, octomaps and so on) to be filled by just using RawData::unpack method with the wrapper object as parameter
  • Merge pull request #170 from ros-drivers/maint/move_header_files Moving header files to traditional location inside include folders.
  • Merge pull request #160 from ros-drivers/maint/updating_package_xml_to_v2
  • Updated all package.xmls to ver 2. Cleaned up catkin_lint errors. All package.xml files are now compatible with version 2 of the package.xml specification in REP 140. Removed some unnecessary execute permissions on a few files. Fixed a missing test_depend.
  • Merge pull request #136 from stsundermann/patch-1 Use std::abs instead of abs
  • Adding missing 32C configuration file.
  • Merge pull request #139 from ASDeveloper00/vlp32 Adding support for VLP-32C.
  • Merge pull request #138 from volkandre/cut_at_specified_angle_feature Cut at specified angle feature
  • Updated default cut_angle parameters in launch files after switching from deg to rad.
  • Use std::abs instead of abs abs is the c version which returns an integer. This is probably not intended here, so use the templated std::abs function.
  • Contributors: Andre Volk, Autonomoustuff Developer, CNR, Joshua Whitley, Kyle Rector, Stephan Sundermann, Tobias Athmer, kennouni

1.3.0 (2017-11-10)

  • Merge pull request #110 from kmhallen/master Added velodyne_laserscan package
  • Merge remote-tracking branch ros-drivers/master
  • Merge pull request #129 from kmhallen/pluginlib_macro Modern pluginlib macro
  • Update to use non deprecated pluginlib macro
  • Merge pull request #127 from swri-robotics/add_vlp16_hires_support Add VLP16 Puck Hi-Res config file
  • Add VLP16 Puck Hi-Res support
  • velodyne_pointcloud: remove incorrect catkin_package() DEPENDS option (#93) This eliminates a CMake warning when building on Xenial.
  • Merge pull request #111 from OrebroUniversity/master Added an interface to set up raw data processing offline
  • Added an interface to set up raw data processing from a locally defined calibration file. This method is useful when processing data offline from a bag file, without starting any ros master
  • Added velodyne_laserscan package and inserted into existing launch files
  • test multiple nodelet manager support (#108)
  • add launch args to support multiple devices (#108)
  • Merge pull request #105 from fudger/patch-1 Remove unused constants.
  • Merge pull request #104 from altrouge/launch_options Add more options in launch files.
  • Rearranged alphabetically.
  • Remove unused constants. DISTANCE_MAX and DISTANCE_MAX_UNITS are not used anywhere in the code. Furthermore, using them would lead to errors as both VLP-64 manuals state that returns above 120 m should not be used. The VLP-32 manual allows 70 m as the maximum valid sensor range.
  • Merge pull request #103 from fudger/patch-1 Fix misleading typecasts.
  • Add more options in launch files.
    • rpm, device_ip, port, read_once, read_fast, repeat_delay
  • Fix misleading typecasts. intensity and VPoint::intensity are both of type float.
  • update change history
  • merge current master (#94)
  • Merge pull request #92 from adasta/master GCC Build Warnings
  • Modified velodyne_point_cloud/src/lib/rawdata.cc to address warning that last_azimuth_diff variable may be used uninitialized. Variable is now initialized to 0 at creation. velodyne/velodyne_pointcloud/src/lib/rawdata.cc:328:57: error: ‘last_azimuth_diff’ may be used uninitialized in this function [-Werror=maybe-uninitialized] azimuth_corrected_f = azimuth + (azimuth_diff * ((dsr*VLP16_DSR_TOFFSET) + (firing*VLP16_FIRING_TOFFSET)) / VLP16_BLOCK_TDURATION);
  • Modified velodyne_pointcloud/src/conversion/colors.cc to remove address build warning for strict-aliasing. velodyne/velodyne_pointcloud/src/conversions/colors.cc:84:58:
  • Merge pull request #89 from Tones29/feat_dynrec_driver Add dynamic latency configuration to velodyne_driver
  • velodyne_pointcloud: Fix compile warning "Wrong initialization order"
  • velodyne_pointcloud: add dynamic reconfig update to change log (#78)
  • Merge branch fudger-reconfigure_transform_node
  • velodyne_pointcloud: use recommended add_dependencies() CMake variable #78
  • velodyne_pointcloud: fix transform unit tests Use tf2_ros static_transform_publisher for more consistent timing (#2)
  • Merge branch reconfigure_transform_node of https://github.com/fudger/velodyne
  • prepare change history for coming Indigo release (#59)
  • calibration: unit test case improvements (#84)
  • calibration: read all intensities as float, then convert (#84)
  • calibration: add gtest for #84 This currently fails on 64e_s2.1-sztaki.yaml and on issue_84_float_intensities.yaml.
  • calibration: make max_intensity and min_intensity optional (#84) This fixes a regression in the 32e and VLP-16 calibrations which do not contain intensity values. There is still a problem with the 64e_s2.1 calibration.
  • Merge pull request #76 from pomerlef/master Sign inversion in some equations
  • Merge pull request #82 from ros-drivers/fix_pr_80 Fix pr 80; adding travis CI tests.
  • fix the yaml-cpp 0.5 code paths
  • Merge pull request #80 from ros-drivers/fix_yaml_import allow floats in min/max_intensity and make horiz_offset_correction optional
  • allow horiz_offset_correction to be optional with 0 as default
  • allow floats instead of ints in min/max_intensity
  • Resolve frame ID name using tf prefix.
  • Improve coding style.
  • Set up dynamic reconfiguration for transform_node. Previously, transform_node has neither read parameters other than frame_id from the command line nor has it exposed these parameters via dynamic reconfigure. As parameters like max_range and view_width have been initialized to zero, the inconfigurable transform_node has returned an empty point cloud. Now, transform_node launches an reconfigure server just as cloud_node. In contrast to cloud_node, transform node exposes another parameter for dynamic reconfiguration: frame_id, i.e. the frame of reference the incoming Velodyne points are transformed to.
  • Merge pull request #77 from fudger/pretty_print Fix output of calibration data onto console
  • Add a missing space.
  • Fix line that always indicates use of model VLP-16.
  • Align console output of calibration data.
  • Merge branch master of https://github.com/ros-drivers/velodyne
  • resolve sign error
  • Merge pull request #73 from fudger/master Correct important data type error for VLP-16
  • Fix data type error that distorts the point cloud.
  • Fix and add a few comments.
  • Merge pull request #68 from jlblancoc/patch-1 Remove unused variable
  • Remove unused variable I think that [dsr]{.title-ref} was unused. See line 317: for (int dsr=0; ...
  • VLP-16: skip badly formatted data packets (#62, #63)
  • restore VLP-16 min_range setting to 0.4 (#60) NOTE: There is still some other problem keeping that from working.
  • permit min_range settings below 0.9 meters (#60) No known models are currently known to return closer measurements.
  • Merge pull request #55 from lemiant/azimuth_bug_VLP16 Fixed azimuth overflow bug.
  • Fixed azimuth overflow bug. For interpolated azimuth values between 35999.5 and 36000.0 the nested round(fmod()) yields a value of 36000 which is invalid and overflows the pre-computed sin/cos arrays, since they only go form 0..35999
  • Merge pull request #51 from kunlileo/master Added vertical sin angle correction
  • Added vertical sin angle correction
  • Merge pull request #47 from prclibo/master fixed rounding bug in intensity calculation found by songshiyu
  • fixed rounding bug in intensity calculation found by songshiyu
  • fix some overly long C++ source lines
  • Merge pull request #44 from SISegwayRmp/master adding driver and pointcloud support for the VLP16
  • missed the space in the file name which caused the build to fail, removed space before extension
  • adding the VLP16 test scripts and updating the CMakeLists to include the test file from http://download.ros.org/data/velodyne/vlp16.pcap
  • adding support for the VLP16
  • Merge pull request #43 from prclibo/fix_rawdata fixed point computation according to the 64e_s2(.1) velodyne manual
  • fixed point computation according to the 64e_s2(.1) velodyne manual, with luopei"s help
  • Merge pull request #41 from prclibo/master fixed a calibration file parsing bug
  • Merge pull request #42 from prclibo/fix_gen_calibration fixed gen_calibration min/max intensity type
  • fixed gen_calibration min/max intensity type
  • fixed a calibration file parsing bug
  • Contributors: Adam Stambler, Alex Rodrigues, Alexander Schaefer, Andreas Wachaja, Bo Li, Daniel Jartoux, Gabor Meszaros, Jack OQuin, Jose Luis Blanco-Claraco, Joshua Whitley, Kevin Hallenbeck, Kris Kozak, Kun Li, Micho Radovnikovich, Scott K Logan, Thomas Solatges, Todor Stoyanov, William Woodall, jack.oquin, libo24, phussey, piyushk, pomerlef

1.2.0 (2014-08-06)

  • velodyne_pointcloud: remove model-dependent "constants" from rawdata.h (#28)
  • velodyne_pointcloud: change default min_range to 0.9 meters (#25)
  • Added support for YAML-CPP 0.5+ (#23).
  • Add dynamic_reconfigure feature.
  • Add angular limits to the output point cloud, useful for omitting part of it. (#22).
  • Contributors: Jack OQuin, Scott K Logan, Thomas Solatges

1.1.2 (2013-11-05)

  • Move unit test data to download.ros.org (#18).
  • Install missing gen_calibration.py script (#20).

1.1.1 (2013-07-30)

  • Fix lost frame_id transform problem caused by PCL 1.7 fix (#13).
  • Add support for HDL-64E S2 and S2.1 models, which were not working before (#11), thanks to Gabor Meszaros (#12).
  • Add additional parameters to launch files (#14).
  • Contributors: Gabor Meszaros, Jack OQuin

1.1.0 (2013-07-16)

  • Fix build problems due to PCL 1.7 API incompatibilities (#8), thanks to William Woodall. This version also works with Groovy, as long as the correct pcl_conversions is installed.
  • Fix errors with Mac OSX compiler (#8).
  • Install pluginlib XML files (#9).
  • Install some launch and parameter files.
  • Enable unit tests when CATKIN_ENABLE_TESTING is set (#10).

1.0.1 (2013-06-15)

  • Declare explicit pluginlib dependency (#4).

1.0.0 (2013-06-14)

  • Convert to catkin (#1).
  • Release to Hydro.

0.9.2 (2013-07-08)

  • Fix Groovy build problem (#7).

0.9.1 (2012-06-05)

  • Only include "enabled" lasers in YAML calibration file.
  • New param subdirectory for parameter files.
  • Add launch file for the HDL-32E.
  • Add rviz_points.vcg file for viewing Velodyne point clouds with rviz.
  • Fix bug when reading configuration with default minIntensity.
  • Add unit tests with 32E data.
  • Released to Electric, Fuerte and Groovy.

0.9.0 (2012-04-03)

  • Completely revised API, anticipating a 1.0.0 release.
  • HDL-32E device support.
  • New YAML configuration file format.
  • New velodyne_driver and velodyne_pointcloud packages.
  • Old velodyne_common and velodyne_pcl packages no longer included.
  • Released to Electric, Fuerte and Groovy.

0.2.6 (2011-02-23)

  • Label all timing-dependent tests "realtime" so they do not run by default on the build farm machines.

0.2.5 (2010-11-19)

  • Initial implementation of new 0.3 interfaces.
  • Support for ROS 1.3 [std_msgs::Header]{.title-ref} changes.

0.2.0 (2010-08-17)

  • Initial release to ROS C-turtle.

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.

Launch files

  • launch/transform_nodelet.launch
    • -*- mode: XML -*-
      • model [default: ]
      • calibration [default: ]
      • fixed_frame [default: ]
      • target_frame [default: ]
      • manager [default: velodyne_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.9]
      • organize_cloud [default: false]
  • launch/VLP-32C_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/VeloView-VLP-32C.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 200.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • pcap_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/64e_S3.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/64e_s3-xiesc.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • pcap_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
  • launch/VLP16_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/VLP16db.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • pcap_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/32e_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/32db.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • pcap_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/laserscan_nodelet.launch
    • -*- mode: XML -*-
      • manager [default: velodyne_nodelet_manager]
      • ring [default: -1]
      • resolution [default: 0.007]
  • launch/VLS128_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/VLS128.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 200.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • tests/static_vehicle_tf.launch
    • -*- mode: XML -*-

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged velodyne_pointcloud at Robotics Stack Exchange

No version for distro jade. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 1.7.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/velodyne.git
VCS Type git
VCS Version master
Last Updated 2023-06-01
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Point cloud conversions for Velodyne 3D LIDARs.

Additional Links

Maintainers

  • Josh Whitley

Authors

  • Jack O'Quin
  • Piyush Khandelwal
  • Jesse Vera
  • Sebastian Pütz
README
No README found. See repository README.
CHANGELOG

Change history

1.7.0 (2022-07-08)

  • build timings in offline setup (#428) Currently when using the offline setup, it does not build the per-point timing offsets which means when unpacking the packets in the offline mode, you cannot timestamp each point with its packet time. This commit does the following:
    • call buildTimings from setupOffline function
    • add model to setupOffline interface
    • set config model param which is needed by buildTimings
  • vls128: add line only once all four banks are processed (#413)
  • PCAP timestamps & PCAP+GPS timestamps (#384)
    • Add pcap_time param and implement gps_time with it
    • If gps_time == true, ignore pcap_time
  • Fixed row_step=0 when init_width=0 (dense cloud) (#404) The PointCloud2 msg will be then valid: http://docs.ros.org/en/melodic/api/sensor_msgs/html/msg/PointCloud2.html Referred issues:
  • Fix accidental integer division (#391) Intensity values for VLP-16 were being calculated incorrectly.
  • Add VLS128 launch and calibration file (#382)
  • Fixing incorrect type in velodyne_pointcloud.
  • Fixing typo.
  • Add support for the velodyne Alpha Prime (#370)
    • Add support for the velodyne Alpha Prime
    • Change packet rate for the VLS128 according to the times specified in the manual
    • Organize setup functions to avoid code duplication. Add a constant for the model ID of the VLS128.

    * Use the defined constants to calculate the time offset of the points for the VLS128 Co-authored-by: jugo <<juan.gonzalez@unibw.de>>

  • Contributors: Daisuke Nishimatsu, HMellor, Institute for Autonomous Systems Technology, Joshua Whitley, Martin Valgur, Nick Charron, Sebastian Scherer, matlabbe

1.6.1 (2020-11-09)

  • Add invalid points in organized cloud (#360)
    • Set NaN in ordered point cloud in case of no return
    • Adapt to current master

    * consider min/max angle and timing_offsets also in organized mode Co-authored-by: Nuernberg Thomas (CR/AEV4) <<thomas.nuernberg@de.bosch.com>>

  • build and export library data_containers so it can be used in other packages (#359)
  • Contributors: Sebastian Scherer

1.6.0 (2020-07-09)

  • Unify tf frame parameters between transform and cloud nodes (#344)
    • Unify tf frame parameters between transform and cloud nodes
    • Use more common ROS terminology instead of 'htm'
    • Just use tf listener when necessary
    • Migrate package to tf2
    • Explicitly store sensor frame in a dedicated variable to make code easier to read

    * Avoid unnecessary transforms when sensor_frame == target_frame Co-authored-by: anre <<andreas.reich@unibw.de>>

  • Velodyne pcl (#335)
    • fix time assignment in organized cloud container
    • add velodyne_pcl package with point_types.h
    • add README.md with infos for conversion
    • rename containers to cover the added time property

    * Update package.xml to Format2 and package version to 1.5.2 Co-authored-by: Joshua Whitley <<josh.whitley@autoware.org>>

  • Passing fixed_frame and target_frame to Convert object. (#330)
  • Updating maintainer email address.
  • Increase the max_range of the 32C launch file (#323)
  • Getting model param for timings from private node handle. (#318)
  • updated model to have a default of "" so that tests run successfully
  • Move timing offsets functionality into class private. Also fix linter errors
  • Added model param to each of the cloud nodelet starters
  • Initial commit to timestamp each point using the timing spec in the manuals
  • use correct node handles and node names for diagnostic_updater::Updater
  • Added config option to timestamp a full scan based on first velo packet instead of last packet
  • Remove a dead store from rawdata.cc.
  • fix for #267, transform each packet
  • Merge pull request #250 from zhixy/master bug fix for row step
  • Merge pull request #253 from ros-drivers/fix/fixed_frame_target_frame Add configurable fixed_frame/target_frame for velodyne_pointcloud
  • Merge pull request #214 from spuetz/feature/opc_nopcl Container cleanup and organized pointclouds
  • Merge pull request #236 from mpitropov/fix_transform_node_frame_bug set correct output frame
  • Merge pull request #234 from kmhallen/c++11 Set minimum C++ standard to C++11
  • Merge pull request #223 from mpitropov/feat_Add_fixed_frame Add fixed frame and use ros message time within transform node
  • Made static tf publisher test adhere to REP 105
  • change more odom to map
  • Merge pull request #224 from mpitropov/feat_add_diagnostics Added diagnostic publishing
  • Merge pull request #222 from mpitropov/feat_Use_GPS_time Add flag to enable using GPS time from within the Velodyne packet instead of ROS time for scan.
  • Created gps_time param to enable this feature
  • Contributors: AndreasR30, Chris Lalancette, Daniel Seifert, Ian Colwell, Joshua Whitley, Kevin Hallenbeck, Matthew Pitropov, Sebastian, Sebastian Pütz, Shawn Hanna, zhixiangyang

1.5.2 (2019-01-28)

  • Merge pull request #205 from xiesc/master support for 64E-S3
  • add an example yaml file for S3
  • Contributors: Joshua Whitley, Shichao XIE, xiesc

1.5.1 (2018-12-10)

  • Merge pull request #194 from ros-drivers/avoid_unnecessary_computation Avoid unnecessary computation - causes approximately 20% performance increase on VLP-32C - should be similar for other sensors
  • std::vector<>::reserve is your friend
  • add static to avoid frequence memory allocation
  • avoid unecesary calculations in unpack()
  • Contributors: Davide Faconti, Joshua Whitley

1.5.0 (2018-10-19)

  • Merge pull request #164 from ros-drivers/maint/vlp_32c_support Adding VLP-32C support. This was tested by AutonomouStuff and several external users. Though it does not include new information that I've learned (it appears that the distance resolution is different <50m vs >=50m), it is a good start.
  • Merge pull request #189 from kveretennicov/patch-1
  • Fix malformed plugin description XML ROS pluginlib only recognizes multiple <library> elements if they are under <class_libraries> XML root. It silently ignores malformed XMLs with multiple <library> "root"s and just reads the first one, due to relaxed way tinyxml2 does parsing. Though if you do [rosrun nodelet declared_nodelets]{.title-ref}, the issue is reported properly. See also similar issue in https://github.com/ros-perception/perception_pcl/issues/131
  • Adding distance_resolution to test yaml files.
  • Adding VLP-32C support. Based on work done by \@rockcdr. Adds distance_resolution calibration value to support 0.004m distance resolution for VLP-32C.
  • Contributors: Joshua Whitley, Konstantin Veretennicov

1.4.0 (2018-09-19)

  • Merge pull request #178 from sts-thm/bugfix_issue_#174 Bugfix issue #174
  • Merge pull request #177 from C-NR/feature/WrapPointcloudData Feature/wrap pointcloud data
  • Changes fixing deadlock for specific cut_angle values.
  • moved definition of VPoint and VPointCloud back to namespace rawdata in rawdata.h
  • put a wrapper around pointcloud data including a generic setter method to enable the use of arbitrary data structures (pcl pointcloud, depth image, octomaps and so on) to be filled by just using RawData::unpack method with the wrapper object as parameter
  • Merge pull request #170 from ros-drivers/maint/move_header_files Moving header files to traditional location inside include folders.
  • Merge pull request #160 from ros-drivers/maint/updating_package_xml_to_v2
  • Updated all package.xmls to ver 2. Cleaned up catkin_lint errors. All package.xml files are now compatible with version 2 of the package.xml specification in REP 140. Removed some unnecessary execute permissions on a few files. Fixed a missing test_depend.
  • Merge pull request #136 from stsundermann/patch-1 Use std::abs instead of abs
  • Adding missing 32C configuration file.
  • Merge pull request #139 from ASDeveloper00/vlp32 Adding support for VLP-32C.
  • Merge pull request #138 from volkandre/cut_at_specified_angle_feature Cut at specified angle feature
  • Updated default cut_angle parameters in launch files after switching from deg to rad.
  • Use std::abs instead of abs abs is the c version which returns an integer. This is probably not intended here, so use the templated std::abs function.
  • Contributors: Andre Volk, Autonomoustuff Developer, CNR, Joshua Whitley, Kyle Rector, Stephan Sundermann, Tobias Athmer, kennouni

1.3.0 (2017-11-10)

  • Merge pull request #110 from kmhallen/master Added velodyne_laserscan package
  • Merge remote-tracking branch ros-drivers/master
  • Merge pull request #129 from kmhallen/pluginlib_macro Modern pluginlib macro
  • Update to use non deprecated pluginlib macro
  • Merge pull request #127 from swri-robotics/add_vlp16_hires_support Add VLP16 Puck Hi-Res config file
  • Add VLP16 Puck Hi-Res support
  • velodyne_pointcloud: remove incorrect catkin_package() DEPENDS option (#93) This eliminates a CMake warning when building on Xenial.
  • Merge pull request #111 from OrebroUniversity/master Added an interface to set up raw data processing offline
  • Added an interface to set up raw data processing from a locally defined calibration file. This method is useful when processing data offline from a bag file, without starting any ros master
  • Added velodyne_laserscan package and inserted into existing launch files
  • test multiple nodelet manager support (#108)
  • add launch args to support multiple devices (#108)
  • Merge pull request #105 from fudger/patch-1 Remove unused constants.
  • Merge pull request #104 from altrouge/launch_options Add more options in launch files.
  • Rearranged alphabetically.
  • Remove unused constants. DISTANCE_MAX and DISTANCE_MAX_UNITS are not used anywhere in the code. Furthermore, using them would lead to errors as both VLP-64 manuals state that returns above 120 m should not be used. The VLP-32 manual allows 70 m as the maximum valid sensor range.
  • Merge pull request #103 from fudger/patch-1 Fix misleading typecasts.
  • Add more options in launch files.
    • rpm, device_ip, port, read_once, read_fast, repeat_delay
  • Fix misleading typecasts. intensity and VPoint::intensity are both of type float.
  • update change history
  • merge current master (#94)
  • Merge pull request #92 from adasta/master GCC Build Warnings
  • Modified velodyne_point_cloud/src/lib/rawdata.cc to address warning that last_azimuth_diff variable may be used uninitialized. Variable is now initialized to 0 at creation. velodyne/velodyne_pointcloud/src/lib/rawdata.cc:328:57: error: ‘last_azimuth_diff’ may be used uninitialized in this function [-Werror=maybe-uninitialized] azimuth_corrected_f = azimuth + (azimuth_diff * ((dsr*VLP16_DSR_TOFFSET) + (firing*VLP16_FIRING_TOFFSET)) / VLP16_BLOCK_TDURATION);
  • Modified velodyne_pointcloud/src/conversion/colors.cc to remove address build warning for strict-aliasing. velodyne/velodyne_pointcloud/src/conversions/colors.cc:84:58:
  • Merge pull request #89 from Tones29/feat_dynrec_driver Add dynamic latency configuration to velodyne_driver
  • velodyne_pointcloud: Fix compile warning "Wrong initialization order"
  • velodyne_pointcloud: add dynamic reconfig update to change log (#78)
  • Merge branch fudger-reconfigure_transform_node
  • velodyne_pointcloud: use recommended add_dependencies() CMake variable #78
  • velodyne_pointcloud: fix transform unit tests Use tf2_ros static_transform_publisher for more consistent timing (#2)
  • Merge branch reconfigure_transform_node of https://github.com/fudger/velodyne
  • prepare change history for coming Indigo release (#59)
  • calibration: unit test case improvements (#84)
  • calibration: read all intensities as float, then convert (#84)
  • calibration: add gtest for #84 This currently fails on 64e_s2.1-sztaki.yaml and on issue_84_float_intensities.yaml.
  • calibration: make max_intensity and min_intensity optional (#84) This fixes a regression in the 32e and VLP-16 calibrations which do not contain intensity values. There is still a problem with the 64e_s2.1 calibration.
  • Merge pull request #76 from pomerlef/master Sign inversion in some equations
  • Merge pull request #82 from ros-drivers/fix_pr_80 Fix pr 80; adding travis CI tests.
  • fix the yaml-cpp 0.5 code paths
  • Merge pull request #80 from ros-drivers/fix_yaml_import allow floats in min/max_intensity and make horiz_offset_correction optional
  • allow horiz_offset_correction to be optional with 0 as default
  • allow floats instead of ints in min/max_intensity
  • Resolve frame ID name using tf prefix.
  • Improve coding style.
  • Set up dynamic reconfiguration for transform_node. Previously, transform_node has neither read parameters other than frame_id from the command line nor has it exposed these parameters via dynamic reconfigure. As parameters like max_range and view_width have been initialized to zero, the inconfigurable transform_node has returned an empty point cloud. Now, transform_node launches an reconfigure server just as cloud_node. In contrast to cloud_node, transform node exposes another parameter for dynamic reconfiguration: frame_id, i.e. the frame of reference the incoming Velodyne points are transformed to.
  • Merge pull request #77 from fudger/pretty_print Fix output of calibration data onto console
  • Add a missing space.
  • Fix line that always indicates use of model VLP-16.
  • Align console output of calibration data.
  • Merge branch master of https://github.com/ros-drivers/velodyne
  • resolve sign error
  • Merge pull request #73 from fudger/master Correct important data type error for VLP-16
  • Fix data type error that distorts the point cloud.
  • Fix and add a few comments.
  • Merge pull request #68 from jlblancoc/patch-1 Remove unused variable
  • Remove unused variable I think that [dsr]{.title-ref} was unused. See line 317: for (int dsr=0; ...
  • VLP-16: skip badly formatted data packets (#62, #63)
  • restore VLP-16 min_range setting to 0.4 (#60) NOTE: There is still some other problem keeping that from working.
  • permit min_range settings below 0.9 meters (#60) No known models are currently known to return closer measurements.
  • Merge pull request #55 from lemiant/azimuth_bug_VLP16 Fixed azimuth overflow bug.
  • Fixed azimuth overflow bug. For interpolated azimuth values between 35999.5 and 36000.0 the nested round(fmod()) yields a value of 36000 which is invalid and overflows the pre-computed sin/cos arrays, since they only go form 0..35999
  • Merge pull request #51 from kunlileo/master Added vertical sin angle correction
  • Added vertical sin angle correction
  • Merge pull request #47 from prclibo/master fixed rounding bug in intensity calculation found by songshiyu
  • fixed rounding bug in intensity calculation found by songshiyu
  • fix some overly long C++ source lines
  • Merge pull request #44 from SISegwayRmp/master adding driver and pointcloud support for the VLP16
  • missed the space in the file name which caused the build to fail, removed space before extension
  • adding the VLP16 test scripts and updating the CMakeLists to include the test file from http://download.ros.org/data/velodyne/vlp16.pcap
  • adding support for the VLP16
  • Merge pull request #43 from prclibo/fix_rawdata fixed point computation according to the 64e_s2(.1) velodyne manual
  • fixed point computation according to the 64e_s2(.1) velodyne manual, with luopei"s help
  • Merge pull request #41 from prclibo/master fixed a calibration file parsing bug
  • Merge pull request #42 from prclibo/fix_gen_calibration fixed gen_calibration min/max intensity type
  • fixed gen_calibration min/max intensity type
  • fixed a calibration file parsing bug
  • Contributors: Adam Stambler, Alex Rodrigues, Alexander Schaefer, Andreas Wachaja, Bo Li, Daniel Jartoux, Gabor Meszaros, Jack OQuin, Jose Luis Blanco-Claraco, Joshua Whitley, Kevin Hallenbeck, Kris Kozak, Kun Li, Micho Radovnikovich, Scott K Logan, Thomas Solatges, Todor Stoyanov, William Woodall, jack.oquin, libo24, phussey, piyushk, pomerlef

1.2.0 (2014-08-06)

  • velodyne_pointcloud: remove model-dependent "constants" from rawdata.h (#28)
  • velodyne_pointcloud: change default min_range to 0.9 meters (#25)
  • Added support for YAML-CPP 0.5+ (#23).
  • Add dynamic_reconfigure feature.
  • Add angular limits to the output point cloud, useful for omitting part of it. (#22).
  • Contributors: Jack OQuin, Scott K Logan, Thomas Solatges

1.1.2 (2013-11-05)

  • Move unit test data to download.ros.org (#18).
  • Install missing gen_calibration.py script (#20).

1.1.1 (2013-07-30)

  • Fix lost frame_id transform problem caused by PCL 1.7 fix (#13).
  • Add support for HDL-64E S2 and S2.1 models, which were not working before (#11), thanks to Gabor Meszaros (#12).
  • Add additional parameters to launch files (#14).
  • Contributors: Gabor Meszaros, Jack OQuin

1.1.0 (2013-07-16)

  • Fix build problems due to PCL 1.7 API incompatibilities (#8), thanks to William Woodall. This version also works with Groovy, as long as the correct pcl_conversions is installed.
  • Fix errors with Mac OSX compiler (#8).
  • Install pluginlib XML files (#9).
  • Install some launch and parameter files.
  • Enable unit tests when CATKIN_ENABLE_TESTING is set (#10).

1.0.1 (2013-06-15)

  • Declare explicit pluginlib dependency (#4).

1.0.0 (2013-06-14)

  • Convert to catkin (#1).
  • Release to Hydro.

0.9.2 (2013-07-08)

  • Fix Groovy build problem (#7).

0.9.1 (2012-06-05)

  • Only include "enabled" lasers in YAML calibration file.
  • New param subdirectory for parameter files.
  • Add launch file for the HDL-32E.
  • Add rviz_points.vcg file for viewing Velodyne point clouds with rviz.
  • Fix bug when reading configuration with default minIntensity.
  • Add unit tests with 32E data.
  • Released to Electric, Fuerte and Groovy.

0.9.0 (2012-04-03)

  • Completely revised API, anticipating a 1.0.0 release.
  • HDL-32E device support.
  • New YAML configuration file format.
  • New velodyne_driver and velodyne_pointcloud packages.
  • Old velodyne_common and velodyne_pcl packages no longer included.
  • Released to Electric, Fuerte and Groovy.

0.2.6 (2011-02-23)

  • Label all timing-dependent tests "realtime" so they do not run by default on the build farm machines.

0.2.5 (2010-11-19)

  • Initial implementation of new 0.3 interfaces.
  • Support for ROS 1.3 [std_msgs::Header]{.title-ref} changes.

0.2.0 (2010-08-17)

  • Initial release to ROS C-turtle.

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.

Launch files

  • launch/transform_nodelet.launch
    • -*- mode: XML -*-
      • model [default: ]
      • calibration [default: ]
      • fixed_frame [default: ]
      • target_frame [default: ]
      • manager [default: velodyne_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.9]
      • organize_cloud [default: false]
  • launch/VLP-32C_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/VeloView-VLP-32C.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 200.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • pcap_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/64e_S3.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/64e_s3-xiesc.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • pcap_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
  • launch/VLP16_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/VLP16db.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • pcap_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/32e_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/32db.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • pcap_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/laserscan_nodelet.launch
    • -*- mode: XML -*-
      • manager [default: velodyne_nodelet_manager]
      • ring [default: -1]
      • resolution [default: 0.007]
  • launch/VLS128_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/VLS128.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 200.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • tests/static_vehicle_tf.launch
    • -*- mode: XML -*-

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged velodyne_pointcloud at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.7.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/velodyne.git
VCS Type git
VCS Version master
Last Updated 2023-06-01
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Point cloud conversions for Velodyne 3D LIDARs.

Additional Links

Maintainers

  • Josh Whitley

Authors

  • Jack O'Quin
  • Piyush Khandelwal
  • Jesse Vera
  • Sebastian Pütz
README
No README found. See repository README.
CHANGELOG

Change history

1.7.0 (2022-07-08)

  • build timings in offline setup (#428) Currently when using the offline setup, it does not build the per-point timing offsets which means when unpacking the packets in the offline mode, you cannot timestamp each point with its packet time. This commit does the following:
    • call buildTimings from setupOffline function
    • add model to setupOffline interface
    • set config model param which is needed by buildTimings
  • vls128: add line only once all four banks are processed (#413)
  • PCAP timestamps & PCAP+GPS timestamps (#384)
    • Add pcap_time param and implement gps_time with it
    • If gps_time == true, ignore pcap_time
  • Fixed row_step=0 when init_width=0 (dense cloud) (#404) The PointCloud2 msg will be then valid: http://docs.ros.org/en/melodic/api/sensor_msgs/html/msg/PointCloud2.html Referred issues:
  • Fix accidental integer division (#391) Intensity values for VLP-16 were being calculated incorrectly.
  • Add VLS128 launch and calibration file (#382)
  • Fixing incorrect type in velodyne_pointcloud.
  • Fixing typo.
  • Add support for the velodyne Alpha Prime (#370)
    • Add support for the velodyne Alpha Prime
    • Change packet rate for the VLS128 according to the times specified in the manual
    • Organize setup functions to avoid code duplication. Add a constant for the model ID of the VLS128.

    * Use the defined constants to calculate the time offset of the points for the VLS128 Co-authored-by: jugo <<juan.gonzalez@unibw.de>>

  • Contributors: Daisuke Nishimatsu, HMellor, Institute for Autonomous Systems Technology, Joshua Whitley, Martin Valgur, Nick Charron, Sebastian Scherer, matlabbe

1.6.1 (2020-11-09)

  • Add invalid points in organized cloud (#360)
    • Set NaN in ordered point cloud in case of no return
    • Adapt to current master

    * consider min/max angle and timing_offsets also in organized mode Co-authored-by: Nuernberg Thomas (CR/AEV4) <<thomas.nuernberg@de.bosch.com>>

  • build and export library data_containers so it can be used in other packages (#359)
  • Contributors: Sebastian Scherer

1.6.0 (2020-07-09)

  • Unify tf frame parameters between transform and cloud nodes (#344)
    • Unify tf frame parameters between transform and cloud nodes
    • Use more common ROS terminology instead of 'htm'
    • Just use tf listener when necessary
    • Migrate package to tf2
    • Explicitly store sensor frame in a dedicated variable to make code easier to read

    * Avoid unnecessary transforms when sensor_frame == target_frame Co-authored-by: anre <<andreas.reich@unibw.de>>

  • Velodyne pcl (#335)
    • fix time assignment in organized cloud container
    • add velodyne_pcl package with point_types.h
    • add README.md with infos for conversion
    • rename containers to cover the added time property

    * Update package.xml to Format2 and package version to 1.5.2 Co-authored-by: Joshua Whitley <<josh.whitley@autoware.org>>

  • Passing fixed_frame and target_frame to Convert object. (#330)
  • Updating maintainer email address.
  • Increase the max_range of the 32C launch file (#323)
  • Getting model param for timings from private node handle. (#318)
  • updated model to have a default of "" so that tests run successfully
  • Move timing offsets functionality into class private. Also fix linter errors
  • Added model param to each of the cloud nodelet starters
  • Initial commit to timestamp each point using the timing spec in the manuals
  • use correct node handles and node names for diagnostic_updater::Updater
  • Added config option to timestamp a full scan based on first velo packet instead of last packet
  • Remove a dead store from rawdata.cc.
  • fix for #267, transform each packet
  • Merge pull request #250 from zhixy/master bug fix for row step
  • Merge pull request #253 from ros-drivers/fix/fixed_frame_target_frame Add configurable fixed_frame/target_frame for velodyne_pointcloud
  • Merge pull request #214 from spuetz/feature/opc_nopcl Container cleanup and organized pointclouds
  • Merge pull request #236 from mpitropov/fix_transform_node_frame_bug set correct output frame
  • Merge pull request #234 from kmhallen/c++11 Set minimum C++ standard to C++11
  • Merge pull request #223 from mpitropov/feat_Add_fixed_frame Add fixed frame and use ros message time within transform node
  • Made static tf publisher test adhere to REP 105
  • change more odom to map
  • Merge pull request #224 from mpitropov/feat_add_diagnostics Added diagnostic publishing
  • Merge pull request #222 from mpitropov/feat_Use_GPS_time Add flag to enable using GPS time from within the Velodyne packet instead of ROS time for scan.
  • Created gps_time param to enable this feature
  • Contributors: AndreasR30, Chris Lalancette, Daniel Seifert, Ian Colwell, Joshua Whitley, Kevin Hallenbeck, Matthew Pitropov, Sebastian, Sebastian Pütz, Shawn Hanna, zhixiangyang

1.5.2 (2019-01-28)

  • Merge pull request #205 from xiesc/master support for 64E-S3
  • add an example yaml file for S3
  • Contributors: Joshua Whitley, Shichao XIE, xiesc

1.5.1 (2018-12-10)

  • Merge pull request #194 from ros-drivers/avoid_unnecessary_computation Avoid unnecessary computation - causes approximately 20% performance increase on VLP-32C - should be similar for other sensors
  • std::vector<>::reserve is your friend
  • add static to avoid frequence memory allocation
  • avoid unecesary calculations in unpack()
  • Contributors: Davide Faconti, Joshua Whitley

1.5.0 (2018-10-19)

  • Merge pull request #164 from ros-drivers/maint/vlp_32c_support Adding VLP-32C support. This was tested by AutonomouStuff and several external users. Though it does not include new information that I've learned (it appears that the distance resolution is different <50m vs >=50m), it is a good start.
  • Merge pull request #189 from kveretennicov/patch-1
  • Fix malformed plugin description XML ROS pluginlib only recognizes multiple <library> elements if they are under <class_libraries> XML root. It silently ignores malformed XMLs with multiple <library> "root"s and just reads the first one, due to relaxed way tinyxml2 does parsing. Though if you do [rosrun nodelet declared_nodelets]{.title-ref}, the issue is reported properly. See also similar issue in https://github.com/ros-perception/perception_pcl/issues/131
  • Adding distance_resolution to test yaml files.
  • Adding VLP-32C support. Based on work done by \@rockcdr. Adds distance_resolution calibration value to support 0.004m distance resolution for VLP-32C.
  • Contributors: Joshua Whitley, Konstantin Veretennicov

1.4.0 (2018-09-19)

  • Merge pull request #178 from sts-thm/bugfix_issue_#174 Bugfix issue #174
  • Merge pull request #177 from C-NR/feature/WrapPointcloudData Feature/wrap pointcloud data
  • Changes fixing deadlock for specific cut_angle values.
  • moved definition of VPoint and VPointCloud back to namespace rawdata in rawdata.h
  • put a wrapper around pointcloud data including a generic setter method to enable the use of arbitrary data structures (pcl pointcloud, depth image, octomaps and so on) to be filled by just using RawData::unpack method with the wrapper object as parameter
  • Merge pull request #170 from ros-drivers/maint/move_header_files Moving header files to traditional location inside include folders.
  • Merge pull request #160 from ros-drivers/maint/updating_package_xml_to_v2
  • Updated all package.xmls to ver 2. Cleaned up catkin_lint errors. All package.xml files are now compatible with version 2 of the package.xml specification in REP 140. Removed some unnecessary execute permissions on a few files. Fixed a missing test_depend.
  • Merge pull request #136 from stsundermann/patch-1 Use std::abs instead of abs
  • Adding missing 32C configuration file.
  • Merge pull request #139 from ASDeveloper00/vlp32 Adding support for VLP-32C.
  • Merge pull request #138 from volkandre/cut_at_specified_angle_feature Cut at specified angle feature
  • Updated default cut_angle parameters in launch files after switching from deg to rad.
  • Use std::abs instead of abs abs is the c version which returns an integer. This is probably not intended here, so use the templated std::abs function.
  • Contributors: Andre Volk, Autonomoustuff Developer, CNR, Joshua Whitley, Kyle Rector, Stephan Sundermann, Tobias Athmer, kennouni

1.3.0 (2017-11-10)

  • Merge pull request #110 from kmhallen/master Added velodyne_laserscan package
  • Merge remote-tracking branch ros-drivers/master
  • Merge pull request #129 from kmhallen/pluginlib_macro Modern pluginlib macro
  • Update to use non deprecated pluginlib macro
  • Merge pull request #127 from swri-robotics/add_vlp16_hires_support Add VLP16 Puck Hi-Res config file
  • Add VLP16 Puck Hi-Res support
  • velodyne_pointcloud: remove incorrect catkin_package() DEPENDS option (#93) This eliminates a CMake warning when building on Xenial.
  • Merge pull request #111 from OrebroUniversity/master Added an interface to set up raw data processing offline
  • Added an interface to set up raw data processing from a locally defined calibration file. This method is useful when processing data offline from a bag file, without starting any ros master
  • Added velodyne_laserscan package and inserted into existing launch files
  • test multiple nodelet manager support (#108)
  • add launch args to support multiple devices (#108)
  • Merge pull request #105 from fudger/patch-1 Remove unused constants.
  • Merge pull request #104 from altrouge/launch_options Add more options in launch files.
  • Rearranged alphabetically.
  • Remove unused constants. DISTANCE_MAX and DISTANCE_MAX_UNITS are not used anywhere in the code. Furthermore, using them would lead to errors as both VLP-64 manuals state that returns above 120 m should not be used. The VLP-32 manual allows 70 m as the maximum valid sensor range.
  • Merge pull request #103 from fudger/patch-1 Fix misleading typecasts.
  • Add more options in launch files.
    • rpm, device_ip, port, read_once, read_fast, repeat_delay
  • Fix misleading typecasts. intensity and VPoint::intensity are both of type float.
  • update change history
  • merge current master (#94)
  • Merge pull request #92 from adasta/master GCC Build Warnings
  • Modified velodyne_point_cloud/src/lib/rawdata.cc to address warning that last_azimuth_diff variable may be used uninitialized. Variable is now initialized to 0 at creation. velodyne/velodyne_pointcloud/src/lib/rawdata.cc:328:57: error: ‘last_azimuth_diff’ may be used uninitialized in this function [-Werror=maybe-uninitialized] azimuth_corrected_f = azimuth + (azimuth_diff * ((dsr*VLP16_DSR_TOFFSET) + (firing*VLP16_FIRING_TOFFSET)) / VLP16_BLOCK_TDURATION);
  • Modified velodyne_pointcloud/src/conversion/colors.cc to remove address build warning for strict-aliasing. velodyne/velodyne_pointcloud/src/conversions/colors.cc:84:58:
  • Merge pull request #89 from Tones29/feat_dynrec_driver Add dynamic latency configuration to velodyne_driver
  • velodyne_pointcloud: Fix compile warning "Wrong initialization order"
  • velodyne_pointcloud: add dynamic reconfig update to change log (#78)
  • Merge branch fudger-reconfigure_transform_node
  • velodyne_pointcloud: use recommended add_dependencies() CMake variable #78
  • velodyne_pointcloud: fix transform unit tests Use tf2_ros static_transform_publisher for more consistent timing (#2)
  • Merge branch reconfigure_transform_node of https://github.com/fudger/velodyne
  • prepare change history for coming Indigo release (#59)
  • calibration: unit test case improvements (#84)
  • calibration: read all intensities as float, then convert (#84)
  • calibration: add gtest for #84 This currently fails on 64e_s2.1-sztaki.yaml and on issue_84_float_intensities.yaml.
  • calibration: make max_intensity and min_intensity optional (#84) This fixes a regression in the 32e and VLP-16 calibrations which do not contain intensity values. There is still a problem with the 64e_s2.1 calibration.
  • Merge pull request #76 from pomerlef/master Sign inversion in some equations
  • Merge pull request #82 from ros-drivers/fix_pr_80 Fix pr 80; adding travis CI tests.
  • fix the yaml-cpp 0.5 code paths
  • Merge pull request #80 from ros-drivers/fix_yaml_import allow floats in min/max_intensity and make horiz_offset_correction optional
  • allow horiz_offset_correction to be optional with 0 as default
  • allow floats instead of ints in min/max_intensity
  • Resolve frame ID name using tf prefix.
  • Improve coding style.
  • Set up dynamic reconfiguration for transform_node. Previously, transform_node has neither read parameters other than frame_id from the command line nor has it exposed these parameters via dynamic reconfigure. As parameters like max_range and view_width have been initialized to zero, the inconfigurable transform_node has returned an empty point cloud. Now, transform_node launches an reconfigure server just as cloud_node. In contrast to cloud_node, transform node exposes another parameter for dynamic reconfiguration: frame_id, i.e. the frame of reference the incoming Velodyne points are transformed to.
  • Merge pull request #77 from fudger/pretty_print Fix output of calibration data onto console
  • Add a missing space.
  • Fix line that always indicates use of model VLP-16.
  • Align console output of calibration data.
  • Merge branch master of https://github.com/ros-drivers/velodyne
  • resolve sign error
  • Merge pull request #73 from fudger/master Correct important data type error for VLP-16
  • Fix data type error that distorts the point cloud.
  • Fix and add a few comments.
  • Merge pull request #68 from jlblancoc/patch-1 Remove unused variable
  • Remove unused variable I think that [dsr]{.title-ref} was unused. See line 317: for (int dsr=0; ...
  • VLP-16: skip badly formatted data packets (#62, #63)
  • restore VLP-16 min_range setting to 0.4 (#60) NOTE: There is still some other problem keeping that from working.
  • permit min_range settings below 0.9 meters (#60) No known models are currently known to return closer measurements.
  • Merge pull request #55 from lemiant/azimuth_bug_VLP16 Fixed azimuth overflow bug.
  • Fixed azimuth overflow bug. For interpolated azimuth values between 35999.5 and 36000.0 the nested round(fmod()) yields a value of 36000 which is invalid and overflows the pre-computed sin/cos arrays, since they only go form 0..35999
  • Merge pull request #51 from kunlileo/master Added vertical sin angle correction
  • Added vertical sin angle correction
  • Merge pull request #47 from prclibo/master fixed rounding bug in intensity calculation found by songshiyu
  • fixed rounding bug in intensity calculation found by songshiyu
  • fix some overly long C++ source lines
  • Merge pull request #44 from SISegwayRmp/master adding driver and pointcloud support for the VLP16
  • missed the space in the file name which caused the build to fail, removed space before extension
  • adding the VLP16 test scripts and updating the CMakeLists to include the test file from http://download.ros.org/data/velodyne/vlp16.pcap
  • adding support for the VLP16
  • Merge pull request #43 from prclibo/fix_rawdata fixed point computation according to the 64e_s2(.1) velodyne manual
  • fixed point computation according to the 64e_s2(.1) velodyne manual, with luopei"s help
  • Merge pull request #41 from prclibo/master fixed a calibration file parsing bug
  • Merge pull request #42 from prclibo/fix_gen_calibration fixed gen_calibration min/max intensity type
  • fixed gen_calibration min/max intensity type
  • fixed a calibration file parsing bug
  • Contributors: Adam Stambler, Alex Rodrigues, Alexander Schaefer, Andreas Wachaja, Bo Li, Daniel Jartoux, Gabor Meszaros, Jack OQuin, Jose Luis Blanco-Claraco, Joshua Whitley, Kevin Hallenbeck, Kris Kozak, Kun Li, Micho Radovnikovich, Scott K Logan, Thomas Solatges, Todor Stoyanov, William Woodall, jack.oquin, libo24, phussey, piyushk, pomerlef

1.2.0 (2014-08-06)

  • velodyne_pointcloud: remove model-dependent "constants" from rawdata.h (#28)
  • velodyne_pointcloud: change default min_range to 0.9 meters (#25)
  • Added support for YAML-CPP 0.5+ (#23).
  • Add dynamic_reconfigure feature.
  • Add angular limits to the output point cloud, useful for omitting part of it. (#22).
  • Contributors: Jack OQuin, Scott K Logan, Thomas Solatges

1.1.2 (2013-11-05)

  • Move unit test data to download.ros.org (#18).
  • Install missing gen_calibration.py script (#20).

1.1.1 (2013-07-30)

  • Fix lost frame_id transform problem caused by PCL 1.7 fix (#13).
  • Add support for HDL-64E S2 and S2.1 models, which were not working before (#11), thanks to Gabor Meszaros (#12).
  • Add additional parameters to launch files (#14).
  • Contributors: Gabor Meszaros, Jack OQuin

1.1.0 (2013-07-16)

  • Fix build problems due to PCL 1.7 API incompatibilities (#8), thanks to William Woodall. This version also works with Groovy, as long as the correct pcl_conversions is installed.
  • Fix errors with Mac OSX compiler (#8).
  • Install pluginlib XML files (#9).
  • Install some launch and parameter files.
  • Enable unit tests when CATKIN_ENABLE_TESTING is set (#10).

1.0.1 (2013-06-15)

  • Declare explicit pluginlib dependency (#4).

1.0.0 (2013-06-14)

  • Convert to catkin (#1).
  • Release to Hydro.

0.9.2 (2013-07-08)

  • Fix Groovy build problem (#7).

0.9.1 (2012-06-05)

  • Only include "enabled" lasers in YAML calibration file.
  • New param subdirectory for parameter files.
  • Add launch file for the HDL-32E.
  • Add rviz_points.vcg file for viewing Velodyne point clouds with rviz.
  • Fix bug when reading configuration with default minIntensity.
  • Add unit tests with 32E data.
  • Released to Electric, Fuerte and Groovy.

0.9.0 (2012-04-03)

  • Completely revised API, anticipating a 1.0.0 release.
  • HDL-32E device support.
  • New YAML configuration file format.
  • New velodyne_driver and velodyne_pointcloud packages.
  • Old velodyne_common and velodyne_pcl packages no longer included.
  • Released to Electric, Fuerte and Groovy.

0.2.6 (2011-02-23)

  • Label all timing-dependent tests "realtime" so they do not run by default on the build farm machines.

0.2.5 (2010-11-19)

  • Initial implementation of new 0.3 interfaces.
  • Support for ROS 1.3 [std_msgs::Header]{.title-ref} changes.

0.2.0 (2010-08-17)

  • Initial release to ROS C-turtle.

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.

Launch files

  • launch/transform_nodelet.launch
    • -*- mode: XML -*-
      • model [default: ]
      • calibration [default: ]
      • fixed_frame [default: ]
      • target_frame [default: ]
      • manager [default: velodyne_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.9]
      • organize_cloud [default: false]
  • launch/VLP-32C_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/VeloView-VLP-32C.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 200.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • pcap_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/64e_S3.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/64e_s3-xiesc.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • pcap_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
  • launch/VLP16_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/VLP16db.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • pcap_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/32e_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/32db.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • pcap_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/laserscan_nodelet.launch
    • -*- mode: XML -*-
      • manager [default: velodyne_nodelet_manager]
      • ring [default: -1]
      • resolution [default: 0.007]
  • launch/VLS128_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/VLS128.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 200.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • tests/static_vehicle_tf.launch
    • -*- mode: XML -*-

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged velodyne_pointcloud at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.5.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/velodyne.git
VCS Type git
VCS Version melodic-devel
Last Updated 2021-05-13
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Point cloud conversions for Velodyne 3D LIDARs.

Additional Links

Maintainers

  • Josh Whitley

Authors

  • Jack O'Quin
  • Piyush Khandelwal
  • Jesse Vera
  • Sebastian Pütz
README
No README found. See repository README.
CHANGELOG

Change history

1.5.2 (2019-01-28)

  • Merge pull request #205 from xiesc/master support for 64E-S3
  • add an example yaml file for S3
  • Contributors: Joshua Whitley, Shichao XIE, xiesc

1.5.1 (2018-12-10)

  • Merge pull request #194 from ros-drivers/avoid_unnecessary_computation Avoid unnecessary computation - causes approximately 20% performance increase on VLP-32C - should be similar for other sensors
  • std::vector<>::reserve is your friend
  • add static to avoid frequence memory allocation
  • avoid unecesary calculations in unpack()
  • Contributors: Davide Faconti, Joshua Whitley

1.5.0 (2018-10-19)

  • Merge pull request #164 from ros-drivers/maint/vlp_32c_support Adding VLP-32C support. This was tested by AutonomouStuff and several external users. Though it does not include new information that I've learned (it appears that the distance resolution is different <50m vs >=50m), it is a good start.
  • Merge pull request #189 from kveretennicov/patch-1
  • Fix malformed plugin description XML ROS pluginlib only recognizes multiple <library> elements if they are under <class_libraries> XML root. It silently ignores malformed XMLs with multiple <library> "root"s and just reads the first one, due to relaxed way tinyxml2 does parsing. Though if you do [rosrun nodelet declared_nodelets]{.title-ref}, the issue is reported properly. See also similar issue in https://github.com/ros-perception/perception_pcl/issues/131
  • Adding distance_resolution to test yaml files.
  • Adding VLP-32C support. Based on work done by \@rockcdr. Adds distance_resolution calibration value to support 0.004m distance resolution for VLP-32C.
  • Contributors: Joshua Whitley, Konstantin Veretennicov

1.4.0 (2018-09-19)

  • Merge pull request #178 from sts-thm/bugfix_issue_#174 Bugfix issue #174
  • Merge pull request #177 from C-NR/feature/WrapPointcloudData Feature/wrap pointcloud data
  • Changes fixing deadlock for specific cut_angle values.
  • moved definition of VPoint and VPointCloud back to namespace rawdata in rawdata.h
  • put a wrapper around pointcloud data including a generic setter method to enable the use of arbitrary data structures (pcl pointcloud, depth image, octomaps and so on) to be filled by just using RawData::unpack method with the wrapper object as parameter
  • Merge pull request #170 from ros-drivers/maint/move_header_files Moving header files to traditional location inside include folders.
  • Merge pull request #160 from ros-drivers/maint/updating_package_xml_to_v2
  • Updated all package.xmls to ver 2. Cleaned up catkin_lint errors. All package.xml files are now compatible with version 2 of the package.xml specification in REP 140. Removed some unnecessary execute permissions on a few files. Fixed a missing test_depend.
  • Merge pull request #136 from stsundermann/patch-1 Use std::abs instead of abs
  • Adding missing 32C configuration file.
  • Merge pull request #139 from ASDeveloper00/vlp32 Adding support for VLP-32C.
  • Merge pull request #138 from volkandre/cut_at_specified_angle_feature Cut at specified angle feature
  • Updated default cut_angle parameters in launch files after switching from deg to rad.
  • Use std::abs instead of abs abs is the c version which returns an integer. This is probably not intended here, so use the templated std::abs function.
  • Contributors: Andre Volk, Autonomoustuff Developer, CNR, Joshua Whitley, Kyle Rector, Stephan Sundermann, Tobias Athmer, kennouni

1.3.0 (2017-11-10)

  • Merge pull request #110 from kmhallen/master Added velodyne_laserscan package
  • Merge remote-tracking branch ros-drivers/master
  • Merge pull request #129 from kmhallen/pluginlib_macro Modern pluginlib macro
  • Update to use non deprecated pluginlib macro
  • Merge pull request #127 from swri-robotics/add_vlp16_hires_support Add VLP16 Puck Hi-Res config file
  • Add VLP16 Puck Hi-Res support
  • velodyne_pointcloud: remove incorrect catkin_package() DEPENDS option (#93) This eliminates a CMake warning when building on Xenial.
  • Merge pull request #111 from OrebroUniversity/master Added an interface to set up raw data processing offline
  • Added an interface to set up raw data processing from a locally defined calibration file. This method is useful when processing data offline from a bag file, without starting any ros master
  • Added velodyne_laserscan package and inserted into existing launch files
  • test multiple nodelet manager support (#108)
  • add launch args to support multiple devices (#108)
  • Merge pull request #105 from fudger/patch-1 Remove unused constants.
  • Merge pull request #104 from altrouge/launch_options Add more options in launch files.
  • Rearranged alphabetically.
  • Remove unused constants. DISTANCE_MAX and DISTANCE_MAX_UNITS are not used anywhere in the code. Furthermore, using them would lead to errors as both VLP-64 manuals state that returns above 120 m should not be used. The VLP-32 manual allows 70 m as the maximum valid sensor range.
  • Merge pull request #103 from fudger/patch-1 Fix misleading typecasts.
  • Add more options in launch files.
    • rpm, device_ip, port, read_once, read_fast, repeat_delay
  • Fix misleading typecasts. intensity and VPoint::intensity are both of type float.
  • update change history
  • merge current master (#94)
  • Merge pull request #92 from adasta/master GCC Build Warnings
  • Modified velodyne_point_cloud/src/lib/rawdata.cc to address warning that last_azimuth_diff variable may be used uninitialized. Variable is now initialized to 0 at creation. velodyne/velodyne_pointcloud/src/lib/rawdata.cc:328:57: error: ‘last_azimuth_diff’ may be used uninitialized in this function [-Werror=maybe-uninitialized] azimuth_corrected_f = azimuth + (azimuth_diff * ((dsr*VLP16_DSR_TOFFSET) + (firing*VLP16_FIRING_TOFFSET)) / VLP16_BLOCK_TDURATION);
  • Modified velodyne_pointcloud/src/conversion/colors.cc to remove address build warning for strict-aliasing. velodyne/velodyne_pointcloud/src/conversions/colors.cc:84:58:
  • Merge pull request #89 from Tones29/feat_dynrec_driver Add dynamic latency configuration to velodyne_driver
  • velodyne_pointcloud: Fix compile warning "Wrong initialization order"
  • velodyne_pointcloud: add dynamic reconfig update to change log (#78)
  • Merge branch fudger-reconfigure_transform_node
  • velodyne_pointcloud: use recommended add_dependencies() CMake variable #78
  • velodyne_pointcloud: fix transform unit tests Use tf2_ros static_transform_publisher for more consistent timing (#2)
  • Merge branch reconfigure_transform_node of https://github.com/fudger/velodyne
  • prepare change history for coming Indigo release (#59)
  • calibration: unit test case improvements (#84)
  • calibration: read all intensities as float, then convert (#84)
  • calibration: add gtest for #84 This currently fails on 64e_s2.1-sztaki.yaml and on issue_84_float_intensities.yaml.
  • calibration: make max_intensity and min_intensity optional (#84) This fixes a regression in the 32e and VLP-16 calibrations which do not contain intensity values. There is still a problem with the 64e_s2.1 calibration.
  • Merge pull request #76 from pomerlef/master Sign inversion in some equations
  • Merge pull request #82 from ros-drivers/fix_pr_80 Fix pr 80; adding travis CI tests.
  • fix the yaml-cpp 0.5 code paths
  • Merge pull request #80 from ros-drivers/fix_yaml_import allow floats in min/max_intensity and make horiz_offset_correction optional
  • allow horiz_offset_correction to be optional with 0 as default
  • allow floats instead of ints in min/max_intensity
  • Resolve frame ID name using tf prefix.
  • Improve coding style.
  • Set up dynamic reconfiguration for transform_node. Previously, transform_node has neither read parameters other than frame_id from the command line nor has it exposed these parameters via dynamic reconfigure. As parameters like max_range and view_width have been initialized to zero, the inconfigurable transform_node has returned an empty point cloud. Now, transform_node launches an reconfigure server just as cloud_node. In contrast to cloud_node, transform node exposes another parameter for dynamic reconfiguration: frame_id, i.e. the frame of reference the incoming Velodyne points are transformed to.
  • Merge pull request #77 from fudger/pretty_print Fix output of calibration data onto console
  • Add a missing space.
  • Fix line that always indicates use of model VLP-16.
  • Align console output of calibration data.
  • Merge branch master of https://github.com/ros-drivers/velodyne
  • resolve sign error
  • Merge pull request #73 from fudger/master Correct important data type error for VLP-16
  • Fix data type error that distorts the point cloud.
  • Fix and add a few comments.
  • Merge pull request #68 from jlblancoc/patch-1 Remove unused variable
  • Remove unused variable I think that [dsr]{.title-ref} was unused. See line 317: for (int dsr=0; ...
  • VLP-16: skip badly formatted data packets (#62, #63)
  • restore VLP-16 min_range setting to 0.4 (#60) NOTE: There is still some other problem keeping that from working.
  • permit min_range settings below 0.9 meters (#60) No known models are currently known to return closer measurements.
  • Merge pull request #55 from lemiant/azimuth_bug_VLP16 Fixed azimuth overflow bug.
  • Fixed azimuth overflow bug. For interpolated azimuth values between 35999.5 and 36000.0 the nested round(fmod()) yields a value of 36000 which is invalid and overflows the pre-computed sin/cos arrays, since they only go form 0..35999
  • Merge pull request #51 from kunlileo/master Added vertical sin angle correction
  • Added vertical sin angle correction
  • Merge pull request #47 from prclibo/master fixed rounding bug in intensity calculation found by songshiyu
  • fixed rounding bug in intensity calculation found by songshiyu
  • fix some overly long C++ source lines
  • Merge pull request #44 from SISegwayRmp/master adding driver and pointcloud support for the VLP16
  • missed the space in the file name which caused the build to fail, removed space before extension
  • adding the VLP16 test scripts and updating the CMakeLists to include the test file from http://download.ros.org/data/velodyne/vlp16.pcap
  • adding support for the VLP16
  • Merge pull request #43 from prclibo/fix_rawdata fixed point computation according to the 64e_s2(.1) velodyne manual
  • fixed point computation according to the 64e_s2(.1) velodyne manual, with luopei"s help
  • Merge pull request #41 from prclibo/master fixed a calibration file parsing bug
  • Merge pull request #42 from prclibo/fix_gen_calibration fixed gen_calibration min/max intensity type
  • fixed gen_calibration min/max intensity type
  • fixed a calibration file parsing bug
  • Contributors: Adam Stambler, Alex Rodrigues, Alexander Schaefer, Andreas Wachaja, Bo Li, Daniel Jartoux, Gabor Meszaros, Jack OQuin, Jose Luis Blanco-Claraco, Joshua Whitley, Kevin Hallenbeck, Kris Kozak, Kun Li, Micho Radovnikovich, Scott K Logan, Thomas Solatges, Todor Stoyanov, William Woodall, jack.oquin, libo24, phussey, piyushk, pomerlef

1.2.0 (2014-08-06)

  • velodyne_pointcloud: remove model-dependent "constants" from rawdata.h (#28)
  • velodyne_pointcloud: change default min_range to 0.9 meters (#25)
  • Added support for YAML-CPP 0.5+ (#23).
  • Add dynamic_reconfigure feature.
  • Add angular limits to the output point cloud, useful for omitting part of it. (#22).
  • Contributors: Jack OQuin, Scott K Logan, Thomas Solatges

1.1.2 (2013-11-05)

  • Move unit test data to download.ros.org (#18).
  • Install missing gen_calibration.py script (#20).

1.1.1 (2013-07-30)

  • Fix lost frame_id transform problem caused by PCL 1.7 fix (#13).
  • Add support for HDL-64E S2 and S2.1 models, which were not working before (#11), thanks to Gabor Meszaros (#12).
  • Add additional parameters to launch files (#14).
  • Contributors: Gabor Meszaros, Jack OQuin

1.1.0 (2013-07-16)

  • Fix build problems due to PCL 1.7 API incompatibilities (#8), thanks to William Woodall. This version also works with Groovy, as long as the correct pcl_conversions is installed.
  • Fix errors with Mac OSX compiler (#8).
  • Install pluginlib XML files (#9).
  • Install some launch and parameter files.
  • Enable unit tests when CATKIN_ENABLE_TESTING is set (#10).

1.0.1 (2013-06-15)

  • Declare explicit pluginlib dependency (#4).

1.0.0 (2013-06-14)

  • Convert to catkin (#1).
  • Release to Hydro.

0.9.2 (2013-07-08)

  • Fix Groovy build problem (#7).

0.9.1 (2012-06-05)

  • Only include "enabled" lasers in YAML calibration file.
  • New param subdirectory for parameter files.
  • Add launch file for the HDL-32E.
  • Add rviz_points.vcg file for viewing Velodyne point clouds with rviz.
  • Fix bug when reading configuration with default minIntensity.
  • Add unit tests with 32E data.
  • Released to Electric, Fuerte and Groovy.

0.9.0 (2012-04-03)

  • Completely revised API, anticipating a 1.0.0 release.
  • HDL-32E device support.
  • New YAML configuration file format.
  • New velodyne_driver and velodyne_pointcloud packages.
  • Old velodyne_common and velodyne_pcl packages no longer included.
  • Released to Electric, Fuerte and Groovy.

0.2.6 (2011-02-23)

  • Label all timing-dependent tests "realtime" so they do not run by default on the build farm machines.

0.2.5 (2010-11-19)

  • Initial implementation of new 0.3 interfaces.
  • Support for ROS 1.3 [std_msgs::Header]{.title-ref} changes.

0.2.0 (2010-08-17)

  • Initial release to ROS C-turtle.

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.

Launch files

  • launch/transform_nodelet.launch
    • -*- mode: XML -*-
      • model [default: ]
      • calibration [default: ]
      • frame_id [default: map]
      • manager [default: velodyne_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.9]
      • organize_cloud [default: false]
  • launch/VLP-32C_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/VeloView-VLP-32C.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 200.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/64e_S3.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/64e_s3-xiesc.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
  • launch/VLP16_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/VLP16db.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/32e_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/32db.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/cloud_nodelet.launch
    • -*- mode: XML -*-
      • model [default: ]
      • calibration [default: ]
      • manager [default: velodyne_nodelet_manager]
      • fixed_frame [default: velodyne]
      • target_frame [default: velodyne]
      • max_range [default: 130.0]
      • min_range [default: 0.9]
      • organize_cloud [default: false]
  • launch/laserscan_nodelet.launch
    • -*- mode: XML -*-
      • manager [default: velodyne_nodelet_manager]
      • ring [default: -1]
      • resolution [default: 0.007]
  • tests/static_vehicle_tf.launch
    • -*- mode: XML -*-

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged velodyne_pointcloud at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.5.2
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-drivers/velodyne.git
VCS Type git
VCS Version melodic-devel
Last Updated 2021-05-13
Dev Status DEVELOPED
CI status
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Point cloud conversions for Velodyne 3D LIDARs.

Additional Links

Maintainers

  • Josh Whitley

Authors

  • Jack O'Quin
  • Piyush Khandelwal
  • Jesse Vera
  • Sebastian Pütz
README
No README found. See repository README.
CHANGELOG

Change history

1.5.2 (2019-01-28)

  • Merge pull request #205 from xiesc/master support for 64E-S3
  • add an example yaml file for S3
  • Contributors: Joshua Whitley, Shichao XIE, xiesc

1.5.1 (2018-12-10)

  • Merge pull request #194 from ros-drivers/avoid_unnecessary_computation Avoid unnecessary computation - causes approximately 20% performance increase on VLP-32C - should be similar for other sensors
  • std::vector<>::reserve is your friend
  • add static to avoid frequence memory allocation
  • avoid unecesary calculations in unpack()
  • Contributors: Davide Faconti, Joshua Whitley

1.5.0 (2018-10-19)

  • Merge pull request #164 from ros-drivers/maint/vlp_32c_support Adding VLP-32C support. This was tested by AutonomouStuff and several external users. Though it does not include new information that I've learned (it appears that the distance resolution is different <50m vs >=50m), it is a good start.
  • Merge pull request #189 from kveretennicov/patch-1
  • Fix malformed plugin description XML ROS pluginlib only recognizes multiple <library> elements if they are under <class_libraries> XML root. It silently ignores malformed XMLs with multiple <library> "root"s and just reads the first one, due to relaxed way tinyxml2 does parsing. Though if you do [rosrun nodelet declared_nodelets]{.title-ref}, the issue is reported properly. See also similar issue in https://github.com/ros-perception/perception_pcl/issues/131
  • Adding distance_resolution to test yaml files.
  • Adding VLP-32C support. Based on work done by \@rockcdr. Adds distance_resolution calibration value to support 0.004m distance resolution for VLP-32C.
  • Contributors: Joshua Whitley, Konstantin Veretennicov

1.4.0 (2018-09-19)

  • Merge pull request #178 from sts-thm/bugfix_issue_#174 Bugfix issue #174
  • Merge pull request #177 from C-NR/feature/WrapPointcloudData Feature/wrap pointcloud data
  • Changes fixing deadlock for specific cut_angle values.
  • moved definition of VPoint and VPointCloud back to namespace rawdata in rawdata.h
  • put a wrapper around pointcloud data including a generic setter method to enable the use of arbitrary data structures (pcl pointcloud, depth image, octomaps and so on) to be filled by just using RawData::unpack method with the wrapper object as parameter
  • Merge pull request #170 from ros-drivers/maint/move_header_files Moving header files to traditional location inside include folders.
  • Merge pull request #160 from ros-drivers/maint/updating_package_xml_to_v2
  • Updated all package.xmls to ver 2. Cleaned up catkin_lint errors. All package.xml files are now compatible with version 2 of the package.xml specification in REP 140. Removed some unnecessary execute permissions on a few files. Fixed a missing test_depend.
  • Merge pull request #136 from stsundermann/patch-1 Use std::abs instead of abs
  • Adding missing 32C configuration file.
  • Merge pull request #139 from ASDeveloper00/vlp32 Adding support for VLP-32C.
  • Merge pull request #138 from volkandre/cut_at_specified_angle_feature Cut at specified angle feature
  • Updated default cut_angle parameters in launch files after switching from deg to rad.
  • Use std::abs instead of abs abs is the c version which returns an integer. This is probably not intended here, so use the templated std::abs function.
  • Contributors: Andre Volk, Autonomoustuff Developer, CNR, Joshua Whitley, Kyle Rector, Stephan Sundermann, Tobias Athmer, kennouni

1.3.0 (2017-11-10)

  • Merge pull request #110 from kmhallen/master Added velodyne_laserscan package
  • Merge remote-tracking branch ros-drivers/master
  • Merge pull request #129 from kmhallen/pluginlib_macro Modern pluginlib macro
  • Update to use non deprecated pluginlib macro
  • Merge pull request #127 from swri-robotics/add_vlp16_hires_support Add VLP16 Puck Hi-Res config file
  • Add VLP16 Puck Hi-Res support
  • velodyne_pointcloud: remove incorrect catkin_package() DEPENDS option (#93) This eliminates a CMake warning when building on Xenial.
  • Merge pull request #111 from OrebroUniversity/master Added an interface to set up raw data processing offline
  • Added an interface to set up raw data processing from a locally defined calibration file. This method is useful when processing data offline from a bag file, without starting any ros master
  • Added velodyne_laserscan package and inserted into existing launch files
  • test multiple nodelet manager support (#108)
  • add launch args to support multiple devices (#108)
  • Merge pull request #105 from fudger/patch-1 Remove unused constants.
  • Merge pull request #104 from altrouge/launch_options Add more options in launch files.
  • Rearranged alphabetically.
  • Remove unused constants. DISTANCE_MAX and DISTANCE_MAX_UNITS are not used anywhere in the code. Furthermore, using them would lead to errors as both VLP-64 manuals state that returns above 120 m should not be used. The VLP-32 manual allows 70 m as the maximum valid sensor range.
  • Merge pull request #103 from fudger/patch-1 Fix misleading typecasts.
  • Add more options in launch files.
    • rpm, device_ip, port, read_once, read_fast, repeat_delay
  • Fix misleading typecasts. intensity and VPoint::intensity are both of type float.
  • update change history
  • merge current master (#94)
  • Merge pull request #92 from adasta/master GCC Build Warnings
  • Modified velodyne_point_cloud/src/lib/rawdata.cc to address warning that last_azimuth_diff variable may be used uninitialized. Variable is now initialized to 0 at creation. velodyne/velodyne_pointcloud/src/lib/rawdata.cc:328:57: error: ‘last_azimuth_diff’ may be used uninitialized in this function [-Werror=maybe-uninitialized] azimuth_corrected_f = azimuth + (azimuth_diff * ((dsr*VLP16_DSR_TOFFSET) + (firing*VLP16_FIRING_TOFFSET)) / VLP16_BLOCK_TDURATION);
  • Modified velodyne_pointcloud/src/conversion/colors.cc to remove address build warning for strict-aliasing. velodyne/velodyne_pointcloud/src/conversions/colors.cc:84:58:
  • Merge pull request #89 from Tones29/feat_dynrec_driver Add dynamic latency configuration to velodyne_driver
  • velodyne_pointcloud: Fix compile warning "Wrong initialization order"
  • velodyne_pointcloud: add dynamic reconfig update to change log (#78)
  • Merge branch fudger-reconfigure_transform_node
  • velodyne_pointcloud: use recommended add_dependencies() CMake variable #78
  • velodyne_pointcloud: fix transform unit tests Use tf2_ros static_transform_publisher for more consistent timing (#2)
  • Merge branch reconfigure_transform_node of https://github.com/fudger/velodyne
  • prepare change history for coming Indigo release (#59)
  • calibration: unit test case improvements (#84)
  • calibration: read all intensities as float, then convert (#84)
  • calibration: add gtest for #84 This currently fails on 64e_s2.1-sztaki.yaml and on issue_84_float_intensities.yaml.
  • calibration: make max_intensity and min_intensity optional (#84) This fixes a regression in the 32e and VLP-16 calibrations which do not contain intensity values. There is still a problem with the 64e_s2.1 calibration.
  • Merge pull request #76 from pomerlef/master Sign inversion in some equations
  • Merge pull request #82 from ros-drivers/fix_pr_80 Fix pr 80; adding travis CI tests.
  • fix the yaml-cpp 0.5 code paths
  • Merge pull request #80 from ros-drivers/fix_yaml_import allow floats in min/max_intensity and make horiz_offset_correction optional
  • allow horiz_offset_correction to be optional with 0 as default
  • allow floats instead of ints in min/max_intensity
  • Resolve frame ID name using tf prefix.
  • Improve coding style.
  • Set up dynamic reconfiguration for transform_node. Previously, transform_node has neither read parameters other than frame_id from the command line nor has it exposed these parameters via dynamic reconfigure. As parameters like max_range and view_width have been initialized to zero, the inconfigurable transform_node has returned an empty point cloud. Now, transform_node launches an reconfigure server just as cloud_node. In contrast to cloud_node, transform node exposes another parameter for dynamic reconfiguration: frame_id, i.e. the frame of reference the incoming Velodyne points are transformed to.
  • Merge pull request #77 from fudger/pretty_print Fix output of calibration data onto console
  • Add a missing space.
  • Fix line that always indicates use of model VLP-16.
  • Align console output of calibration data.
  • Merge branch master of https://github.com/ros-drivers/velodyne
  • resolve sign error
  • Merge pull request #73 from fudger/master Correct important data type error for VLP-16
  • Fix data type error that distorts the point cloud.
  • Fix and add a few comments.
  • Merge pull request #68 from jlblancoc/patch-1 Remove unused variable
  • Remove unused variable I think that [dsr]{.title-ref} was unused. See line 317: for (int dsr=0; ...
  • VLP-16: skip badly formatted data packets (#62, #63)
  • restore VLP-16 min_range setting to 0.4 (#60) NOTE: There is still some other problem keeping that from working.
  • permit min_range settings below 0.9 meters (#60) No known models are currently known to return closer measurements.
  • Merge pull request #55 from lemiant/azimuth_bug_VLP16 Fixed azimuth overflow bug.
  • Fixed azimuth overflow bug. For interpolated azimuth values between 35999.5 and 36000.0 the nested round(fmod()) yields a value of 36000 which is invalid and overflows the pre-computed sin/cos arrays, since they only go form 0..35999
  • Merge pull request #51 from kunlileo/master Added vertical sin angle correction
  • Added vertical sin angle correction
  • Merge pull request #47 from prclibo/master fixed rounding bug in intensity calculation found by songshiyu
  • fixed rounding bug in intensity calculation found by songshiyu
  • fix some overly long C++ source lines
  • Merge pull request #44 from SISegwayRmp/master adding driver and pointcloud support for the VLP16
  • missed the space in the file name which caused the build to fail, removed space before extension
  • adding the VLP16 test scripts and updating the CMakeLists to include the test file from http://download.ros.org/data/velodyne/vlp16.pcap
  • adding support for the VLP16
  • Merge pull request #43 from prclibo/fix_rawdata fixed point computation according to the 64e_s2(.1) velodyne manual
  • fixed point computation according to the 64e_s2(.1) velodyne manual, with luopei"s help
  • Merge pull request #41 from prclibo/master fixed a calibration file parsing bug
  • Merge pull request #42 from prclibo/fix_gen_calibration fixed gen_calibration min/max intensity type
  • fixed gen_calibration min/max intensity type
  • fixed a calibration file parsing bug
  • Contributors: Adam Stambler, Alex Rodrigues, Alexander Schaefer, Andreas Wachaja, Bo Li, Daniel Jartoux, Gabor Meszaros, Jack OQuin, Jose Luis Blanco-Claraco, Joshua Whitley, Kevin Hallenbeck, Kris Kozak, Kun Li, Micho Radovnikovich, Scott K Logan, Thomas Solatges, Todor Stoyanov, William Woodall, jack.oquin, libo24, phussey, piyushk, pomerlef

1.2.0 (2014-08-06)

  • velodyne_pointcloud: remove model-dependent "constants" from rawdata.h (#28)
  • velodyne_pointcloud: change default min_range to 0.9 meters (#25)
  • Added support for YAML-CPP 0.5+ (#23).
  • Add dynamic_reconfigure feature.
  • Add angular limits to the output point cloud, useful for omitting part of it. (#22).
  • Contributors: Jack OQuin, Scott K Logan, Thomas Solatges

1.1.2 (2013-11-05)

  • Move unit test data to download.ros.org (#18).
  • Install missing gen_calibration.py script (#20).

1.1.1 (2013-07-30)

  • Fix lost frame_id transform problem caused by PCL 1.7 fix (#13).
  • Add support for HDL-64E S2 and S2.1 models, which were not working before (#11), thanks to Gabor Meszaros (#12).
  • Add additional parameters to launch files (#14).
  • Contributors: Gabor Meszaros, Jack OQuin

1.1.0 (2013-07-16)

  • Fix build problems due to PCL 1.7 API incompatibilities (#8), thanks to William Woodall. This version also works with Groovy, as long as the correct pcl_conversions is installed.
  • Fix errors with Mac OSX compiler (#8).
  • Install pluginlib XML files (#9).
  • Install some launch and parameter files.
  • Enable unit tests when CATKIN_ENABLE_TESTING is set (#10).

1.0.1 (2013-06-15)

  • Declare explicit pluginlib dependency (#4).

1.0.0 (2013-06-14)

  • Convert to catkin (#1).
  • Release to Hydro.

0.9.2 (2013-07-08)

  • Fix Groovy build problem (#7).

0.9.1 (2012-06-05)

  • Only include "enabled" lasers in YAML calibration file.
  • New param subdirectory for parameter files.
  • Add launch file for the HDL-32E.
  • Add rviz_points.vcg file for viewing Velodyne point clouds with rviz.
  • Fix bug when reading configuration with default minIntensity.
  • Add unit tests with 32E data.
  • Released to Electric, Fuerte and Groovy.

0.9.0 (2012-04-03)

  • Completely revised API, anticipating a 1.0.0 release.
  • HDL-32E device support.
  • New YAML configuration file format.
  • New velodyne_driver and velodyne_pointcloud packages.
  • Old velodyne_common and velodyne_pcl packages no longer included.
  • Released to Electric, Fuerte and Groovy.

0.2.6 (2011-02-23)

  • Label all timing-dependent tests "realtime" so they do not run by default on the build farm machines.

0.2.5 (2010-11-19)

  • Initial implementation of new 0.3 interfaces.
  • Support for ROS 1.3 [std_msgs::Header]{.title-ref} changes.

0.2.0 (2010-08-17)

  • Initial release to ROS C-turtle.

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.

Launch files

  • launch/transform_nodelet.launch
    • -*- mode: XML -*-
      • model [default: ]
      • calibration [default: ]
      • frame_id [default: map]
      • manager [default: velodyne_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.9]
      • organize_cloud [default: false]
  • launch/VLP-32C_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/VeloView-VLP-32C.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 200.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/64e_S3.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/64e_s3-xiesc.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
  • launch/VLP16_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/VLP16db.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/32e_points.launch
    • -*- mode: XML -*-
      • calibration [default: $(find velodyne_pointcloud)/params/32db.yaml]
      • device_ip [default: ]
      • frame_id [default: velodyne]
      • manager [default: $(arg frame_id)_nodelet_manager]
      • max_range [default: 130.0]
      • min_range [default: 0.4]
      • pcap [default: ]
      • port [default: 2368]
      • read_fast [default: false]
      • read_once [default: false]
      • repeat_delay [default: 0.0]
      • rpm [default: 600.0]
      • gps_time [default: false]
      • cut_angle [default: -0.01]
      • timestamp_first_packet [default: false]
      • laserscan_ring [default: -1]
      • laserscan_resolution [default: 0.007]
      • organize_cloud [default: false]
  • launch/cloud_nodelet.launch
    • -*- mode: XML -*-
      • model [default: ]
      • calibration [default: ]
      • manager [default: velodyne_nodelet_manager]
      • fixed_frame [default: velodyne]
      • target_frame [default: velodyne]
      • max_range [default: 130.0]
      • min_range [default: 0.9]
      • organize_cloud [default: false]
  • launch/laserscan_nodelet.launch
    • -*- mode: XML -*-
      • manager [default: velodyne_nodelet_manager]
      • ring [default: -1]
      • resolution [default: 0.007]
  • tests/static_vehicle_tf.launch
    • -*- mode: XML -*-

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged velodyne_pointcloud at Robotics Stack Exchange