---
title: 'MARSCalib: Multi-domain Calibration Methods'
url: https://www.emergentmind.com/topics/marscalib
type: topic
---

# MARSCalib: Multi-domain Calibration Methods

Searching arXiv for the papers associated with “MARSCalib” and related usages.
MARSCalib is a name that has been used for multiple calibration procedures in different research domains. In the literature represented here, it refers to: a 2015 algorithm for the simultaneous calibration of a magnetometer and an accelerometer from sensor readings alone; a 2025 spherical target-based LiDAR-camera extrinsic calibration method for multi-robot operation in field and extraterrestrial environments; and a 2025 MAROON-X pipeline for calibrating run-to-run radial-velocity zero-point offsets through an ensemble analysis of stars [1505.05057] [2507.17130] [2502.15074].

## 1. Scope of the term

The shared label does not denote a single canonical framework. Instead, it denotes distinct calibration systems whose commonality is procedural rather than domain-specific: each estimates latent calibration quantities from structured observations, but the latent quantities, statistical assumptions, and optimization variables differ substantially.

| Usage | Calibration problem | Principal output |
|---|---|---|
| “Magnetometer And accelerometer Simultaneous Calibration” | simultaneously calibrate a magnetometer and an accelerometer without any information besides the sensors readings | biases, gains, covariances, sensor orientations, and Earth’s fields |
| “MARSCalib: Multi-robot, Automatic, Robust, Spherical Target-based Extrinsic Calibration in Field and Extraterrestrial Environments” | LiDAR-camera extrinsic calibration for outdoor environments with multi-robot systems, considering both target and sensor corruption | rigid-body transform $T_L^C \in SE(3)$ |
| MARSCalib pipeline for MAROON-X | remove month-to-month and year-to-year zero-point jumps in MAROON-X radial velocities | per-run offsets $\delta v_k$ |

A common misconception would be to treat these usages as successive versions of one method. The record represented here does not support that interpretation. The three systems address different observables: raw inertial and magnetic sensor vectors, synchronized image-pointcloud data, and differential stellar radial velocities.

## 2. Simultaneous magnetometer-accelerometer calibration

In “Efficient Simultaneous Calibration of a Magnetometer and an Accelerometer,” MARSCalib denotes a maximum-likelihood procedure built on a linear sensor model with affine distortions and Gaussian noise [1505.05057]. For each sensor $s\in\{a,m\}$, the measurement model is
$$
y_s = K_s R v_s^\hat + b_s + \eta_s,\qquad \eta_s\sim\mathcal{N}(0,\Sigma_s),
$$
where $y_s\in\mathbb{R}^3$ is the raw reading, $K_s\in\mathbb{R}^{3\times 3}$ is the full gain matrix, $R\in SO(3)$ is the instantaneous rotation, $v_s^\hat$ is the Earth field in the inertial frame, $b_s\in\mathbb{R}^3$ is the additive bias, and $\Sigma_s\succ 0$ is the sensor-noise covariance. The inertial-frame reference fields are chosen as gravity $g=[0,0,g_z]^T$ with $g_z<0$ and magnetic field $h=[h_x,0,h_z]^T$ with $h_x>0$.

The formulation exploits repeated “static” measurements. If $N$ sets of static samples are collected and $\hat\mu_s[i]$ denotes the sample mean for set $i$, then
$$
\hat \mu_s[i] \approx K_s R_i v_s^\hat + b_s,
$$
with $\operatorname{Var}[\hat\mu_s[i]]=\Sigma_s/\Delta_s[i]$, where $\Delta_s[i]$ is the number of samples in the set. This reduces the raw-data likelihood to a weighted cost over set means. The negative log-likelihood is written, up to constants, as
$$
J(\Theta)=\sum_{s\in\{a,m\}}\sum_{i=1}^N\sum_{j=1}^{\Delta_s[i]}
\Bigl\{\ln\det(\Sigma_s)+\tilde v_s[i,j]^\top \Sigma_s^{-1}\tilde v_s[i,j]\Bigr\},
$$
where $\tilde v_s[i,j]=K_sR_iv_s^\hat+b_s-y_s[i,j]$. In practice, the reduced cost
$$
J'(\Theta')=\sum_{s\in\{a,m\}}\sum_{i=1}^N
\Delta_s[i]\,
(K_sR_iv_s^\hat+b_s-\hat\mu_s[i])^\top
\hat\Sigma_s^{-1}(\cdot)
$$
is used, with $\hat\Sigma_s$ taken from the sample covariance estimate.

The parameter vector is
$$
\Theta=\{\Sigma_a,K_a,b_a,g_z,\Sigma_m,K_m,b_m,h_x,h_z,R_1,\ldots,R_N\}.
$$
After scale fixing, $g_z\coloneqq -1$ and $h_x\coloneqq +1$, so only $h_z$ remains free among field norms. This removal of scale ambiguity is central to the method’s identifiability.

## 3. Initialization, optimization structure, and reported performance

The 2015 MARSCalib procedure is implementation-oriented and begins with preprocessing: sample means
$$
\hat\mu_s[i]=\tfrac{1}{\Delta_s[i]}\sum_j y_s[i,j]
$$
and unbiased sample covariances
$$
\hat\Sigma_s=
\frac{1}{\sum_i\Delta_s[i]-N}
\sum_{i,j}(y_s[i,j]-\hat\mu_s[i])(\cdot)^\top
$$
are computed [1505.05057]. The gains and biases are then initialized by an ellipsoid fit adapted from Kok2012. The fit approximately solves
$$
\|\hat\mu_s[i]-b_s\|^2_{(K_sK_s^T)^{-1}}=1
$$
through the linearized construction
$$
J_i=\bigl[\hat\mu_s[i]\otimes\hat\mu_s[i],\;\hat\mu_s[i],\;1\bigr],\qquad
J\eta\approx 0,
$$
taking $\eta$ as the right singular vector of $J$ with smallest singular value. From $\eta$, one recovers
$$
A=K_s^{-T}K_s^{-1},\qquad b=-2Ab_s,\qquad c=b_s^TA b_s-1,
$$
followed by the closed-form scaling
$$
\hat b_s=-\tfrac12A^{-1}b,\qquad
A=\alpha\hat A,\qquad
\alpha=\bigl(\tfrac14\hat b^T\hat A^{-1}\hat b-\hat c\bigr)^{-1}.
$$
A Cholesky factorization on $\alpha A$ yields an upper-triangular $\tilde K_s$.

A joint estimate of the magnetometer-to-accelerometer frame rotation and the magnetic vertical component is then obtained. Using
$$
z_a[i]=\tilde K_a^{-1}(\hat\mu_a[i]-\hat b_a)
$$
and the analogous $z_m[i]$, the method solves
$$
\min_{R\in SO(3),\,h_z}
\frac12\sum_{i=1}^N(\Delta_a[i]+\Delta_m[i])
\bigl\|\,h_z+z_a[i]^TR^Tz_m[i]\bigr\|^2.
$$
The paper describes this as a 4-D search, carried out by multiple random restarts and a small-scale gradient descent. For each static set, an initial $R_i$ is then obtained from the smallest-eigenvalue eigenvector of a $4\times 4$ quaternion-cost matrix $B_i$.

Refinement proceeds by block-coordinate optimization until convergence according to $|J_{k-1}-J_k|<\gamma$. The blocks are: the orientations $\{R_i\}$; the biases and field components $\{b_s,g_z,h_z\}$; the gains $\{K_a,K_m\}$; and the covariances $\{\Sigma_a,\Sigma_m\}$. Orientation updates use a two-stage strategy: first the eigenvector approximation is accepted as long as it decreases $J'$, and then standard gradient descent on the quaternion manifold is used. Biases and field components are updated by generalized least squares,
$$
y=X\beta+\epsilon,\qquad
\hat\beta=(X^T\Omega^{-1}X)^{-1}X^T\Omega^{-1}y,
$$
while the gains are estimated through a GLS solve on $\mathrm{vec}(K_s)$. Covariances are re-estimated at each iteration by the maximum-likelihood expression without Bessel correction,
$$
\Sigma_s=\frac{1}{\sum_i\Delta_s[i]}
\sum_{i,j}\bigl(y_s[i,j]-(K_sR_iv_s^\hat+b_s)\bigr)(\cdot)^T.
$$

The reported evaluation uses Monte Carlo simulations with $N=15$ static orientations, $\Delta_s[i]\in[400,600]$, and 100 runs. Four algorithmic variants are compared: NCDR, NCAR, FCAR, and DCAR. Accuracy is summarized by the Mahalanobis-normalized RMS error
$$
\delta_s=\sqrt{
\frac{\sum_i\Delta[i](\mu_s[i]-\breve\mu_s[i])^T\Sigma_s^{-1}(\cdot)}
{\sum_i\Delta[i]}
}.
$$
The key findings are that NCAR is fastest, at approximately $0.1$–$0.3\,\mathrm{s}$, and most robust; at least $75\%$ of runs achieve $\delta<0.1\,\sigma$ for both sensors, including unseen test sets; error plateaus for $N>20$; a stop threshold $\gamma=10^{-4}$ balances time versus precision; FCAR and DCAR give similar accuracy but are $5$–$10\times$ slower; and NCDR often stalls in local minima. On real data from a hand-held board inside a building, the paper reports visually tight fits of mean readings despite micro-vibrations and mild magnetic disturbances, with accelerometer residuals much smaller than $\sigma_a$ and magnetometer offsets below a few percent of full scale.

## 4. Spherical target-based LiDAR-camera extrinsic calibration

In the 2025 robotics and planetary-field context, MARSCalib denotes “Multi-robot, Automatic, Robust, Spherical Target-based Extrinsic Calibration in Field and Extraterrestrial Environments,” a fully automatic extrinsic calibration pipeline based on a small spherical target of radius $0.10\,\mathrm{m}$ [2507.17130]. One robot carries the target and remains stationary, while the calibrating robot keeps its LiDAR and camera fixed and sweeps the target through its field of view. Camera frames and LiDAR scans are time-synchronized and collected over several seconds.

The camera pipeline consists of the Segment Anything Model (SAM), a Canny edge detector, ellipse extraction, center compensation for perspective-projection distortion, and output of corrected 2D ellipse centers $\{p_k^C\}$. Ellipse extraction is divided into Initial Ellipse Detection, Ellipse Evaluation, and Ellipse Rectification. Initial detection randomly samples 5–10 edge points and fits an ellipse by direct least squares on small point sets. Evaluation bins the angular locations of in-ellipse points into a histogram and accepts the ellipse if the histogram is roughly uniform. If the histogram is non-uniform, the procedure identifies concentrated sectors, selects representative points, adds one point from the unused edge set, and re-fits an ellipse; if a large fraction of the original edge set lies outside the candidate ellipse, the candidate is rejected.

A distinctive feature is the perspective-projection compensation. Even for a perfect sphere, the fitted ellipse center $H$ is offset from the true image-plane projection $C$ of the 3D sphere center. With $O$ denoting the image center, $OF$ the distance from $O$ to the foot of the perpendicular to the major axis, and $OG$ half the major-axis length, the shift $\epsilon=|H-C|$ is defined by two cases:
$$
\epsilon=
\begin{cases}
OG+HG-OC, & \text{if } O \text{ lies outside the ellipse},\\
OH-OC, & \text{if } O \text{ lies inside the ellipse},
\end{cases}
$$
with
$$
OC=
\begin{cases}
f\cdot\tan\!\left[\tfrac12\bigl(\arctan(OF/f)+\arctan(OG/f)\bigr)\right], & \text{if } O \text{ lies outside the ellipse},\\
f\cdot\tan\!\left[\tfrac12\bigl(\arctan(OF/f)-\arctan(OG/f)\bigr)\right], & \text{if } O \text{ lies inside the ellipse}.
\end{cases}
$$
The algorithm then shifts $H$ toward $O$ by $\epsilon$ along the line $OH$.

The LiDAR pipeline begins with Statistical Outlier Removal (SOR) and ground-plane segmentation. The remaining points are projected into image space, and a Hough circle detector crops the approximate spherical region. For spinning and solid-state LiDAR, points returning from nominally the same surface location are clustered along each laser ray; clusters longer than $\lambda_l$ are removed. Each remaining cluster is subdivided into $M$ equal cells, and the representative point is
$$
p_r=\frac{1}{M}\sum_{i=1}^M n_i\cdot c_i,
$$
where $n_i$ is the number of points in cell $i$ and $c_i$ its centroid. For non-repetitive LiDAR, the accumulated cloud is voxel-downsampled and voxel centroids are used as representative points.

Sphere fitting enumerates quadruplets of representative points. Each quadruplet defines a candidate sphere through
$$
x^2+y^2+z^2=Ax+By+Cz+D,
$$
estimated by linear least squares,
$$
\hat p=(X^TX)^{-1}X^Tf.
$$
The candidate center is $c=[A/2,B/2,C/2]^T$ and the radius is
$$
r=\sqrt{(A^2+B^2+C^2)/4 + D}.
$$
Only candidates with $|r-r_{\mathrm{true}}|<\delta_r$ are retained, and the final 3D center is a normalized frequency-weighted sum of surviving centers. Extrinsic estimation then solves
$$
\hat T_L^C=\arg\min_{T\in SE(3)}\sum_{k=1}^N \rho\!\left(\|\pi(T\cdot p_k^L)-p_k^C\|^2\right),
$$
with Levenberg-Marquardt and a robust kernel, followed by post-outlier removal and a repeated solve if necessary.

The reported experiments compare the spherical target with AprilTag and CopperTag under three contamination levels and rotations from $0^\circ$ to $60^\circ$. AprilTag detection frequently failed, with $0$–$2/6$ successes; CopperTag achieved $4$–$5/6$ under blur and performed poorly under mud; the sphere achieved $6/6$ in all cases. On a construction field, across three LiDAR types and three camera mounts, the reported average errors over 10 scenes per configuration were approximately $0.018$–$0.039\,\mathrm{m}$ translation, $0.157$–$0.587^\circ$ rotation, and $0.99$–$2.14\,\mathrm{px}$ reprojection for Ouster OS1-32; $0.016$–$0.026\,\mathrm{m}$ translation, $0.417$–$0.492^\circ$ rotation, and $1.79$–$2.14\,\mathrm{px}$ reprojection for SOSLAB ML-X 120; and $0.018$–$0.030\,\mathrm{m}$ translation, $0.157$–$0.587^\circ$ rotation, and $1.56$–$1.64\,\mathrm{px}$ reprojection for Livox MID-360. Under physical damage to the sphere—extreme soil contamination, $25\%$ truncation, and scratching—the average errors over 8 scenes with three LiDARs and two cameras were reported as $0.0308\,\mathrm{m}$ translation and $1.462^\circ$ rotation.

## 5. MAROON-X ensemble calibration of run offsets

In the MAROON-X precision radial-velocity context, the MARSCalib pipeline is designed to remove month-to-month and year-to-year zero-point jumps by solving for a self-consistent set of per-run offsets $\delta v$ using an ensemble of well-behaved stars [2502.15074]. MAROON-X uses a temperature- and pressure-stabilized Fabry-Pérot etalon illuminated by a supercontinuum laser, which corrects night-to-night shifts at the few $10\,\mathrm{cm}\,\mathrm{s}^{-1}$ level, but the etalon itself drifts linearly by approximately $2.2\,\mathrm{cm}\,\mathrm{s}^{-1}\,\mathrm{day}^{-1}$, measured as $2.25\pm 0.01\,\mathrm{cm}\,\mathrm{s}^{-1}\,\mathrm{d}^{-1}$ in the Red channel and $2.186\pm 0.008\,\mathrm{cm}\,\mathrm{s}^{-1}\,\mathrm{d}^{-1}$ in the Blue. Prior to July 2023, MAROON-X operated in discrete campaign runs of 1–6 weeks, separated by days to months, and each run had its own instrument baseline because opto-mechanical perturbations changed the instrumental profile. The resulting run-to-run RV shifts can reach a few $\mathrm{m}\,\mathrm{s}^{-1}$ in serval template-matching RVs.

The drift model is
$$
v^{(\mathrm{obs})}_{ij}=v^{(\mathrm{model})}_i(t_{ij};\theta_i)+\delta v_{r_{ij}}+\epsilon_{ij},
$$
with $\epsilon_{ij}\sim N(0,\sigma_{ij}^2)$. The joint Gaussian log-likelihood for each star is
$$
\log \mathcal{L}_i(\theta_i,\{\delta v_k\})
= -\frac12\sum_{j=1}^{N_i}
\frac{\left[v^{(\mathrm{obs})}_{ij}-v^{(\mathrm{model})}_i(t_{ij};\theta_i)-\delta v_{r_{ij}}\right]^2}{\sigma_{ij}^2}
-\frac12\sum_{j=1}^{N_i}\log(2\pi\sigma_{ij}^2),
$$
and the total log-likelihood is $\log \mathcal{L}_{\mathrm{tot}}=\sum_i \log \mathcal{L}_i$. In practice, fitting proceeds in two steps. First, each star is modeled individually with $\delta v_k=0$. Second, the per-run residual offsets
$$
\delta v_{i,k}\equiv \operatorname{median}_{j\,|\,r_{ij}=k}
\left[v^{(\mathrm{obs})}_{ij}-v^{(\mathrm{model})}_i(t_{ij};\theta_i)\right]
$$
are combined into a single $\delta v_k$ for each run.

The ensemble-analysis algorithm begins with 11 stars selected because they are quiet, host known planetary systems with well-determined Keplerian signals, or exhibit stellar-activity signals that can be robustly modeled with Gaussian Processes or sinusoids. Cleaning and outlier rejection subtract the median RV of each run, clip points more than $4\sigma$ from each run’s median, remove points with $\sigma_{ij}>4\times$ the median uncertainty, and exclude epochs whose activity indicators deviate by more than $4\sigma$ from their median. Per-star RV modeling uses juliet with RadVel and dynesty. Keplerians are parameterized with $h=\sqrt{e}\sin\omega$ and $k=\sqrt{e}\cos\omega$ under uniform priors on $h,k\in[-1,1]$, or with $e\sim\mathrm{Beta}(1.52,29)$ for very low-mass planet modeling. Optional Quasi-Periodic, SHO, or Double-SHO kernels are implemented via celerite2 with physically motivated priors on $P_{\mathrm{rot}}$. No jitter term is used initially so that unmodeled noise and run-to-run drifts are absorbed into the $\delta v_{i,k}$; only if planetary parameters deviate strongly from the literature or the GP overfits is an independent per-channel jitter added.

To combine per-star offsets, Barnard’s star is chosen as a reference because it spans the most runs. The remaining stars are ordered by the number of runs they share with Barnard’s star. For each star, the average offset difference over common runs is computed, the star’s offsets are shifted by the negative of that average, and the reference offsets are updated as the mean of all stars included so far. After all 11 stars are folded in, the final reference offsets are adopted as the MAROON-X run offsets. Their uncertainties are estimated as
$$
\sigma_{\delta v,k}=\operatorname{std}_i\{\delta v_{i,k}\}/\sqrt{N_k-1},
$$
where $N_k$ is the number of stars observed in run $k$, and a floor of $0.5\,\mathrm{m}\,\mathrm{s}^{-1}$ is imposed; typical reported errors are $0.5$–$1.15\,\mathrm{m}\,\mathrm{s}^{-1}$.

Applied to HD 3651, described as a quiet G8V star with a $62.25\,\mathrm{d}$ Saturn-mass planet, 134 MAROON-X spectra over 29 months yield residuals of $\mathrm{RMS}_{\mathrm{Red}}=0.63\,\mathrm{m}\,\mathrm{s}^{-1}$ and $\mathrm{RMS}_{\mathrm{Blue}}=0.67\,\mathrm{m}\,\mathrm{s}^{-1}$ after calibrated offsets are used. Injection-recovery tests include a two-signal experiment in which a $1.0\,\mathrm{m}\,\mathrm{s}^{-1}$, $e=0.1$ Keplerian is injected at $P=9.5\,\mathrm{d}$ and separately at $28.5\,\mathrm{d}$, and a Monte Carlo completeness study with 10,000 injected planets over $P\in U[1,1000]\,\mathrm{d}$ and $K\in U[0,5]\,\mathrm{m}\,\mathrm{s}^{-1}$. At $P=10\,\mathrm{d}$ and $K=1\,\mathrm{m}\,\mathrm{s}^{-1}$, recovery rates are $80\%$ for Blue, $85\%$ for Red, and $88\%$ for combined data; at $P=100\,\mathrm{d}$ and $K=1\,\mathrm{m}\,\mathrm{s}^{-1}$, they are $63\%$, $78\%$, and $79\%$, respectively. The paper summarizes the result as sub-$\mathrm{m}\,\mathrm{s}^{-1}$ per-run zero-point stability over more than 1,000 days.

## 6. Distinctions, recurrent structure, and interpretive issues

Taken together, these three usages show that MARSCalib is not tied to one sensing modality, one statistical family, or one calibration target [1505.05057] [2507.17130] [2502.15074]. The 2015 method is an intrinsic calibration problem for two three-axis sensors under an affine-Gaussian model and static-pose grouping. The 2025 robotics method is an extrinsic calibration problem in which 2D ellipse centers and 3D sphere centers are paired and the transform is estimated in $SE(3)$. The MAROON-X pipeline is a temporal zero-point calibration problem in which per-run offsets are inferred from residual structure across an ensemble of stars.

The differences in observables entail different optimization architectures. The magnetometer-accelerometer method uses block-coordinate maximum-likelihood refinement with generalized least squares, quaternion updates, and covariance re-estimation. The LiDAR-camera method decomposes the problem into image segmentation, geometric fitting, perspective compensation, accumulated-pointcloud processing, and a robust-kernel Levenberg-Marquardt solve. The MAROON-X pipeline separates astrophysical model fitting from inter-run alignment and combines per-star residual offsets by an iterative reference-updating procedure.

A plausible implication is that bibliographic searches for “MARSCalib” require domain qualification. Without that qualification, the acronym conflates at least three unrelated calibration problems: inertial-magnetic intrinsic calibration, LiDAR-camera extrinsic calibration, and radial-velocity run-offset calibration. The term therefore functions more as a local project name than as a stable cross-domain method class.

Source: https://www.emergentmind.com/topics/marscalib