11(2.5, -0.1)

This paper has been accepted for publication at the European Conference on
Computer Vision (ECCV), 2024. ©Springer

11institutetext: 1Zhejiang University 2Westlake University
3The Chinese University of Hong Kong 4Dreame Technology (Suzhou)
5Hong Kong University of Science and Technology (Guangzhou)
6Technical University of Munich

# GlobalPointer: Large-Scale Plane Adjustment with Bi-Convex Relaxation

Bangyan Liao 112⋆2⋆ 0009-0007-7739-4879 Zhenjun Zhao 3⋆3⋆ 0009-0000-6551-4537
Lu Chen 44 0009-0003-5779-4673 Haoang Li 55 0000-0002-1576-9408
Daniel Cremers 66 0000-0002-3079-7984 Peidong Liu🖂 22 0000-0002-9767-6220

###### Abstract

Plane adjustment (PA) is crucial for many 3D applications, involving
simultaneous pose estimation and plane recovery. Despite recent advancements,
it remains a challenging problem in the realm of multi-view point cloud
registration. Current state-of-the-art methods can achieve globally optimal
convergence only with good initialization. Furthermore, their high time
complexity renders them impractical for large-scale problems. To address these
challenges, we first exploit a novel optimization strategy termed Bi-Convex
Relaxation, which decouples the original problem into two simpler sub-
problems, reformulates each sub-problem using a convex relaxation technique,
and alternately solves each one until the original problem converges. Building
on this strategy, we propose two algorithmic variants for solving the plane
adjustment problem, namely GlobalPointer and GlobalPointer++, based on point-
to-plane and plane-to-plane errors, respectively. Extensive experiments on
both synthetic and real datasets demonstrate that our method can perform
large-scale plane adjustment with linear time complexity, larger convergence
region, and robustness to poor initialization, while achieving similar
accuracy as prior methods. The code is available at github.com/wu-
cvgl/GlobalPointer.

###### Keywords:

Plane Adjustment Semidefinite Programming (SDP) Convex Relaxation

††footnotetext: ⋆ Equal contribution.††footnotetext: ${}^{\text{\Letter}}$
Corresponding author: Peidong Liu (liupeidong@westlake.edu.cn).

##  1 Introduction

With the widespread adoption of LiDAR technology in applications such as 3D
reconstruction and LiDAR SLAM [27, 21], tasks involving localization and scene
modeling have gained significant attention. As a fundamental building block,
there is an increasing demand for a more efficient, robust, and accurate
multi-frame point cloud registration algorithm for downstream tasks.

Although the two-frame point cloud registration problem [25, 20, 4] has been
extensively studied in the computer vision community for decades,
transitioning to multi-frame scenarios introduces new challenges.
Specifically, the relative poses obtained from pairwise point cloud
registration often result in the well-known pose drift problem [16]. Many
efforts, such as pose graph optimization [19] and rotation averaging [26, 5],
have been made to address this challenge by introducing additional pose
observations to average out pose errors. However, these methods often yield
sub-optimal and biased results due to the complex pose noise models.

(a)

(b)

Figure 1: Visualization of plane adjustment problem and convergence process.
(a) The plane adjustment problem involves simultaneous pose estimation and
plane reconstruction based on the assigned plane labels of each LiDAR point.
As illustrated, the LiDAR poses and the 3D planes are tightly coupled with
each other. (b) This example demonstrates the convergence process of our
method starting from random initialization. Despite the poses and planes being
randomly initialized, our approach achieves a global minimum within a few
optimization iterations. For visualization purposes, points associated with
the same plane are colored identically.

Inspired by the success of bundle adjustment [22], researchers have explored
its replication in multi-frame point cloud registration, leading to the recent
development of plane adjustment techniques [14, 15]. Similar to bundle
adjustment, plane adjustment simultaneously optimizes the camera poses and
plane parameters (as the counterpart of 3D points in bundle adjustment) by
minimizing point-to-plane [30] or plane-to-plane [15] errors, as shown in Fig.
1(a).

Prior state-of-the-art methods explore both nonlinear least square methods
[31, 30] and spectral-based methods [17, 16, 9, 10, 29] to improve the
performance of plane adjustment. While existing works on plane adjustment have
shown promising results, these methods are limited to small-scale problems,
and their accuracy depends on the quality of initialization. Achieving both
large-scale and globally optimal plane adjustment remains challenging.

To address these challenges, we exploit a novel optimization strategy termed
Bi-Convex Relaxation for the large-scale plane adjustment problem. This
strategy decouples the original complex formulation into two sub-problems.
Each sub-problem is reformulated using convex relaxation techniques [1] and
solved alternately until the overall problem converges. The advantages of our
method are two-fold: 1) the convex sub-problem enlarges the convergence
region, enhancing robustness to poor initialization; and 2) decoupling the
high-dimensional problem into multiple low-dimensional sub-problems avoids
solving intractable large Semidefinite Programming (SDP) problem, enabling
efficient optimization for large-scale scenarios. Building upon this
framework, we present two algorithmic variants, namely GlobalPointer and
GlobalPointer++, based on point-to-plane and plane-to-plane errors,
respectively. The former algorithm exhibits a larger convergence region and
better stability, while the latter demonstrates superior efficiency. Although
there is no theoretical globally optimal guarantee, exhaustive empirical
evaluations in both synthetic and real experiments demonstrate that our method
can provide an empirical globally optimal solution, as shown in Fig. 1(b).

In summary, our contributions are as follows:

  * •

We exploit a novel optimization strategy termed Bi-Convex Relaxation, which
combines the advantages of both alternating minimization [23] and convex
relaxation techniques [1];

  * •

Building on this novel optimization strategy, we develop two algorithmic
variants for plane adjustment, namely GlobalPointer and GlobalPointer++, which
depend on point-to-plane and plane-to-plane errors, respectively;

  * •

Extensive synthetic and real experimental evaluations demonstrate that our
method can perform large-scale plane adjustment with linear time complexity
and robustness to poor initialization, while achieving similar accuracy as
prior methods.

##  2 Related Work

Kaess _et al_. [15] exploiting plane-to-plane error to formulate the plane
adjustment problem as a nonlinear least squares problem, which they solved
efficiently using the Gauss-Newton optimization method. Hsiao _et al_. [14]
extend this approach to a keyframe-based SLAM system. Zhou _et al_. [30] later
demonstrate that using point-to-plane error in the energy function formulation
improves stability and efficiency over plane-to-plane error formulations. They
utilize the matrix factorization trick to solve the resulting nonlinear least
squares problem, avoiding the accumulation of a large number of point clouds.
This method has been widely adopted in plane-based SLAM systems [31].

While these formulations are very efficient for small-scale problems (_i.e_.,
with a small number of camera poses and planes), they struggle in large-scale
problems due to the inherent time complexity. To address this issue, Ferrer
_et al_. [9] propose to use the minimum eigenvalue of the covariance matrix to
obtain a surrogate energy function. This approach avoids the explicit plane
updates and requires only eigenvalue decomposition at each iteration.
Analytical gradients are derived, and a first-order solver is used for solving
this problem. To further improve the convergence speed, they derive the
analytical Hessian matrix, enabling more efficient optimization with a second-
order solver [10]. Similarly, Liu _et al_. derive a similar analytical Hessian
matrix and further improve overall efficiency in [17, 16]. While methods based
on eigenvalue decomposition can avoid explicit plane parameter updates,
constructing the Hessian matrix itself is time-consuming, and performing
eigenvalue decomposition at each iteration further increases the computational
burden. Recently, Zhou [29] proposes a novel approach to exploit implicit
constraints of eigenvalues to derive analytical Hessian matrices and gradient
vectors. However, direct implicit function differentiation would potentially
pose a numerical stability issue.

More recently, the convex relaxation technique has been increasingly employed
to solve challenging non-convex optimization problems in computer vision tasks
[25, 18, 4, 7]. Nevertheless, the efficiency of SDP, as a core computational
tool, is highly related to the size of the state matrix [24], making it
intractable for large-scale plane adjustment.

To address these challenges, we propose to hybridize two techniques, _i.e_.,
alternating minimization [23] and convex relaxation [1], to decouple the
original complex plane adjustment problem into two simpler sub-problems. This
technique, termed Bi-Convex Relaxation, avoids solving high-dimensional SDP
problem, significantly reduces time complexity, and enlarges the convergence
region. Although there is no theoretical guarantee for the entire problem, our
empirical results indicate that our formulation can converge to a global
minimum.

##  3 Notations and Background

###  3.1 Notation

We use MATLAB notation to denote sub-matrix operations. Specifically,
$[\mathbf{a};\mathbf{b}]$ denotes the vertical concatenation of vectors of
$\mathbf{a}$ and $\mathbf{b}$, while $[\mathbf{a}^{\top},\mathbf{b}^{\top}]$
denotes the horizontal concatenation of the transpose vectors of $\mathbf{a}$
and $\mathbf{b}$. The operator $\otimes$ denotes the Kronecker product, and
$\times$ denotes the cross product of vectors. The operator $vec(.)$ denotes
vertical vectorization. For the efficiency of the algorithm, we use a unit
quaternion parameterized rotation matrix in some tasks.

###  3.2 Point-to-Plane Error

Given the rotation matrix $\mathbf{R}\in\mathbf{SO(3)}$ and translation vector
$\mathbf{t}\in\mathbb{R}^{3}$ , we can transform each 3D point from local
coordinates $\mathbf{P}^{l}\in\mathbb{R}^{3}$ to world coordinates
$\mathbf{P}^{g}\in\mathbb{R}^{3}$ as
$\mathbf{P}^{g}=\mathbf{R}\mathbf{P}^{l}+\mathbf{t}$.

For each $\mathbf{P}^{g}$, the corresponding plane parameters
$\mathbf{n}\in\mathbb{R}^{3},\mathbf{q}\in\mathbb{R}^{3}$ are defined as the
normal vector and an arbitrary point on the plane, respectively. To simplify,
we introduce an auxiliary scalar $d=-\mathbf{n}^{\top}\mathbf{q}$. We then
establish a point-to-plane distance as a metric for measuring the registration
error, illustrated in Fig. 2(a), as
${\left\|\mathbf{n}^{\top}(\mathbf{P}^{g}-\mathbf{q})\right\|}_{2}^{2}={\left\|\mathbf{n}^{\top}\mathbf{P}^{g}+d\right\|}_{2}^{2}$.

(a) Point-to-Plane Error Definition.

(b) Plane-to-Plane Error Definition

Figure 2: Visualization of different point cloud error definitions.

###  3.3 Plane-to-Plane Error

Similar to the point-to-plane error, we can define the plane-to-plane error.
Since LiDAR point clouds are typically dense, we can always find many LiDAR
points in a single frame that correspond to the same 3D plane. We can use
plane segmentation and fitting algorithms to obtain the parameters of these
planes $\mathbf{n}_{k}^{l}$ and $\mathbf{q}_{k}^{l}$, in the local LiDAR
coordinate system. Given the rotation matrix $\mathbf{R}$, translation vector
$\mathbf{t}$, normal vector $\mathbf{n}^{l}$, and an arbitrary point
$\mathbf{q}^{l}$, we can readily transform them to the world coordinate as
$\mathbf{n}^{g}=\mathbf{R}\mathbf{n}^{l}$ and
$\mathbf{q}^{g}=\mathbf{R}\mathbf{q}^{l}+\mathbf{t}$, respectively. Given the
corresponding global plane parameters $\mathbf{n}$ and $\mathbf{q}$, we can
establish a plane-to-plane distance as a metric for measuring the registration
error, illustrated in Fig. 2(b), as
${\left\|\mathbf{n}^{g}-\mathbf{n}\right\|}_{2}^{2}+{\left\|\mathbf{n}^{g\top}\mathbf{q}^{g}-\mathbf{n}^{\top}\mathbf{q}\right\|}_{2}^{2}={\left\|\mathbf{n}^{g}-\mathbf{n}\right\|}_{2}^{2}+{\left\|d-d^{g}\right\|}_{2}^{2}$.

###  3.4 Convex Relaxation

Quadratically Constrained Quadratic Program (QCQP), as a general but NP-hard
optimization problem, has various applications across computer vision and
machine learning [28]. It can be defined as:

$\displaystyle\min_{\mathbf{x}\in\mathbb{R}^{n}}$
$\displaystyle\mathbf{x}^{\top}\mathbf{C}\mathbf{x}$ (1) s.t.
$\displaystyle\mathbf{x}^{\top}\mathbf{A}_{i}\mathbf{x}=b_{i},\quad
i=1,\ldots,m,$

where $\mathbf{C},\mathbf{A}_{1},...,\mathbf{A}_{m}\in\mathcal{S}^{n}$ and
$\mathcal{S}^{n}$ denotes the set of all real symmetric $n\times n$ matrices.

The convex relaxation technique serves as a general tool to reformulate the
original QCQP problem into a new convex problem, allowing it to be solved to a
global minimum. Specifically, we first rewrite
$\mathbf{x}^{\top}\mathbf{C}\mathbf{x}$ as
$trace(\mathbf{C}\mathbf{x}\mathbf{x}^{\top})$ and subsequently replace
$\mathbf{x}\mathbf{x}^{\top}$ with a new symmetric positive semidefinite (PSD)
matrix $\mathbf{X}$. This leads to a new Semidefinite Programming (SDP)
problem:

$\displaystyle\min_{\mathbf{X}\in\mathcal{S}^{n}}$ $\displaystyle
trace(\mathbf{C}\mathbf{X})$ (2) s.t. $\displaystyle
trace(\mathbf{A}_{i}\mathbf{X})=b_{i},\quad i=1,\ldots,m,$
$\displaystyle\mathbf{X}\succeq\mathbf{0}.$

The primary benefit of employing convex relaxation instead of directly solving
the original problem lies in the convex nature of the SDP formulation.
Although relaxation is applied, researchers have found that strong duality
properties still hold for many problems [19, 12, 28, 4, 8]. This implies that
solving the relaxed problem is often equivalent to solving the original
problem [1]. With any off-the-shelf SDP solver [2], we can always find the
global minimum within a polynomial time.

##  4 Methodology

In this section, we first define the formal plane adjustment algorithm in Sec.
4.1. Then, a new optimization strategy called Bi-Convex Relaxation will be
established in Sec. 4.2. Building on this strategy, we propose the
GlobalPointer algorithm, based on the point-to-plane error, in Sec. 4.3. In
Sec. 4.4, we accelerate the original algorithm with two closed-form solvers in
GlobalPointer++ based on the plane-to-plane error. We further incorporate some
empirical insights and intuitive remarks on our solvers in Sec. 4.5.

###  4.1 Plane Adjustment (PA)

Let us consider $m$ LiDAR frames and $n$ reconstructed planes. For the
$i^{th}(i\in\\{1,2,\dots,m\\})$ LiDAR frame, we define its absolute pose in
the global world coordinates by a rotation matrix
$\mathbf{R}_{i}\in\mathbf{SO(3)}$ and a translation vector
$\mathbf{t}_{i}\in\mathbb{R}^{3}$. For the $j^{th}(j\in\\{1,2,\dots,n\\})$
reconstructed plane, we define $\mathbf{n}_{j}$ as its normal vector and
$\mathbf{q}_{j}$ as its origin point.

PA with Point-to-Plane Error. When utilizing the point-to-plane error in Sec.
3.2, the plane adjustment problem with point-to-plane error can be defined as:

$\displaystyle\\{\mathbf{R}^{*},\mathbf{t}^{*},\mathbf{n}^{*},\mathbf{q}^{*}\\}=arg\min_{\mathbf{R},\mathbf{t},\mathbf{n},\mathbf{q}}$
$\displaystyle\sum_{i=1}^{m}\sum_{j=1}^{n}{\begin{bmatrix}\mathbf{n}_{j}\\\
d_{j}\end{bmatrix}}^{\top}\mathbf{T}_{i}\mathcal{B}(i,j)\mathbf{T}_{i}^{\top}\begin{bmatrix}\mathbf{n}_{j}\\\
d_{j}\end{bmatrix}$ (3) s.t.
$\displaystyle\mathbf{R}_{i}\in\mathbf{SO(3)},\quad\left\|\mathbf{n}_{j}\right\|=1,$
$\displaystyle\mathcal{B}(i,j)=\sum_{k\in
obs(i,j)}(\tilde{\mathbf{P}}_{k}^{l}\tilde{\mathbf{P}}_{k}^{l\top}),$
$\displaystyle i=1,\ldots,m,\quad j=1,\ldots,n,$

where $obs(i,j)$ denotes the observation index set related to the $j^{th}$
reconstructed plane and the $i^{th}$ LiDAR frame,
$\mathbf{T}_{i}=[\mathbf{R}_{i},\mathbf{t}_{i};\mathbf{0},1]$ represents the
transformation matrix for LiDAR frame $i$, and
$\tilde{\mathbf{P}}_{k}^{l}=[\mathbf{P}_{k}^{l};1]$ denotes homogeneous
coordinates of point $\mathbf{P}_{k}^{l}$ .

Remark. The matrix $\mathcal{B}(i,j)$ accumulates all relevant local points in
advance, avoiding time-consuming point cloud accumulation operations.
Nonetheless, solving this problem is still hard due to the non-convex nature
of both the objective function and constraints, making it highly reliant on a
good initialization.

####  4.1.1 PA with Plane-to-Plane Error.

When utilizing the plane-to-plane error in Sec. 3.3, the plane adjustment
problem with plane-to-plane error can be defined as:

$\displaystyle\\{\mathbf{R}^{*},\mathbf{t}^{*},\mathbf{n}^{*},\mathbf{q}^{*}\\}=arg\min_{\mathbf{R},\mathbf{t},\mathbf{n},\mathbf{q}}$
$\displaystyle\sum_{i=1}^{m}\sum_{j=1}^{n}{\left\|\mathbf{n}_{j}-\mathbf{R}_{i}\mathbf{n}_{ij}^{l*}\right\|}_{2}^{2}+{\left\|\mathbf{n}_{ij}^{l*\top}\mathbf{R}_{i}^{\top}\mathbf{t}_{i}+d_{j}-{d}_{ij}^{l*}\right\|}_{2}^{2}$
(4) s.t.
$\displaystyle\mathbf{R}_{i}\in\mathbf{SO(3)},\quad\left\|\mathbf{n}_{j}\right\|=1,$
$\displaystyle i=1,\ldots,m,\quad j=1,\ldots,n,$

where the optimal local plane parameters
$[\mathbf{n}_{ij}^{l*};{d}_{ij}^{l*}]$ is obtained by minimizing the point-to-
plane error for LiDAR points observed in the $i^{th}$ LiDAR frame associated
with the $j^{th}$ reconstructed plane as:

$(\mathbf{n}_{ij}^{l*},{d}_{ij}^{l*})=arg\min_{\mathbf{n}_{ij}^{l},{d}_{ij}^{l}}\begin{bmatrix}\mathbf{n}_{ij}^{l}\\\
{d}_{ij}^{l}\end{bmatrix}^{\top}\mathcal{B}(i,j)\begin{bmatrix}\mathbf{n}_{ij}^{l}\\\
{d}_{ij}^{l}\end{bmatrix}.$ (5)

Remark. As detailed in the subsequent section, the formulation akin to a
nonlinear least squares problem simplifies Eq. 4. However, this also comes at
a price. The direction of the normal vector for each local plane introduces
ambiguity. Failure to unify these directions can lead to divergence in the
entire optimization process.

Figure 3: Illustration of the proposed Bi-Convex Relaxation. Three blue
circles represent plane1, plane2, and plane3. Two yellow circles denote the
LiDAR pose1 and LiDAR pose2. The connection edges denote the observation
relationships. Fixing the planes leads to pose-only optimization (left), while
fixing the LiDAR poses in plane-only optimization (right). Each sub-problem is
then reformulated as SDP, which can be solved with globally optimal
guarantees. Using these techniques, the plane adjustment algorithm alternately
solves each sub-problem until the convergence of the original problem.

###  4.2 Bi-Convex Relaxation

As shown above, whether based on point-to-plane or plane-to-plane error,
direct plane adjustment presents a non-convex optimization problem.
Fortunately, when either the planes or the poses are fixed, the remaining
optimization problem becomes a QCQP problem, which can be reformulated with
convex relaxation and solved to the global minimum. Thus, we adopt an
alternating minimization approach to achieve convergence in the original plane
adjustment. We term this strategy, which combines alternating minimization and
convex relaxation, as Bi-Convex Relaxation, shown in Fig. 3. Although the non-
convex nature of the original problem prevents Bi-Convex Relaxation from
guaranteeing global convergence, extensive experiments demonstrate that this
algorithm significantly enlarges the convergence region and even provides
empirical global optimality guarantees under certain conditions. Additionally,
fixing a subset of parameters decouples the inter-dependence among the
remaining parameters for optimization (_e.g_. fixing $p1$, $p2$, $p3$ makes
$l1$, $l2$ independent in Fig. 3). This allows for parallel optimization of
each plane or pose, avoiding high-dimensional SDP optimization and
significantly reducing time complexity.

Input : Random initialized LiDAR poses $\\{\mathbf{R}_{i},\mathbf{t}_{i}\mid
i=1,\dots,m\\}$, random initialized plane parameters
$\\{\mathbf{n}_{j},\mathbf{q}_{j}\mid j=1,\dots,n\\}$, and labeled LiDAR
points $\\{\mathbf{P}_{k}\mid k\in obs(i,j)\\}$.

Output : Optimized LiDAR poses and plane parameters
$\\{\mathbf{R}^{*},\mathbf{t}^{*},\mathbf{n}^{*},\mathbf{q}^{*}\\}$.

1

2while  _(not reach max iteration) and (not satisfy stopping criteria)_ do

3 Find $\\{\mathbf{X}^{*}\\}$ by solving the Pose-Only SDP;

4 Rounding $\\{\mathbf{X}^{*}\\}$ and recover LiDAR poses;

5 Find $\\{\mathbf{Y}^{*}\\}$ by solving the Plane-Only SDP;

6 Rounding $\\{\mathbf{Y}^{*}\\}$ and recover plane parameters;

7

8 end while

Algorithm 1 GlobalPointer

###  4.3 GlobalPointer

In this subsection, we will follow the Bi-Convex Relaxation technique to
derive the SDP formulation for each sub-problem based on point-to-plane error.
The algorithm is summarized in Alg. 1. For simplicity, we omit the derivation
from primal to QCQP and QCQP to SDP. For detailed derivation, please refer to
the supplementary material.

Pose-Only Optimization. After fixing the plane parameters, we can readily
convert the original plane adjustment problem in Eq. 3 to a pose-only SDP as:

$\displaystyle\\{\mathbf{X}^{*}\\}=arg\min_{\mathbf{X}}$
$\displaystyle\sum_{i=1}^{m}trace(\mathcal{C}(i)\mathbf{X}_{i})$ (Pose-Only
SDP) s.t.
$\displaystyle\mathcal{C}(i)=\sum_{j=1}^{n}(\mathbf{b}_{j}\mathbf{b}_{j}^{\top})\otimes\mathcal{B}(i,j),$
$\displaystyle\mathbf{X}_{i}\succeq\mathbf{0},\quad\\{\text{redundant rotation
constraints}\\},$ $\displaystyle i=1,\ldots,m,\quad j=1,\ldots,n,$

where the auxiliary vector $\mathbf{b}_{j}\in\mathbb{R}^{4}$ is defined as
$\mathbf{b}_{j}=[\mathbf{n}_{j};-\mathbf{n}_{j}^{\top}\mathbf{q}_{j}]$ and
rank one symmetric PSD matrix
$\mathbf{X}_{i}=vec(\mathbf{T}_{i})vec(\mathbf{T}_{i})^{\top}$ represents the
$i^{th}$ primal pose variable. The redundant rotation constraints are defined
as:

$\displaystyle\\{\text{redundant rotation
constraints}\\}:\left\\{\begin{matrix}&\mathbf{R}_{i}^{\top}\mathbf{R}_{i}=\mathbf{I}_{3},\quad\mathbf{R}_{i}\mathbf{R}_{i}^{\top}=\mathbf{I}_{3},\\\
&(\mathbf{R}_{i}\mathbf{e}_{i})\times(\mathbf{R}_{i}\mathbf{e}_{j})=(\mathbf{R}_{i}\mathbf{e}_{k}),\\\
&\forall(i,j,k)\in\left\\{(1,2,3),(2,3,1),(3,1,2)\right\\}.\end{matrix}\right.$
(6)

Input : Random initialized LiDAR poses $\\{\mathbf{R}_{i},\mathbf{t}_{i}\mid
i=1,\dots,m\\}$, random initialized plane parameters
$\\{\mathbf{n}_{j},\mathbf{q}_{j}\mid j=1,\dots,n\\}$, and labeled LiDAR
points $\\{\mathbf{P}_{k}\mid k\in obs(i,j)\\}$.

Output : Optimized LiDAR poses and plane parameters
$\\{\mathbf{R}^{*},\mathbf{t}^{*},\mathbf{n}^{*},\mathbf{q}^{*}\\}$.

1 Find the optimal local plane parameters $\\{\mathbf{n}^{l*},{d}^{l*}\\}$;

2 Global normal direction calibration by solving the Rotation-Only SDP;

3 while  _(not reach max iteration) and (not satisfy stopping criteria)_ do

4 Find LiDAR poses $\\{\mathbf{R}^{*},\mathbf{t}^{*}\\}$ by solving Eq. 8;

5 Find plane parameters $\\{\mathbf{n}^{*},\mathbf{q}^{*}\\}$ by solving Eq.
9;

6

7 end while

Algorithm 2 GlobalPointer++

Plane-Only Optimization. Similar to pose-only optimization, we can conduct
plane-only optimization by fixing the pose parameters. This reformulates the
original plane adjustment problem in Eq. 3 into a plane-only SDP as:

$\displaystyle\\{\mathbf{Y}^{*}\\}=arg\min_{\mathbf{Y}}$
$\displaystyle\sum_{j=1}^{n}trace(\mathcal{D}(j)\mathbf{Y}_{j})$ (Plane-Only
SDP) s.t.
$\displaystyle\mathcal{D}(j)=\sum_{i=1}^{m}\mathbf{T}_{i}\mathcal{B}(i,j)\mathbf{T}_{i}^{\top},$
$\displaystyle\mathbf{Y}_{j}\succeq\mathbf{0},\quad\left\|\mathbf{n}_{j}\right\|=1,$
$\displaystyle i=1,\ldots,m,\quad j=1,\ldots,n,$

where the rank one symmetric PSD matrix
$\mathbf{Y}_{j}=\mathbf{b}_{j}\mathbf{b}_{j}^{\top}$ denotes the $j^{th}$
primal plane variable.

###  4.4 GlobalPointer++

In this subsection, we introduce a new variant of the plane adjustment
algorithm, GlobalPointer++, which accelerates the original GlobalPointer
method. Similar to GlobalPointer, GlobalPointer++ decouples the original
formulation and alternately solves each sub-problem in closed form until
convergence. Unlike GlobalPointer, GlobalPointer++ relies on the plane-to-
plane error defined in Eq. 4 for registration instead of the point-to-plane
error. Although this formulation can be solved in closed form, the ambiguity
of the normal direction prevents practical usage, as discussed in Sec. 4.1.1.
In the following, we first address the ambiguity issue by introducing global
normal direction calibration and then derive the closed-form solvers. The
algorithm is summarized in Alg. 2.

Global Normal Direction Calibration. To resolve the ambiguity of the normal
direction, we reformulate the simultaneous rotation and normal direction
search problem as a new SDP problem. Firstly, we rewrite the cross term
$-2\mathbf{n}_{j}^{\top}\mathbf{R}_{i}\mathbf{n}_{ij}^{l*}$ in
${\left\|\mathbf{n}_{j}-\mathbf{R}_{i}\mathbf{n}_{ij}^{l*}\right\|}_{2}^{2}$
(Eq. 4) using quaternion-based rotation representation as
$\mathbf{q}_{i}^{\top}\mathbf{M}_{ij}\mathbf{q}_{i}\boldsymbol{\theta}_{ij}$,
where $\mathbf{q}_{i}$ is the unit quaternion of rotation $\mathbf{R}_{i}$,
$\mathbf{M}_{ij}$ is the corresponding auxiliary matrix, and
$\boldsymbol{\theta}_{ij}=\\{+1,-1\\}$ represents the normal direction sign.
We then define a single column vector
$\bar{\mathbf{q}}_{i}=[\mathbf{q}_{i};\mathbf{q}_{i}\boldsymbol{\theta}_{i1};\ldots;\mathbf{q}_{i}\boldsymbol{\theta}_{in}]$
and the corresponding rank one symmetric PSD matrix
$\mathbf{Q}_{i}=\bar{\mathbf{q}}_{i}\bar{\mathbf{q}}_{i}^{\top}$. This can be
relaxed to a rotation-only SDP as:

$\displaystyle\\{\mathbf{Q}^{*}\\}=arg\min_{\mathbf{Q}}$
$\displaystyle\sum_{i=1}^{m}trace(\bar{\mathbf{M}}_{i}\mathbf{Q}_{i})$
(Rotation-Only SDP) s.t. $\displaystyle\mathbf{Q}_{i}\succeq\mathbf{0},\quad
trace([\mathbf{Q}_{i}]_{00})=1,\quad[\mathbf{Q}_{i}]_{00}=[\mathbf{Q}_{i}]_{jj}$
$\displaystyle i=1,\ldots,m,\quad j=1,\ldots,n,$

where $\bar{\mathbf{M}}_{i}$ includes all $\mathbf{M}_{ij}$ as

$\displaystyle{}_{0j}=0.5\mathbf{M}_{ij},\quad[\bar{\mathbf{M}}_{i}]_{j0}=0.5\mathbf{M}_{ij}^{\top},\quad
j=1,\ldots,n.$ (7)

Remark. Following this calibration, all local plane normal directions are made
consistent. It is worth noting that this calibration can also be applied to
two-frame registration. Consequently, we employ this solver to sequentially
initialize the normal directions by incrementally registering point clouds,
thereby reducing computational time. Once the normal directions are corrected,
we then apply the following closed-form solvers to each sub-problem.

Pose-Only Closed-Form Solver. After fixing the plane parameters, we can
convert the original plane adjustment problem in Eq. 4 to a pose-only closed-
form solver as:

$\displaystyle\\{\mathbf{R}^{*},\mathbf{t}^{*}\\}=arg\min_{\mathbf{R},\mathbf{t}}$
$\displaystyle\sum_{i=1}^{m}\sum_{j=1}^{n}{\left\|\mathbf{n}_{j}-\mathbf{R}_{i}\mathbf{n}_{ij}^{l*}\right\|}_{2}^{2}+{\left\|\mathbf{n}_{ij}^{l*\top}\mathbf{R}_{i}^{\top}\mathbf{t}_{i}+d_{j}-{d}_{ij}^{l*}\right\|}_{2}^{2}$
(8) $\displaystyle=arg\min_{\mathbf{q},\mathbf{t}}$
$\displaystyle\sum_{i=1}^{m}\sum_{j=1}^{n}\mathbf{q}_{i}^{\top}\mathbf{M}_{ij}\mathbf{q}_{i}+\left\|\mathbf{n}_{ij}^{l*\top}\mathbf{R}_{i}^{\top}\mathbf{t}_{i}+d_{j}-{d}_{ij}^{l*}\right\|^{2}$
s.t. $\displaystyle\left\|\mathbf{q}_{i}\right\|=1,\quad i=1,\ldots,m,$

where the auxiliary matrix $\mathbf{M}_{ij}$ is defined as in Rotation-Only
SDP. The quaternion can be analytically determined as the eigenvector
corresponding to the minimum eigenvalue. Subsequently, by substituting the
quaternion into the second term, the translation vector can be obtained in
closed form using linear least squares.

Plane-Only Closed-Form Solver. Similar to the pose-only closed-form solver, by
fixing the plane parameters, we can convert the original plane adjustment
problem in Eq. 4 to a plane-only closed-form solver as:

$\displaystyle\\{\mathbf{n}^{*},d^{*}\\}=arg\min_{\mathbf{n},d}$
$\displaystyle\sum_{i=1}^{m}\sum_{j=1}^{n}{\left\|\mathbf{n}_{j}-\mathbf{R}_{i}\mathbf{n}_{ij}^{l*}\right\|}_{2}^{2}+{\left\|\mathbf{n}_{ij}^{l*\top}\mathbf{R}_{i}^{\top}\mathbf{t}_{i}+d_{j}-{d}_{ij}^{l*}\right\|}_{2}^{2}$
(9) s.t. $\displaystyle\left\|\mathbf{n}_{j}\right\|=1,\quad j=1,\ldots,n.$

The optimal $\mathbf{n}_{j}$ can be determined through eigen decomposition.
Subsequently, the optimal $d_{j}$ can be analytically obtained by substituting
the optimal $\mathbf{n}_{j}$.

###  4.5 Performance Analysis

In this section, we provide some intuitive remarks on our solver. For more
detailed discussions, please refer to the supplementary material.

Remark 1. For general scenes, the proposed Bi-Convex Relaxation optimization
strategy consistently ensures convergence to a local minimum of the original
plane adjustment problem. Intuitively, the two sets of parameters are not
mutually constrained by equalities or inequalities, making the overall problem
more stable and straightforward.

Remark 2. In the absence of outliers and noise, each SDP sub-problem (_i.e_.,
Pose-Only SDP, Plane-Only SDP, and Rotation-Only SDP) converges to a global
minimum with zero duality gap. Moreover, even in the presence of low noise
levels, our algorithm maintains empirical global optimality.

Remark 3. Although our original problem is non-convex, experimental results
demonstrate that our algorithm achieves empirical global optimality. While
this global optimality is empirical, further analysis can be conducted through
other means, which is beyond the scope of this paper.

Remark 4. The overlap between planes and poses is a critical factor for our
algorithm. Problems with a larger overlap result in a more stable and
efficient optimization convergence process. From a practical perspective, a
larger overlap is preferred.

Remark 5. The time complexity of the proposed GlobalPointer is linear with
respect to the number of planes and poses. The time complexity of the proposed
GlobalPointer++ is linear when the number of planes and poses is small, and
quadratic when both are extremely large.

Figure 4: Total optimization time analysis with increasing poses and planes.

##  5 Experiments

###  5.1 Testing Setup

In our experiments, the proposed method is compared to the state-of-the-art
methods including BALM2 [16], EF [9], ESO-Full [29], ESO-BFGS (the first-order
version of [29]), PA-Full [30], and PA-Decoupled (the decoupled version of
[30]). We implement our method in Matlab and run it on a laptop with an
i9-13900HX CPU and 32 GB RAM. The maximum number of iterations is set to 200
for all second-order solvers, and the relative stop tolerance is set to
$10^{-4}$. We use Yalmip as our solver’s interface and Mosek as the core SDP
solver.

Figure 5: Accuracy comparisons on the synthetic dataset under varying point
cloud noise levels and pose initialization noise levels. The $y$ axis
represents the total point-to-plane error $e_{total}$ in the log10 scale.

###  5.2 Synthetic Data

Testing Setup. We generate numerous virtual planes and virtual observation
poses. Each pose is set to be inside a box with a maximum size of 50 meters,
and each plane is set to be observed from any pose.

Figure 6: Relative time complexity comparisons. The $x$ axis represents the
number of planes and the $y$ axis represents the number of poses. The color
bar on the right side of each subplot indicates the mapping relationship
between the multiplier of runtime growth and the colors.

Runtime. We evaluate the runtime of GlobalPointer and GlobalPointer++. The
number of planes and poses increases gradually, using well-initialized
parameters. All statistics are computed over 50 independent trials. As
illustrated in Fig. 4, the runtime of GlobalPointer exhibits a linear growth
trend with increasing numbers of planes and poses, while GlobalPointer++
achieves a 5-10x speedup compared to GlobalPointer. Interestingly, as the
number of planes and poses reaches a certain magnitude, the most time-
consuming part in the GlobalPointer++ is neither the eigen decomposition nor
the linear least squares, but rather the data preparation for each iteration.
Due to the quadratic growth complexity of data preparation time, the entire
algorithm demonstrates quadratic time complexity when the number of planes and
poses is large.

Accuracy. We extensively compare our proposed algorithms with other methods in
terms of accuracy under varying levels of point cloud noise and pose
initialization noise. We choose the total point-to-plane error, defined as
$e_{total}=(\mathbf{n}^{\top}(\mathbf{R}\mathbf{P}+\mathbf{t})+d)^{2}$, as the
evaluation metric. All statistics are computed over 50 independent trials. As
shown in Fig. 5, GlobalPointer consistently converges to the global optimum
across all settings, while GlobalPointer++ is more sensitive to point cloud
noise. ESO [29] performs poorly due to unstable numerical stability in Hessian
matrix derivation. Other methods fail to converge to the global minimum above
a certain level of noise.

Time Complexity. We also evaluate the growth of time complexity for the
algorithms. Starting with 5 planes and 5 poses, we incrementally increase the
number of poses and planes. Time complexity is measured as the multiple of the
optimization time relative to the initial setting. We conduct 50 independent
trials and use the median time as the metric. Experimental results in Fig. 6
demonstrate that our two algorithms exhibit similar time complexity. BALM2
[16], EF [9], and ESO-BFGS [29] show less sensitivity to increasing numbers of
planes. However, ESO-Full [29] and PA-Full [30] exhibit time complexities
approaching cubic. PA-Decoupled [30], which also employs alternating
minimization, demonstrates time complexity similar to our method.

###  5.3 Real Data

Figure 7: Accuracy comparisons on the real dataset under varying pose
initialization noise levels. The $y$ axis represents the total point-to-plane
error $e_{total}$ in the log10 scale.

Accuracy. For real datasets, we select sequences from the Hilti dataset [13]
with a higher number of indoor planes. Initially, we transform the local point
clouds of each frame into the global coordinate system using ground truth
poses. Subsequently, we employ plane segmentation and fitting algorithms to
extract point clouds [32] associated with the same plane, with a RANSAC
fitting threshold of $0.01$. The segmentation results can be found in the
supplementary material. Furthermore, to align with our hypothesis that each
plane should be observed by as many LiDAR frames as possible, we randomly
divide all point cloud frames into 50 subsets and accumulate them into
individual sub-cloud frames. All statistics are computed over 50 independent
trials. In Fig. 7, we compare the accuracy of our algorithms with other
methods. It is evident that our proposed GlobalPointer and GlobalPointer++
consistently demonstrate global convergence performance across all settings,
while other methods require well-initialized values to converge to the ground
truth.

##  6 Conclusions

In this paper, we exploit a novel optimization strategy, Bi-Convex Relaxation,
and apply it to solve the plane adjustment problem with two variants of
errors, resulting in the proposals of GlobalPointer and GlobalPointer++,
respectively. Extensive synthetic and real experiments demonstrate that our
method enables large-scale plane adjustment with linear time complexity,
larger convergence region, and without relying on good initialization, while
achieving similar accuracy as prior methods.

## Acknowledgments

This work was supported in part by NSFC under Grant 62202389, in part by a
grant from the Westlake University-Muyuan Joint Research Institute, and in
part by the Westlake Education Foundation

## SUPPLEMENTARY MATERIAL

## Overview

In this supplementary material, we further provide the following content:

  * •

A complete derivation of GlobalPointer (Appendix 0.A).

  * •

Detailed discussions on the remarks presented in in Sec. 4.5 of the main paper
(Appendix 0.B).

  * •

Additional experiment analysis of our solvers (Appendix 0.C).

##  Appendix 0.A Supplementary Derivation

In this section, we derive the primal QCQP and the corresponding SDP with
convex relaxation for each sub-problem in GlobalPointer.

Pose-Only Optimization. After fixing the plane parameters, we can readily
convert the original plane adjustment problem defined in Eq. 3 to a pose-only
QCQP as:

$\displaystyle(vec(\mathbf{T}^{*}))=arg\min_{vec(\mathbf{T})}$
$\displaystyle\sum_{j=1}^{n}\sum_{i=1}^{m}\mathbf{b}_{j}^{\top}\mathbf{T}_{i}\mathcal{B}(i,j)\mathbf{T}_{i}^{\top}\mathbf{b}_{j}$
(Pose-Only QCQP) $\displaystyle=arg\min_{vec(\mathbf{T})}$
$\displaystyle\sum_{i=1}^{m}vec(\mathbf{T}_{i})^{\top}\mathcal{C}(i)vec(\mathbf{T}_{i})$
s.t.
$\displaystyle\mathcal{C}(i)=\sum_{j=1}^{n}(\mathbf{b}_{j}\mathbf{b}_{j}^{\top})\otimes\mathcal{B}(i,j),$
$\displaystyle\mathbf{R}_{i}\in\mathbf{SO(3)},$ $\displaystyle
i=1,\ldots,m,\quad j=1,\ldots,n,$

where the auxiliary vector $\mathbf{b}_{j}$ is defined as
$\mathbf{b}_{j}=[\mathbf{n}_{j};-\mathbf{n}_{j}^{\top}\mathbf{q}_{j}]$. This
pose-only QCQP is a standard block-wise QCQP and can be decoupled into $m$
sub-problems, each of which can be converted into $m$ low-dimensional SDPs.
Let the rank one symmetric PSD matrix
$\mathbf{X}_{i}=vec(\mathbf{T}_{i})vec(\mathbf{T}_{i})^{\top}$ represent the
$i^{th}$ primal pose variable. We can convert this pose-only QCQP to a pose-
only SDP as:

$\displaystyle\\{\mathbf{X}^{*}\\}=arg\min_{\mathbf{X}}$
$\displaystyle\sum_{i=1}^{m}trace(\mathcal{C}(i)\mathbf{X}_{i})$ (Pose-Only
SDP) s.t.
$\displaystyle\mathcal{C}(i)=\sum_{j=1}^{n}(\mathbf{b}_{j}\mathbf{b}_{j}^{\top})\otimes\mathcal{B}(i,j),$
$\displaystyle\mathbf{X}_{i}\succeq\mathbf{0},\quad\\{\text{redundant rotation
constraints}\\},$ $\displaystyle i=1,\ldots,m,\quad j=1,\ldots,n,$

where the redundant rotation constraints are defined as:

$\displaystyle\\{\text{redundant rotation
constraints}\\}:\left\\{\begin{matrix}&\mathbf{R}_{i}^{\top}\mathbf{R}_{i}=\mathbf{I}_{3},\quad\mathbf{R}_{i}\mathbf{R}_{i}^{\top}=\mathbf{I}_{3},\\\
&(\mathbf{R}_{i}\mathbf{e}_{i})\times(\mathbf{R}_{i}\mathbf{e}_{j})=(\mathbf{R}_{i}\mathbf{e}_{k}),\\\
&\forall(i,j,k)\in\left\\{(1,2,3),(2,3,1),(3,1,2)\right\\}.\end{matrix}\right.$
(10)

Plane-Only Optimization Similar to pose-only optimization, we can conduct
plane-only optimization by fixing the pose parameters. We can readily convert
the original plane adjustment problem in Eq. 3 to a plane-only QCQP as:

$\displaystyle(\mathbf{b}^{*})=arg\min_{\mathbf{b}}$
$\displaystyle\sum_{j=1}^{n}\sum_{i=1}^{m}\mathbf{b}_{j}^{\top}\mathbf{T}_{i}\mathcal{B}(i,j)\mathbf{T}_{i}^{\top}\mathbf{b}_{j}$
(Plane-Only QCQP) $\displaystyle=arg\min_{\mathbf{b}}$
$\displaystyle\sum_{j=1}^{n}\mathbf{b}_{j}^{\top}(\sum_{i=1}^{m}\mathbf{T}_{i}\mathcal{B}(i,j)\mathbf{T}_{i}^{\top})\mathbf{b}_{j}$
s.t. $\displaystyle\left\|\mathbf{n}_{j}\right\|=1,$ $\displaystyle
i=1,\ldots,m,\quad j=1,\ldots,n.$

Similar to pose-only SDP, we introduce the rank one symmetric PSD matrix
$\mathbf{Y}_{j}=\mathbf{b}_{j}\mathbf{b}_{j}^{\top}$ and convert this plane-
only QCQP to a plane-only SDP as:

$\displaystyle\\{\mathbf{Y}^{*}\\}=arg\min_{\mathbf{Y}}$
$\displaystyle\sum_{j=1}^{n}trace(\mathcal{D}(j)\mathbf{Y}_{j})$ (Plane-Only
SDP) s.t.
$\displaystyle\mathcal{D}(j)=\sum_{i=1}^{m}\mathbf{T}_{i}\mathcal{B}(i,j)\mathbf{T}_{i}^{\top}$
$\displaystyle\mathbf{Y}_{j}\succeq\mathbf{0},\quad\left\|\mathbf{n}_{j}\right\|=1,$
$\displaystyle i=1,\ldots,m,\quad j=1,\ldots,n.$

##  Appendix 0.B Detailed Discussions

In this section, we further discuss all the remarks claimed in Sec. 4.5 of the
main paper.

###  0.B.1 Remark 1

Remark 1. For general scenes, the proposed Bi-Convex Relaxation optimization
strategy consistently ensures convergence to a local minimum of the original
plane adjustment problem. Intuitively, the two sets of parameters are not
mutually constrained by equalities or inequalities, making the overall problem
more stable and straightforward.

Considering a multi-variable constrained optimization problem defined as:

$\displaystyle(\mathbf{a}^{*},\mathbf{b}^{*})=arg\min_{\mathbf{a},\mathbf{b}}$
$\displaystyle f(\mathbf{a},\mathbf{b})$ (Primal Constrained Problem) s.t.
$\displaystyle c_{i}(\mathbf{a},\mathbf{b})\leq 0,\quad i=1,\ldots,m$
$\displaystyle c_{j}(\mathbf{a},\mathbf{b})=0,\quad j=1,\ldots,n.$

By fixing one variable, we can solve the remaining sub-problem until
convergence. The two sub-convex problems at iteration $n$ are defined as:

$\displaystyle(\mathbf{a}^{*})=arg\min_{\mathbf{a}}$ $\displaystyle
f(\mathbf{a},\mathbf{b})$ (Bi-convex Problem) s.t. $\displaystyle
c_{i}(\mathbf{a},\mathbf{b})\leq 0,\quad i=1,\ldots,m,$ $\displaystyle
c_{j}(\mathbf{a},\mathbf{b})=0,\quad j=1,\ldots,n,$
$\displaystyle(\mathbf{b}^{*})=arg\min_{\mathbf{b}}$ $\displaystyle
f(\mathbf{a},\mathbf{b})$ s.t. $\displaystyle c_{i}(\mathbf{a},\mathbf{b})\leq
0,\quad i=1,\ldots,m,$ $\displaystyle c_{j}(\mathbf{a},\mathbf{b})=0,\quad
j=1,\ldots,n.$

Lemma 1. The partial optimum [11] of Bi-convex Problem is a local minimum of
Primal Constrained Problem if the partial derivatives
$c_{i}(\mathbf{a},\mathbf{b})$ and $c_{j}(\mathbf{a},\mathbf{b})$ with respect
to $\mathbf{a}$ and $\mathbf{b}$ are linearly independent.

Proof. Due to the lack of constraint correlation between $\mathbf{a}$ and
$\mathbf{b}$ in our optimization problem, this sufficient condition can be
easily verified as:

$\displaystyle\frac{\partial c_{i}(a,b)}{\partial a}\text{ linearly
independent of }\frac{\partial c_{i}(a,b)}{\partial b}$ (11)
$\displaystyle\frac{\partial c_{j}(a,b)}{\partial a}\text{ linearly
independent of }\frac{\partial c_{j}(a,b)}{\partial b}$

Therefore, for each sub-problem, we can further simplify it as:

$\displaystyle(\mathbf{a}^{*})=arg\min_{\mathbf{a}}$ $\displaystyle
f(\mathbf{a},\mathbf{b})$ (Simplified Bi-convex Problem) s.t. $\displaystyle
c_{i}(\mathbf{a})\leq 0,\quad i=1,\ldots,m,$ $\displaystyle
c_{j}(\mathbf{a})=0,\quad j=1,\ldots,n,$
$\displaystyle(\mathbf{b}^{*})=arg\min_{\mathbf{b}}$ $\displaystyle
f(\mathbf{a},\mathbf{b})$ s.t. $\displaystyle c_{i}(\mathbf{b})\leq 0,\quad
i=1,\ldots,m,$ $\displaystyle c_{j}(\mathbf{b})=0,\quad j=1,\ldots,n.$

Once we achieve the partial optimum (where each sub-problem solver reaches a
local minimum), we can combine the Karush-Kuhn-Tucker (KKT) conditions [3]
from each sub-problem into the larger KKT conditions. These larger KKT
conditions are exactly the KKT conditions of the original
problem.$\hfill\square$

Hence, once the bi-convex optimization problem converges to the partial
optimum, we conclude that this solution converges to a local minimum of the
primal constrained problem.

###  0.B.2 Remark 2

Remark 2. In the absence of outliers and noise, each SDP sub-problem (_i.e_.,
Pose-Only SDP, Plane-Only SDP, and Rotation-Only SDP) converges to a global
minimum with zero duality gap. Moreover, even in the presence of a low noise
level, our algorithm maintains empirical global optimality.

To begin with, we define the primal QCQP as:

$\displaystyle\min_{\mathbf{x}\in\mathbb{R}^{n}}$
$\displaystyle\mathbf{x}^{\top}\mathbf{C}\mathbf{x}$ (Primal QCQP) s.t.
$\displaystyle\mathbf{x}^{\top}\mathbf{A}_{i}\mathbf{x}=b_{i},\quad
i=1,\ldots,m.$

The Lagrange dual of the primal QCQP can be derived as:

$\displaystyle\max_{\mathbf{y}\in\mathbb{R}^{m}}$
$\displaystyle\mathbf{b}^{\top}\mathbf{y}$ (Dual SDP) s.t.
$\displaystyle\mathbf{C}-\sum_{i=1}^{m}y_{i}\mathbf{A}_{i}\succeq 0.$

The dual of the Lagrange dual of the primal QCQP can be derived as:

$\displaystyle\min_{\mathbf{X}\in\mathcal{S}^{n}}$ $\displaystyle
trace(\mathbf{C}\mathbf{X})$ (Dual Dual SDP) s.t. $\displaystyle
trace(\mathbf{A}_{i}\mathbf{X})=b_{i},\quad i=1,\ldots,m,$
$\displaystyle\mathbf{X}\succeq\mathbf{0}.$

Based on Lemma 2.1 in [6], we define the following lemmas:

Lemma 2. Let
$\mathcal{H}(\mathbf{y})=\mathbf{C}-\sum_{i=1}^{m}y_{i}\mathbf{A}_{i}$.
$\mathbf{x}$ is proven to be optimal for Primal QCQP, and strong duality holds
between Primal QCQP and Dual SDP if
$\mathbf{x}\in\mathbb{R}^{n},\mathbf{y}\in\mathbb{R}^{m}$ satisfy:

$\left\\{\begin{matrix}\mathbf{x}^{\top}\mathbf{A}_{i}\mathbf{x}=b_{i},\quad
i=1,\ldots,m&(\text{Primal Feasibility})\\\ \mathcal{H}(\mathbf{y})\succeq
0&(\text{Dual Feasibility})\\\
\mathcal{H}(\mathbf{y})\mathbf{x}=0&(\text{Stationary
Condition})\end{matrix}\right.$ (12)

Lemma 3. In addition to Lemma 2, if $\mathcal{H}(\mathbf{y})$ has corank one,
then $\mathbf{x}\mathbf{x}^{\top}$ is the unique optimum of Dual Dual SDP, and
$\mathbf{x}$ is the unique optimum of Dual SDP.

Based on these two lemmas, we can prove the strong duality of our methods.

Theorem 1. The duality gap of Pose-Only SDP is zero under the noise-free and
outlier-free condition.

Proof. Let $\mathbf{x}_{i}^{*}$ be the ground truth solution, and let the
corresponding Lagrange multipliers $\mathbf{y}_{i}$ reduce to 0. Then
$\mathcal{H}_{i}(\mathbf{y}_{i})=\mathcal{C}(i)$. The primal feasibility is
always satisfied. For the dual feasibility, it is straightforward to show
that:

$\displaystyle
0=\mathbf{x}_{i}^{*\top}\mathcal{H}_{i}(\mathbf{y}_{i})\mathbf{x}_{i}^{*}\leq\mathbf{x}_{i}^{\top}\mathcal{H}_{i}(\mathbf{y}_{i})\mathbf{x}_{i}$
(13)
$\displaystyle\forall\mathbf{x}_{i}\in\\{\mathbf{x}|\mathbf{x}^{\top}\mathbf{A}_{i}\mathbf{x}=b_{i}\\}.$

which guarantees the dual feasibility condition. For the stationary condition,
we can perform Cholesky decomposition as
$\mathcal{H}_{i}(\mathbf{y}_{i})=\mathbf{L}_{i}\mathbf{L}_{i}^{\top}$. Since
$\mathbf{L}_{i}^{\top}\mathbf{x}_{i}=0$, then
$\mathcal{H}_{i}(\mathbf{y}_{i})\mathbf{x}_{i}=\mathbf{L}_{i}\mathbf{L}^{\top}_{i}\mathbf{x}_{i}=0$,
satisfying the stationary condition. Finally, given the plane correspondence,
the ground truth rigid transformation
$\mathbf{x}^{*}_{i}\mathbf{x}^{\top*}_{i}$ is the unique non-zero solution
that satisfies
$trace(\mathcal{H}_{i}(\mathbf{y}_{i})\mathbf{x}_{i}\mathbf{x}_{i}^{\top})=0$
up to scale. We can conclude that $\mathcal{H}_{i}(\mathbf{y}_{i})$ is corank
one, and thus proving Theorem 1. $\hfill\square$

Theorem 2. The duality gap of Plane-Only SDP is zero under the noise-free and
outlier-free condition.

Proof. Let $\mathbf{b}_{j}^{*}$ be the ground truth solution, and let the
corresponding Lagrange multipliers $\mathbf{y}_{j}$ reduce to 0. Then
$\mathcal{H}_{j}(\mathbf{y}_{j})=\mathcal{D}(j)$. The primal feasibility is
always satisfied. For the dual feasibility, it is straightforward to show
that:

$\displaystyle
0=\mathbf{b}^{*\top}_{j}\mathcal{H}_{j}(\mathbf{y}_{j})\mathbf{b}^{*}_{j}\leq\mathbf{b}^{\top}_{j}\mathcal{H}_{j}(\mathbf{y}_{j})\mathbf{b}_{j}$
(14)
$\displaystyle\forall\mathbf{b}_{j}\in\\{\mathbf{x}|\mathbf{x}^{\top}\mathbf{A}_{i}\mathbf{x}=b_{i}\\}.$

which guarantees the dual feasibility condition. For the stationary condition,
we can perform Cholesky decomposition as
$\mathcal{H}_{j}(\mathbf{y}_{j})=\mathbf{L}_{j}\mathbf{L}_{j}^{\top}$. As
$\mathbf{L}_{j}^{\top}\mathbf{b}_{j}=0$, then
$\mathcal{H}_{j}(\mathbf{y}_{j})\mathbf{b}_{j}=\mathbf{L}_{j}\mathbf{L}^{\top}_{j}\mathbf{b}_{j}=0$,
satisfying the stationary condition. Finally, given the pose correspondence,
the ground truth plane $\mathbf{b}^{*}_{j}\mathbf{b}^{\top*}_{j}$ is the
unique non-zero solution that satisfies
$trace(\mathcal{H}_{j}(\mathbf{y}_{j})\mathbf{b}_{j}\mathbf{b}_{j}^{\top})=0$
up to scale. We can conclude that $\mathcal{H}_{j}(\mathbf{y}_{j})$ is corank
one, thus proving Theorem 2. $\hfill\square$

Theorem 3. The duality gap of Rotation-Only SDP is zero under the noise-free
and outlier-free condition.

Proof. Let $\mathbf{q}^{*}$ be the ground truth solution, and set the
corresponding Lagrange multipliers $\mathbf{y}$ to -2. Then
$\mathcal{H}(\mathbf{y})=\mathbf{M}+2\mathbf{I}$. The primal feasibility is
always satisfied. For the dual feasibility, it is straightforward to show
that:

$\displaystyle
0=\mathbf{q}^{*\top}(\mathbf{M}+2\mathbf{I})\mathbf{q}^{*}\leq\mathbf{x}^{\top}(\mathbf{M}+2\mathbf{I})\mathbf{x}$
(15)
$\displaystyle\forall\mathbf{x}\in\\{\mathbf{x}|\mathbf{x}^{\top}\mathbf{A}_{i}\mathbf{x}=b_{i}\\}$

which also verifies the stationary condition. As $\mathbf{q}^{*}$ denotes the
unique non-zero solution of
$\mathbf{q}^{\top}(\mathbf{M}+2\mathbf{I})\mathbf{q}=0$ up to scale, we can
conclude that $\mathcal{H}(\mathbf{y})$ is corank one, thus proving Theorem 3.
$\hfill\square$

###  0.B.3 Remark 3

Remark 3. Although our original problem is non-convex, experimental results
demonstrate that our algorithm achieves empirical global optimality. While
this global optimality is empirical, further analysis can be conducted through
other means, which is beyond the scope of this paper.

In general, when the original problem is convex, utilizing the alternating
minimization ensures global convergence. However, for the plane adjustment
problem, the non-convex nature of the original problem prevents our algorithms
from guaranteeing convergence to the global minimum. Nevertheless, our
proposed algorithms exhibit several advantages:

  * •

By transforming the sub-problem into a convex SDP problem, the convergence
region is significantly enlarged, especially when utilizing alternating
minimization.

  * •

In specific scenarios, particularly under fully observed scenarios where each
plane is observed by every LiDAR frame, our algorithm demonstrates global
optimality, empirically validated in Sec. 0.C.2.

###  0.B.4 Remark 4

Remark 4. The overlap between planes and poses is a critical factor for our
algorithm. Problems with a larger overlap result in a more stable and
efficient optimization convergence process. From a practical perspective, a
larger overlap is preferred.

As shown in Sec. 0.C.6, the computational time increases from 3s to 10s as the
overlap ratio decreases from 100% to 20% while achieving consistent accuracy.
This confirms our remark that a small overlap ratio may cause vibration in the
convergence process.

###  0.B.5 Remark 5

Remark 5. The time complexity of the proposed GlobalPointer is linear with
respect to the number of planes and poses. The time complexity of the proposed
GlobalPointer++ is linear when the number of planes and poses is small, and
quadratic when both are extremely large.

For GlobalPointer, assuming a total of $I$ iterations with $m$ poses and $n$
planes, where the optimization time of each single SDP is fixed, the total SDP
optimization time complexity for pose-only and plane-only optimization is
$\mathcal{O}(Im)$ and $\mathcal{O}(In)$, respectively. The accumulation of
$\mathcal{B}(i,j)$ is performed once before optimization, which can be
considered negligible. Assuming a fixed calculation time for
$(\mathbf{b}_{j}\mathbf{b}_{j}^{\top})\otimes\mathcal{B}(i,j)$ and
$\mathbf{T}_{i}\mathcal{B}(i,j)\mathbf{T}_{i}^{\top}$, the time complexity for
data preparation is $\mathcal{O}(Imn)$. Furthermore, since the SDP
optimization time is several orders of magnitude longer than the data
preparation time, the total computational time complexity is
$\mathcal{O}(Imn+Im+In)\approx\mathcal{O}(Im+In)$. Thus, we conclude that the
time complexity of GlobalPointer is linear with respect to the number of poses
and planes.

For GlpbalPointer++, assuming a total of $I$ iterations with $m$ poses and $n$
planes, the time complexity for global normal direction calibration is
$\mathcal{O}(mn^{2})$. The pose-only and plane-only closed-form solvers have
fixed calculation time per pose or plane, resulting in time complexities of
$\mathcal{O}(Im)$ and $\mathcal{O}(In)$, respectively. Similar to
GlobalPointer, the time complexity for data preparation remains
$\mathcal{O}(Imn)$. Thus, the total computational time complexity is
$\mathcal{O}(Imn+Im+In)$. When $mn$ is not excessively large, the dominant
time complexity of GlobalPointer++ is linear with respect to the number of
poses and planes. However, as $mn$ increases, the quadratic increase in data
preparation time makes GlobalPointer++ quadratic with respect to the number of
poses and planes. Despite this quadratic complexity, the absolute computation
time does not become significantly large.

##  Appendix 0.C Supplementary Experiment

In this section, we present additional experimental results on Global
Optimality Analysis 0.C.2, Synthetic Data Analysis 0.C.3, Real Data Analysis
0.C.4, Absolute Time Analysis 0.C.5, and Overlap Analysis 0.C.6.

###  0.C.1 Evaluation Metrics

Given the estimated rotation $\mathbf{R}$, translation $\mathbf{t}$, normal
vector $\mathbf{n}$, and $d$ (where $d=-\mathbf{n}^{\top}\mathbf{q}$ as
introduced in the point-to-plane error), we define the following metrics as:

$\left\\{\begin{array}[]{rcl}e_{total}=(\mathbf{n}^{\top}(\mathbf{R}\mathbf{P}+\mathbf{t})+d)^{2}\\\
e_{R}=arccos(({trace(\mathbf{R}_{g}^{\top}\mathbf{R})-1})/{2})^{2}\\\
e_{t}=||\mathbf{t}-\mathbf{t}_{g}||^{2}_{2}\\\
e_{n}=||abs(\mathbf{n})-abs(\mathbf{n}_{g})||^{2}_{2}\\\
e_{d}=||abs(d)-abs(d_{g})||^{2}_{2}\end{array}\right.$ (16)

where $[.]_{g}$ denotes the ground truth.

###  0.C.2 Global Optimality Analysis

In this section, we validate the global convergence performance of
GlobalPointer, GlobalPointer++, pose-only GlobalPointer, and pose-only
GlobalPointer++. We conduct 200 independent trials under three different point
cloud noise levels with random initialization. As shown in Fig. 8,
GlobalPointer consistently maintains global convergence across varying noise
levels. In contrast, GlobalPointer++ achieves global convergence only when the
point cloud noise is small, as the plane adjustment with plane-to-plane error
relies on well-estimated local normal vectors. However, GlobalPointer++
converges with fewer iterations, demonstrating its efficiency. Similarly,
pose-only GlobalPointer consistently achieves global convergence, while pose-
only GlobalPointer++ achieves global convergence only under low point cloud
noise levels.

Figure 8: Global optimality analysis of our method under three point cloud
noise levels.

(a) Total error $e_{total}$

(b) Rotation error $e_{R}$

(c) Translation error $e_{t}$

(d) Normal vector error $e_{n}$

(e) $d$ error $e_{d}$

Figure 9: Global convergence analysis of our method on the synthetic dataset.

To further validate the global convergence of our proposed GlobalPointer, we
conduct multiple independent trials with random initialization in a synthetic
environment consisting of 10 planes and 10 LiDAR poses, fully observed. As
shown in Fig. 9, each column box represents a unique random setting. Under two
point cloud noise levels, we perform 9 random settings, and for each setting,
we run 1000 independent trials with random initialization. The experimental
results confirm that our method achieves global optimality even under a high
point cloud noise level (${\sigma}_{p}=0.1$).

###  0.C.3 Synthetic Data Analysis

We extensively compare our proposed algorithms with other methods in terms of
accuracy under varying levels of point cloud noise and pose initialization
noise. All statistics are computed over 50 independent trials. As shown in
Figs. 10, 11, 12, 13 and 14, GlobalPointer consistently converges to the
global optimum across all settings, while GlobalPointer++ is more sensitive to
point cloud noise. ESO [29] performs poorly due to unstable numerical
stability in Hessian matrix derivation, and other methods fail to converge to
the global minimum above a certain level of noise.

Figure 10: Total error $e_{total}$ comparisons on the synthetic data. The $y$
axis represents the total point-to-plane error $e_{total}$ in the log10 scale.
Figure 11: Rotation error $e_{R}$ comparisons on the synthetic data. The $y$
axis represents the total point-to-plane error $e_{total}$ in the log10 scale.
Figure 12: Translation error $e_{t}$ comparisons on the synthetic data. The
$y$ axis represents the total point-to-plane error $e_{total}$ in the log10
scale. Figure 13: Normal vector error $e_{n}$ comparisons on the synthetic
data. The $y$ axis represents the total point-to-plane error $e_{total}$ in
the log10 scale. Figure 14: $d$ error $e_{d}$ comparisons on the synthetic
data. The $y$ axis represents the total point-to-plane error $e_{total}$ in
the log10 scale.

###  0.C.4 Real Data Analysis

For real datasets, we select sequences from the Hilti dataset [13] with a
higher number of indoor planes. Initially, We transform the local point clouds
of each frame into the global coordinate system using ground truth poses.
Subsequently, we employ plane segmentation and fitting algorithms to extract
point clouds [32] associated with the same plane, with a RANSAC fitting
threshold of $0.01$. The segmentation results are shown in Fig. 15.
Furthermore, to align with our hypothesis that each plane should be observed
by as many LiDAR frames as possible, we randomly divide all point cloud frames
into 50 subsets and accumulate them into individual sub-cloud frames. All
statistics are computed over 50 independent trials. In Figs. 16, 17, 18, 19
and 20, we compare the accuracy of our algorithm with other methods. It is
evident that our proposed GlobalPointer consistently demonstrates global
convergence performance across all settings, while other methods require well-
initialized values to converge to the ground truth.

(a) Basement4 Sequence

(b) Basement1 Sequence

(c) RPG Sequence

(d) Basement1 Sequence

(e) RPG Sequence

Figure 15: Plane segmentation results of the real LiDAR dataset. Figure 16:
Total error $e_{total}$ comparisons on the real dataset. The $y$ axis
represents the total point-to-plane error $e_{total}$ in the log10 scale.
Figure 17: Rotation error $e_{R}$ comparisons on the real dataset. The $y$
axis represents the total point-to-plane error $e_{total}$ in the log10 scale.
Figure 18: Translation error $e_{t}$ comparisons on the real dataset. The $y$
axis represents the total point-to-plane error $e_{total}$ in the log10 scale.
Figure 19: Normal vector error $e_{n}$ comparisons on the real dataset. The
$y$ axis represents the total point-to-plane error $e_{total}$ in the log10
scale. Figure 20: $d$ error $e_{d}$ comparisons on the real dataset. The $y$
axis represents the total point-to-plane error $e_{total}$ in the log10 scale.

###  0.C.5 Absolute Time Analysis

We also evaluate the absolute time of our algorithms. Starting with 5 planes
and 5 poses, we incrementally increase the number of poses and planes. We
conduct 50 independent trials and use the median time as the metric.
Experimental results in Fig. 21 demonstrate that the second-order methods
BALM2 [16] and ESO-Full [29] exhibit superior efficiency, while our proposed
GlobalPointer++ achieves the highest efficiency. In contrast, the first-order
methods EF [9] and ESO-BFGS [29] show lower efficiency due to their slower
convergence rates. PA-Full [30] exhibits the worst efficiency because of its
cubic time complexity. PA-Decoupled [30], which also employs alternating
minimization, demonstrates time complexity similar to our method.

Figure 21: Absolute time comparisons. The $x$ axis represents the number of
planes and the $y$ axis represents the number of poses. The color bar on the
right side of each subplot indicates the mapping relationship between the
multiplier of runtime growth and the colors.

###  0.C.6 Overlap Analysis

As highlighted in Remark 4, the overlap between planes and poses is a critical
factor for our algorithm’s performance. We conduct a study to evaluate the
impact of this factor on the accuracy and efficiency of our algorithm. The
evaluation is performed by decreasing the overlap ratio from 100% to 20% in a
synthetic environment comprising 100 planes and 100 LiDAR poses. Random
initialization and varying degrees of random overlap are employed for each
experiment. All statistics are computed over 100 independent trials. As shown
in Fig. 22, our method achieves consistent accuracy across different overlap
levels, while requiring more time to converge as overlap decreases.

Figure 22: Illustration of the point-to-plane error (left) and time (right)
with the decreasing overlap ratio given the random poses and planes.

## References

  * [1] Anstreicher, K.M.: On convex relaxations for quadratically constrained quadratic programming. Mathematical programming 136(2), 233–251 (2012). https://doi.org/10.1007/s10107-012-0602-3
  * [2] ApS, M.: Mosek optimization toolbox for matlab. User’s Guide and Reference Manual, Version 4(1) (2019)
  * [3] Boyd, S., Vandenberghe, L. (eds.): Convex Optimization. Cambridge University Press (2004). https://doi.org/10.1017/CBO9780511804441
  * [4] Briales, J., Gonzalez-Jimenez, J.: Convex global 3d registration with lagrangian duality. In: CVPR. pp. 4960–4969 (2017). https://doi.org/10.1109/CVPR.2017.595
  * [5] Chen, Y., Zhao, J., Kneip, L.: Hybrid rotation averaging: A fast and robust rotation averaging approach. In: CVPR. pp. 10353–10362 (2021). https://doi.org/10.1109/CVPR46437.2021.01022
  * [6] Cifuentes, D., Agarwal, S., Parrilo, P.A., Thomas, R.R.: On the local stability of semidefinite relaxations. Mathematical Programming 193(3), 629––663 (2022). https://doi.org/10.1007/s10107-021-01696-1
  * [7] Dellaert, F., Rosen, D.M., Wu, J., Mahony, R., Carlone, L.: Shonan rotation averaging: Global optimality by surfing $so(p)^{n}$. In: ECCV. pp. 292–308 (2020). https://doi.org/10.1007/978-3-030-58539-6_18
  * [8] Eriksson, A., Olsson, C., Kahl, F., Chin, T.J.: Rotation averaging and strong duality. In: CVPR. pp. 127–135 (2018). https://doi.org/10.1109/CVPR.2018.00021
  * [9] Ferrer, G.: Eigen-factors: Plane estimation for multi-frame and time-continuous point cloud alignment. In: IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). pp. 1278–1284 (2019). https://doi.org/10.1109/IROS40897.2019.8967573
  * [10] Ferrer, G., Iarosh, D., Kornilova, A.: Eigen-factors an alternating optimization for back-end plane slam of 3d point clouds. arXiv preprint arXiv:2304.01055 (2023). https://doi.org/10.21203/rs.3.rs-4601229/v1
  * [11] Gorski, J., Pfeuffer, F., Klamroth, K.: Biconvex sets and optimization with biconvex functions: a survey and extensions. Mathematical methods of operations research 66(3), 373–407 (2007). https://doi.org/10.1007/s00186-007-0161-1
  * [12] Härenstam-Nielsen, L., Zeller, N., Cremers, D.: Semidefinite relaxations for robust multiview triangulation. In: CVPR. pp. 749–757 (2023). https://doi.org/10.1109/CVPR52729.2023.00079
  * [13] Helmberger, M., Morin, K., Berner, B., Kumar, N., Cioffi, G., Scaramuzza, D.: The hilti slam challenge dataset. IEEE Robotics and Automation Letters 7(3), 7518–7525 (2022). https://doi.org/10.1109/LRA.2022.3183759
  * [14] Hsiao, M., Westman, E., Zhang, G., Kaess, M.: Keyframe-based dense planar slam. In: IEEE International Conference on Robotics and Automation (ICRA). pp. 5110–5117 (2017). https://doi.org/10.1109/ICRA.2017.7989597
  * [15] Kaess, M.: Simultaneous localization and mapping with infinite planes. In: IEEE International Conference on Robotics and Automation (ICRA). pp. 4605–4611 (2015). https://doi.org/10.1109/ICRA.2015.7139837
  * [16] Liu, Z., Liu, X., Zhang, F.: Efficient and consistent bundle adjustment on lidar point clouds. IEEE Transactions on Robotics 39(6), 4366–4386 (2023). https://doi.org/10.1109/TRO.2023.3311671
  * [17] Liu, Z., Zhang, F.: Balm: Bundle adjustment for lidar mapping. IEEE Robotics and Automation Letters 6(2), 3184–3191 (2021). https://doi.org/10.1109/LRA.2021.3062815
  * [18] Parra, A., Chng, S.F., Chin, T.J., Eriksson, A., Reid, I.: Rotation coordinate descent for fast globally optimal rotation averaging. In: CVPR. pp. 4296–4305 (2021). https://doi.org/10.1109/CVPR46437.2021.00428
  * [19] Rosen, D.M., Carlone, L., Bandeira, A.S., Leonard, J.J.: Se-sync: A certifiably correct algorithm for synchronization over the special euclidean group. The International Journal of Robotics Research 38(2-3), 95–125 (2019). https://doi.org/10.1177/0278364918784361
  * [20] Segal, A., Haehnel, D., Thrun, S.: Generalized-icp. In: Robotics: science and systems. p. 435 (2009). https://doi.org/10.15607/RSS.2009.V.021
  * [21] Shan, T., Englot, B.: Lego-loam: Lightweight and ground-optimized lidar odometry and mapping on variable terrain. In: IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). pp. 4758–4765 (2018). https://doi.org/10.1109/IROS.2018.8594299
  * [22] Triggs, B., McLauchlan, P.F., Hartley, R.I., Fitzgibbon, A.W.: Bundle adjustment — a modern synthesis. In: Vision Algorithms: Theory and Practice: International Workshop on Vision Algorithms Corfu, Greece, September 21–22, 1999 Proceedings. pp. 298–372. Springer (1999). https://doi.org/10.1007/3-540-44480-7_21
  * [23] Wang, Y., Yang, J., Yin, W., Zhang, Y.: A new alternating minimization algorithm for total variation image reconstruction. SIAM Journal on Imaging Sciences 1(3), 248–272 (2008). https://doi.org/10.1137/080724265
  * [24] Wolkowicz, H., Saigal, R., Vandenberghe, L. (eds.): Handbook of semidefinite programming: theory, algorithms, and applications. Springer (2000). https://doi.org/10.1007/978-1-4615-4381-7
  * [25] Yang, H., Shi, J., Carlone, L.: Teaser: Fast and certifiable point cloud registration. IEEE Transactions on Robotics 37(2), 314–333 (2020). https://doi.org/10.1109/TRO.2020.3033695
  * [26] Zhang, G., Larsson, V., Barath, D.: Revisiting rotation averaging: Uncertainties and robust losses. In: CVPR. pp. 17215–17224 (2023). https://doi.org/10.1109/CVPR52729.2023.01651
  * [27] Zhang, J., Singh, S.: Loam: Lidar odometry and mapping in real-time. In: Robotics: Science and systems. pp. 1–9 (2014). https://doi.org/10.15607/RSS.2014.X.007
  * [28] Zhao, J.: An efficient solution to non-minimal case essential matrix estimation. IEEE TPAMI 44(4), 1777–1792 (2020). https://doi.org/10.1109/TPAMI.2020.3030161
  * [29] Zhou, L.: Efficient second-order plane adjustment. In: CVPR. pp. 13113–13121 (2023). https://doi.org/10.1109/CVPR52729.2023.01260
  * [30] Zhou, L., Koppel, D., Ju, H., Steinbruecker, F., Kaess, M.: An efficient planar bundle adjustment algorithm. In: IEEE International Symposium on Mixed and Augmented Reality (ISMAR). pp. 136–145 (2020). https://doi.org/10.1109/ISMAR50242.2020.00035
  * [31] Zhou, L., Wang, S., Kaess, M.: $\pi$-lsam: Lidar smoothing and mapping with planes. In: IEEE International Conference on Robotics and Automation (ICRA). pp. 5751–5757 (2021). https://doi.org/10.1109/ICRA48506.2021.9561933
  * [32] Zhou, Q.Y., Park, J., Koltun, V.: Open3d: A modern library for 3d data processing. arXiv preprint arXiv:1801.09847 (2018)