FixTheRobot Explore Robotics / Systems Engineering / Tools

D · Interactive tool · Module 06

Camera–LiDAR Projection Visualizer

A synthetic scene viewed by a camera and a LiDAR. Perturb the extrinsics and watch the projected points slide off the objects; read the reprojection error by distance.

Preliminary engineering guidance. Results depend on the assumptions listed below and on simplified models. Verify with manufacturer datasheets and a test on your own hardware before committing to a design.

Synthetic scene

Extrinsic error (applied to the camera←LiDAR transform, in the camera frame)

Three different operations

  1. 3D point transformation (Coordinate Transformation Calculator): PC = TCL·PL. 3D to 3D, exact, reversible.
  2. 3D-to-2D projection (above): u = fx·X/Z + cx, v = fy·Y/Z + cy on the camera-frame point. Discards depth, not reversible.
  3. Depth from a 2D detection (below): a pixel defines a ray, not a point. You need an extra assumption (a known plane, a known object size, or a range sensor) to place it in 3D.

Assumptions and limitations

  • The scene is synthetic: a box 7–9 m ahead, a pole at 13.5 m, a wall at 19 m and a flat floor 1.2 m below the LiDAR origin. The LiDAR points lie on those surfaces and on a ground grid.
  • Camera: ideal pinhole, fx = fy = 450 px, principal point at the image centre, 640×360 pixels, no lens distortion, optical frame x right, y down, z forward. Mount: 0.1 m ahead and 0.3 m above the LiDAR, looking forward. These are illustration values, not a product.
  • The “extrinsic error” is applied as an additional transform E in the camera frame: TCL,est = E·TCL,true. Real calibration errors also come from intrinsics, time offset and motion, which are not modelled here.
  • Reprojection error is measured in pixels between the projection with the true and the perturbed extrinsics for the same LiDAR point. It is a sensitivity demonstration, not a calibration quality metric for a real rig (that needs real detections or edges).
  • A rotation error of θ moves an on-axis point by about f·tan θ pixels at any distance; a translation error t moves it by about f·t/Z pixels, shrinking with distance Z.
  • The floor-depth example assumes the camera is level, 1.5 m above a flat floor, with the optical axis horizontal: Z = fy·h / (v − cy). A tilted camera, a slope or a non-flat floor breaks it.

References

  • Pinhole camera model: any computer-vision text (the formulas on this page are the complete model used).