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?
Originally posted by Tobias Neumann on ROS Answers with karma: 179 on 2014-01-30
Post score: 0
Original comments
Comment by joq on 2014-01-30:
I am away this week, and cannot see your examples. An ellipse is normal if the device is not exactly perpendicular to the floor.
Comment by Tobias Neumann on 2014-01-30:
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.
Comment by Tobias Neumann on 2014-01-30:
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
Comment by joq on 2014-02-03:
What calibration file are you using?
Comment by Tobias Neumann on 2014-02-04:
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?
Comment by joq on 2014-02-04:
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.
Comment by Tobias Neumann on 2014-02-12:
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).