ethz-asl / lidar_align

A simple method for finding the extrinsic calibration between a 3D lidar and a 6-dof pose sensor
837 stars 265 forks source link

Dataset and poses issue #4

Closed goldenminerlmg closed 5 years ago

goldenminerlmg commented 6 years ago

Hi author! 1) In your launch file, you use "/home/z/Datasets/lidar/2018-09-11-20-51-12.bag". So can you upload the dataset, I want to compare the dataset you used with my own. 2) By the way, you say this tool only support Maplab. Can the six degree poses from other VIO like VINS be used with lidar fusion? 3) Have you ever evaluated the calibrate precision, any paper for this tool? Thank you very much!

ZacharyTaylor commented 6 years ago

Hi 1) I have uploaded the dataset here https://drive.google.com/open?id=11fUwbVnvej4NZ_0Mntk7XJ2YrZ5Dk3Ub however it is a pretty terrible example as its just me holding the lidar and randomly waving it around. Rovio was used to get the transforms from a camera I had taped to the lidars base.

2) That part of the readme is slightly outdated. The tool will support anything that outputs a transform stamped message into the same bag as the lidar data. It additionally supports loading the transforms from a CSV file in the format that Maplab outputs.

3) I have never performed any accuracy / precision validations beyond just looking at the sensor configuration and seeing if it makes some basic sense.

goldenminerlmg commented 6 years ago

Thanks for your carefully answering. I will do further test on this tool. Thanks very much!

inkyusa commented 5 years ago

Thanks, Zac! I ran the node and got the following results.

  1. Does this match with the sensor suite extrinsic configuration?
  2. It seems the node hung after all processing (I have to press Ctrl+C to exit), is this intentially? Other than these, it works smoothly!

Some random suggestions; (I guess you may plan to implement a mode allowing to feed directly images to make the node more stand-alonish..., just a random idea suggestion).

It would be great if there is a coordinate system diagram for the example bag file (camera?, pose sensor, LiDAR frames..) My interpretation of the output is that the LiDAR attached -13cm below (z-axis) of the pose sensor frame (i.e., x front, z-up) with about 180 deg rotated in x-axis (roll) and meaning that the LiDAR frame is (x-front and z-down) coordinate?

[ INFO] [1542888642.289185975]: Saving Calibration File...                                
[ INFO] [1542888642.289547567]: Final Calibration:                                
Active Transformation Vector (x,y,z,rx,ry,rz) from the Pose Sensor Frame to  the Lidar Frame:
[-0.00410341, -0.0387078, -0.131487, 3.10166, 0.162856, -0.0622135]

Active Transformation Matrix from the Pose Sensor Frame to  the Lidar Frame:
   0.993703    0.105351  -0.0381413 -0.00410341
   0.103948   -0.993892  -0.0370713  -0.0387078
 -0.0418139   0.0328731   -0.998585   -0.131487
          0           0           0           1

Active Translation Vector (x,y,z) from the Pose Sensor Frame to  the Lidar Frame:
[-0.00410341, -0.0387078, -0.131487]

Active Hamiltonen Quaternion (w,x,y,z) the Pose Sensor Frame to  the Lidar Frame:
[0.0175164, 0.998271, 0.0524153, -0.0200234]

Time offset that must be added to lidar timestamps in seconds:
0.000630944

ROS Static TF Publisher: <node pkg="tf" type="static_transform_publisher" name="pose_lidar_broadcaster" args="-0.00410341 -0.0387078 -0.131487 0.998271 0.0524153 -0.0200234 0.0175164 POSE_FRAME LIDAR_FRAME 100" />
[lidar_align-2] process has finished cleanly
log file: /home/z/.ros/log/e731bc94-ee4e-11e8-9593-e4ce8f408944/lidar_align-2*.log
ZacharyTaylor commented 5 years ago

I believe the output matches with what is typically used in ROS, I wasn't aware of it hanging and will look into it.

I agree that ideally I would add the same april-grid extraction module as in kalibr so that you could go directly from images of a target to a calibration. However this adds a lot of deps, it might be cleaner to add an output from kalibr that writes the poses to a csv. This could then be read and used in the existing pipeline.

For visualizing the result, you could add the given ROS Static TF publisher into a launchfile and view in RViz. Though I agree directly rendering it during optimization would make things much clearer.