velodyne_simulator
velodyne_simulator copied to clipboard
ROS2 Fork from https://bitbucket.org/DataspeedInc/velodyne_simulator.git
Velodyne Simulator
URDF description and Gazebo plugins to simulate Velodyne laser scanners

Features
- URDF with colored meshes
- Gazebo plugin based on gazebo_plugins/gazebo_ros_block_laser
- Publishes PointCloud2 with same structure (x, y, z, intensity, ring)
- Simulated Gaussian noise
- GPU acceleration (with a modern Gazebo build)
- Supported models:
- VLP-16
- HDL-32E
- Pull requests for other models are welcome
- Experimental support for clipping low-intensity returns
Parameters
*originURDF transform from parent link.parentURDF parent link name. Defaultbase_linknameURDF model name. Also used as tf frame_id for PointCloud2 output. DefaultvelodynetopicPointCloud2 output topic name. Default/velodyne_pointshzUpdate rate in hz. Default10lasersNumber of vertical spinning lasers. DefaultVLP-16: 16, HDL-32E: 32samplesNuber of horizontal rotating samples. DefaultVLP-16: 1875, HDL-32E: 2187min_rangeMinimum range value in meters. Default0.9max_rangeMaximum range value in meters. Default130.0noiseGausian noise value in meters. Default0.008min_angleMinimum horizontal angle in radians. Default-3.14max_angleMaximum horizontal angle in radians. Default3.14gpuUse gpu_ray sensor instead of the standard ray sensor. Defaultfalsemin_intensityThe minimum intensity beneath which returns will be clipped. Can be used to remove low-intensity objects.
Known Issues
- At full sample resolution, Gazebo can take up to 30 seconds to load the VLP-16 pluggin, 60 seconds for the HDL-32E
- With the default Gazebo version shipped with ROS, ranges are incorrect when accelerated with the GPU option (issue,image)
- Solution: Upgrade to a modern Gazebo version
- Gazebo cannot maintain 10Hz with large pointclouds
- Solution: User can reduce number of points (samples) or frequency (hz) in the urdf parameters, see example.urdf.xacro
- Gazebo crashes when updating HDL-32E sensors with default number of points. "Took over 1.0 seconds to update a sensor."
- Solution: User can reduce number of points in urdf (same as above)
- Gazebo versions in indigo and jade have different z orientations
- Solution: Maintain separate branches for urdf changes (gazebo2 and master)
Example Gazebo Robot
roslaunch velodyne_description example.launch
Example Gazebo Robot (with GPU)
roslaunch velodyne_description example.launch gpu:=true