ros-drivers / velodyne

ROS support for Velodyne 3D LIDARs
http://ros.org/wiki/velodyne
Other
648 stars 643 forks source link

velodyne-128 driver issue #541

Open YangJunghoon opened 1 week ago

YangJunghoon commented 1 week ago

Please complete the following information:

Describe the bug velodyne_transform_node-2] [INFO] [1727069870.757835119] [velodyne_transform]: correction angles: config/VLS128.yaml [velodyne_driver_node-1] terminate called after throwing an instance of 'std::runtime_error' [velodyne_driver_node-1] what(): Unknown Velodyne LIDAR model: VLS-128

To Reproduce Steps to reproduce the behavior:

  1. I found out that you guys updated the vls-128 version.
  2. so i setup through sudo apt install ros-humble-velodyne ros-humble-pcl-ros ros-humble-visualization-msgs
  3. and make nodes like, ex) Node( package='velodyne_driver', executable='velodyne_driver_node', name='velodyne_driver', parameters=[{ 'frame_id': 'velodyne', 'model': 'VLS-128' }], output='screen' ), Node( package='velodyne_pointcloud', executable='velodyne_transform_node', name='velodyne_transform', parameters=[{ 'min_range': 0.4, 'max_range': 130.0, 'calibration': 'config/VLS128.yaml', 'model': 'VLS-128' }], output='screen' )
  4. but i got [velodyne_driver_node-1] terminate called after throwing an instance of 'std::runtime_error' [velodyne_driver_node-1] what(): Unknown Velodyne LIDAR model: VLS-128 [velodyne_transform_node-2] [WARN] [1727069870.763872376] [velodyne_pointcloud]: Timings not supported for model VLS-128 [velodyne_transform_node-2] [WARN] [1727069870.763890396] [velodyne_pointcloud]: NO TIMING OFFSETS CALCULATED. ARE YOU USING A SUPPORTED VELODYNE SENSOR? [ERROR] [velodyne_driver_node-1]: process has died [pid 90514, exit code -6, cmd '/opt/ros/humble/lib/velodyne_driver/velodyne_driver_node --ros-args -r __node:=velodyne_driver --params-file /tmp/launch_params_lzog4cqa'].
  5. i checked up ros/humble/share/velodyne_driver/launch, then i found velodyne_driver_node-VLP16-composed-launch.py,velodyne_driver_node-VLP16-launch.py, velodyne_driver_node-VLP32C-composed-launch.py, velodyne_driver_node-VLP32C-launch.py but o couldn't found 128,
  6. How do I use version 128

Expected behavior using VLS-128 driver

valgur commented 1 week ago

Set the model ID to VLS128 to fix the issue.

YangJunghoon commented 1 week ago

i tried that Node( package='velodyne_driver', executable='velodyne_driver_node', name='velodyne_driver', parameters=[{ 'frame_id': 'velodyne', 'model': 'VLS128' }], output='screen' ), Node( package='velodyne_pointcloud', executable='velodyne_transform_node', name='velodyne_transform', parameters=[{ 'min_range': 0.4, 'max_range': 130.0, 'calibration': 'config/VLS128.yaml', 'model': 'VLS128' }], output='screen' ) but return error [velodyne_transform_node-2] [INFO] [1727073236.440597056] [velodyne_transform]: correction angles: config/VLS128.yaml [velodyne_driver_node-1] terminate called after throwing an instance of 'std::runtime_error' [velodyne_driver_node-1] what(): Unknown Velodyne LIDAR model: VLS128 [velodyne_transform_node-2] [WARN] [1727073236.447534543] [velodyne_pointcloud]: Timings not supported for model VLS128 [velodyne_transform_node-2] [WARN] [1727073236.447553540] [velodyne_pointcloud]: NO TIMING OFFSETS CALCULATED. ARE YOU USING A SUPPORTED VELODYNE SENSOR? [ERROR] [velodyne_driver_node-1]: process has died [pid 94803, exit code -6, cmd '/opt/ros/humble/lib/velodyne_driver/velodyne_driver_node --ros-args -r __node:=velodyne_driver --params-file /tmp/launch_params_t0ly_cme'].

valgur commented 1 week ago

Ok, that's a bug in the driver then: https://github.com/ros-drivers/velodyne/blob/d8cf623a922b1f12995e8c71295924c2905bd9a3/velodyne_pointcloud/src/lib/rawdata.cpp#L188-L210

Btw, you can give https://github.com/valgur/velodyne_decoder a try. It's not a direct replacement, but the precise timing info for VLS-128 is definitely supported there, together with dual-return support and other improvements.