laser_assembler -> problems with ignore_laser_skew
Hi,
I have a tilting laser scanner and i am converting the scans to a point cloud with the laser_assembler package. So far everything works fine except of the ignore_laser_skew.
If I deactivate the ignore_laser_skew (set to false), each single point of a scan should be transformed with the tf from that exact time, right? So if the scanner is titling really fastly, I should get somewhat diagonal lines.
Unfortunately, I can't see any difference between ignore_laser_skew=true and ignore_laser_skew=false and so there are quite big errors in the point cloud, if the scanner is tilting fastly.
The tf is updated at 100 Hz, the scans are published at 5 Hz on the topic /tilt_scan. I'm using ros kinetic.
Below you can see the launch file for the laser_assembler and the python script to call the assemble scans service.
Any ideas would could be wrong? Or did i get the purpose of ignore_laser_skew incorrectly? Thanks in advance!
Launch file:
<launch>
<node type="laser_scan_assembler" pkg="laser_assembler" name="my_assembler">
<remap from="scan" to="tilt_scan"/>
<param name="max_scans" type="int" value="1" />
<param name="tf_cache_time_secs" type="double" value="10" />
<param name="fixed_frame" type="string" value="base_link" />
<param name="ignore_laser_skew" type="bool" value="false" />
</node>
</launch>
script:
#!/usr/bin/env python
import roslib; roslib.load_manifest('laser_assembler')
import rospy; from laser_assembler.srv import *
from sensor_msgs.msg import PointCloud
rospy.init_node("assemble_scan_client")
rate = rospy.Rate(0.5)
while not rospy.is_shutdown():
rospy.wait_for_service("assemble_scans")
try:
assemble_scans = rospy.ServiceProxy('assemble_scans', AssembleScans)
resp = assemble_scans(rospy.Time(0,0), rospy.get_rostime())
print "Got cloud with %u points" % len(resp.cloud.points)
pub=rospy.Publisher('laser_cloud', PointCloud, queue_size=10)
pub.publish(resp.cloud)
except rospy.ServiceException, e:
print "Service call failed: %s"%e
rate.sleep()
More information is necessary to be able to help you. It sounds like you have things right, but without a way to reproduce your problem or see the error in your results we can only guess at what you're doing and what might be good to change. Please edit your post with more details.