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
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 JACKAL_URDF_EXTRAS 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>
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?
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.
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.