Created by [ Rowan Dempster] on Dec 28, 2019
These instructions work solely on lidars without running all of Autoware and require multiple lidar sensors to be connected to the crystal rugged.
Disclaimer: The multi-LIDAR calibration script will NOT work if the LIDARs for the majority do not have similar corresponding points. Otherwise, there will be no way to template match the points, as shown below
[{.confluence-embedded-image
.confluence-external-resource}]
[To install and build Autoware,
follow ]
[Note that instead of
running ]./catkin_make_release[, run
just ]catkin_make
\
The result of these instructions will be multiple lidars being aligned with one another, after outputting a calibration matrix.
To begin startup the lidar's:
roslaunch velodyne_pointcloud VLP16_points.launch device_ip:=169.254.0.101 port:=2368 frame_id:=vlp1 ns:=vlp1
(replace the ip, port with appropriate values for each lidar)
roslaunch velodyne_pointcloud VLP16_points.launch device_ip:=169.254.0.102 port:=2369 frame_id:=vlp2 ns:=vlp2
Or...
# Runs scaling and transform to origin of center LIDAR
roslaunch src/perception-year-2/perception-lidar-calib.launch
rosrun tf2_ros static_transform_publisher 0 0 0 0 0 0 velodyne vlp1
# go to autoware directory
cd ~/dev/autoware/ros
source devel/setup.sh
rosrun multi_lidar_calibrator multi_lidar_calibrator _points_child_src:=/vlp2/velodyne_points _points_parent_src:=/vlp1/velodyne_points _x:=0.0 _y:=0.0 _z:=0.0 _roll:=0.0 _pitch:=0.0 _yaw:=0.0
or
rosrun multi_lidar_calibrator multi_lidar_calibrator _points_child_src:=/vlp1/velodyne_points _points_parent_src:=/lidar_merged_visualized _x:=-0.186 _y:=0.8 _z:=1.9 _roll:=0.3 _pitch:=0.75 _yaw:=1.911593
# You will get a line like this:
# rosrun tf static_transform_publisher -0.0850236 0.823456 1.77827 1.87159 0.699268 0.228692 /velodyne /vlp1 10
or
rosrun multi_lidar_calibrator multi_lidar_calibrator _points_child_src:=/vlp2/velodyne_points _points_parent_src:=/lidar_merged_visualized _x:=-0.29 _y:=-1.02066 _z:=1.87 _roll:=-0.2 _pitch:=0.8 _yaw:=-2.0
# You will get a line like this:
# rosrun tf static_transform_publisher -0.169596 -0.867779 1.70713 1.21317 2.48995 2.953 /velodyne /vlp2 10
Provide the appropriate initial guesses for the transformation matrix.
Ex:
Normal Distributions Transform converged:1 score: 1.47722 prob:1.05178
transformation from vlp2 to vlp1
This transformation can be replicated using:
rosrun tf static_transform_publisher 0.63806 -0.509938 -0.160922 0.0550881 -0.0969953 0.112378 /vlp1 /vlp2 10
Corresponding transformation matrix:
0.99379 -0.0655566 -0.0899119 0.63806
0.0548014 0.991587 -0.11727 -0.509938
0.0968433 0.111614 0.989022 -0.160922
0 0 0 1
Document generated by Confluence on Dec 10, 2021 04:02