Ask Your Question

Pointcloud to Laserscan on Simulated Jackal UGV w/ VLP-16

asked 2018-10-23 11:37:25 -0500

bsheffield gravatar image

updated 2018-10-31 11:43:32 -0500

Short video of problem description

I have a simulated Jackal equipped with only a VLP-16 sensor. I am trying to get it to do planned navigation but there are noticeable issues namely jerky and timing issues viewed from Gazebo and RViz along with poor navigation results.

Jackal Gazebo Model with VLP-16 front mounted image description

How would I go about effectively navigating this UGV equipped with a VLP-16 with Pointcloud to LaserScan conversions?

Below are the steps to reproduce:

Jackal and Sensor Kinetic ROS packages used

apt-get install -y ros-kinetic-jackal* ros-kinetic-velodyne* ros-kinetic-pointgrey* ros-kinetic-pointcloud-to-laserscan

4 terminals to launch from

roslaunch jackal_gazebo jackal_world.launch config:=base

roslaunch jackal_viz view_robot.launch config:=navigation

roslaunch jackal_navigation odom_navigation_demo.launch config:=base

roslaunch point2laser.launch

Custom point2laser.launch file contents:


   <node pkg="tf" type="static_transform_publisher" name="velodyne_to_front_laser" args="0 0 0.1 0 0 0 velodyne laser_scan 100" />

   <node pkg="pointcloud_to_laserscan" type="pointcloud_to_laserscan_node" name="pointcloud_to_laserscan">

   <remap from="cloud_in" to="/velodyne_points"/>
   <remap from="scan" to="/front/scan"/>
     transform_tolerance: 0.01
     min_height: 0.25
     max_height: 0.75

     angle_min: -3.1415
     angle_max: 3.1415
     angle_increment: 0.01
     scan_time: 0.1
     range_min: 0.9
     range_max: 130
     use_inf: true
     concurrency_level: 0


VLP-16 added default customization by setting JACKAL_URDF_EXTRAS environment variable to point to /urdf/custom.urdf with the following contents:

<robot xmlns:xacro="">

  <xacro:include filename="$(find velodyne_description)/urdf/VLP-16.urdf.xacro" />

  <bridge_plate mount="front" height="0.1"/>

  <VLP-16 parent="front_mount" name="velodyne" topic="/velodyne_points">
    <origin xyz="0 0 0.1" rpy="0 0 0" />

edit retag flag offensive close merge delete


Other than the timing issues that looks like what I would expect from move_base. Have you tried removing some of the computational heavy components to see if that makes it run more smoothly?

stevejp gravatar image stevejp  ( 2018-10-25 19:09:32 -0500 )edit

Ended up finding the culprit issue with no resolution. The time slowing down is a result of the /clock topic not being updated in a timely manner. There is a noticeable delay in message updates on the clock topic when the PointcloudToLaserscan process is started.

bsheffield gravatar image bsheffield  ( 2018-10-29 09:55:17 -0500 )edit

Additional info as well, computational memory only reached 30% capacity. I even disabled all GUI processes with no increase in performance to single out the problem.

bsheffield gravatar image bsheffield  ( 2018-10-29 10:01:27 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2018-10-31 15:11:45 -0500

kmhallen gravatar image

The velodyne_description gazebo plugin can be accelerated with the GPU option. You will have to install the latest Gazebo, instead of the one that ships with ROS by default.

The velodyne_laserscan package can be used as an alternative to pointcloud_to_laserscan to extract one ring of a Velodyne PointCloud2 message as a LaserScan message. This is likely more computationally efficient.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2018-10-23 11:37:25 -0500

Seen: 1,128 times

Last updated: Oct 31 '18