Lidar calibration with fixed intrinsic parameters

3 views (last 30 days)
Hi, I have a calibration data which is,
Angle : LR, UD, Rot
-14.144831,-0.008000,0.000249
TranslationMatrix
-0.010000,-0.090000,-0.135700
intrinsicCameraParameter
1055.465497,1055.605856,969.483445,603.504962,-0.146335,0.063113,-0.001973,0.000488
and I wonder if there's a way that I can apply these parameters for lidar-camera calibration in MATLAB.

Answers (1)

Maneet Kaur Bagga
Maneet Kaur Bagga on 7 Sep 2023
Hi Seungryul Lee,
Please follow the steps provided below to apply these parameters for Lidar-Camera Calibration:
  • Load the Calibration data in MATLAB by either reading the data from a file or directly assigning the values to the variables.
  • You can create the "cameraIntrinsics" object using the provided Intrinsic Camera Parameter as shown in the code provided below.
focalLength = [1055.465497, 1055.605856];
principalPoint = [969.483445, 603.504962];
radialDistortion = [-0.146335, 0.063113];
tangentialDistortion = [-0.001973, 0.000488];
intrinsics = cameraIntrinsics(focalLength, principalPoint,'RadialDistortion', radialDistortion, ...
'TangentialDistortion', tangentialDistortion);
  • Create a transformation Matrix that represents the rotation and translation between the lidar, and the camera coordinate systems as shown in the code provided below.
rotationAngles = [-14.144831, -0.008000, 0.000249];
translationVector = [-0.010000, -0.090000, -0.135700];
rotationMatrix = eul2rotm(deg2rad(rotationAngles), 'XYZ');
translationMatrix = translationVector';
extrinsics = rigidtform3d(rotationMatrix, translationMatrix);
Now you can apply the intrinsic and extrinsic calibration parameters to the lidar and camera data:
  • For lidar data, you can transform the lidar points to the camera coordinate system using the "transformPointsForward" function as shown in the code provided below.
lidarPoints = ... % Your lidar data, Nx3 matrix
cameraPoints = transformPointsForward(extrinsics, lidarPoints);
  • For camera data, you can undistort the distorted image points using the “undistortPoints” function as shown in the code provided below.
distortedImagePoints = ... % Your distorted image points, Nx2 matrix
undistortedImagePoints = undistortPoints(distortedImagePoints, intrinsics);
For better understanding please refer to the following MATLAB Documentations provided below:
cameraParameters
cameraIntrinsics
rigidtform3d
I hope this helps!
Thank You
Maneet Bagga

Categories

Find more on Labeling, Segmentation, and Detection in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!