Robotics StackExchange | Archived questions

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

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:

 <launch>

   <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"/>
   <rosparam>
     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
   </rosparam>

   </node>
 </launch>

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

<robot xmlns:xacro="http://www.ros.org/wiki/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" />
  </VLP-16>

</robot>

Asked by bsheffield on 2018-10-23 11:37:25 UTC

Comments

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?

Asked by stevejp on 2018-10-25 19:09:32 UTC

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.

Asked by bsheffield on 2018-10-29 09:55:17 UTC

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.

Asked by bsheffield on 2018-10-29 10:01:27 UTC

Answers

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.

Asked by kmhallen on 2018-10-31 15:11:45 UTC

Comments