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:
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()
↧