velodyne_driver displays ellipse of laser beams instead of circle
Hello, we are using the Velodyne HDL-64E S2 with ROS Hydro for indoor mapping. During this we saw, that the ROS.driver for the Velodyne creates Pointclouds where the Laser-beams are in an ellipse instead of a cicle.
In the following archive are 3 Scans taken at the same possition: archive
- "shelf.pcap": recorded with the original DSR-driver (Version 2.0.0)
- "2014-01-30-12-49-45_0.bag": recorded with the ROS-driver
- "2014-01-30-15-17-49_0.bag": recorded with the PCL-HDL-grabber (the pointcloud is turned by 90° for some reason)
There you can see the same room (and out of the window). Where the scans taken with the original- and pcl-driver are showing straight walls, the ros-driver does not.
The following archive shows the same drivers at a different possition, where the laser-beams hitting mostly the ground: archive
- "floor.pcap": recorded with the original DSR-driver (Version 2.0.0)
- "2014-01-30-16-49-10_0.bag": recorded with the ROS-driver
- "2014-01-30-16-50-23_0.bag": recorded with the PCL-HDL-grabber
There you can see that the original- and pcl-driver are displaying one beam as a circle, where the ros-driver is creating an ellipse.
This is the launch-file that was used for the ros-driver: file
Does anybody has the same experience and/or a solution, or do we have an error in our launch-file?
I am away this week, and cannot see your examples. An ellipse is normal if the device is not exactly perpendicular to the floor.
Thank you for your fast reply. That is correct, but just the ros-driver is showing this. With the ros-driver also the walls are not straight and the velodyne might not be 100% perpendicular to the floor, but not as far as you would see this results.
I took two screenshots for you. I didn't touch the robot/velodyne during the scans. They were taken right after each other at the exact same position. If you save both pictures and switch between them, you can see the difference. - ros-driver: http://robotics.fh-aachen.de/pictures/Screenshot%202014-01-30%2023.29.24.png - pcl-hdl-grabber: http://robotics.fh-aachen.de/pictures/Screenshot%202014-01-30%2023.31.05.png
What calibration file are you using?
For the DSR- and PCL-driver we are using this config file: http://robotics.fh-aachen.de/pictures/db.xml For the ROS-driver we are using this: http://robotics.fh-aachen.de/pictures/HDL62S2db.yaml But the config file saves a config for a laser-beam. If there would be an error, each laser-beam still would create one cycle on a ground. Or am I wrong here?
I agree that configuration is unlikely to cause this error. But, I would prefer to eliminate as many differences as possible. Would you mind running gencalibration.py on your db.xml to take that out of the comparison? See http://wiki.ros.org/velodyne_pointcloud?distro=hydro#gen_calibration.py docs.
Sorry for my late reply. I run the calibration on the db.xml. The result you can find here: http://robotics.fh-aachen.de/pictures/db.yaml (it seems to be similar to the HDL62S2db.yaml-file I uploaded in the last post).