---
title: 'Inland-LOAM: LiDAR SLAM for Inland Waterways'
url: https://www.emergentmind.com/topics/inland-loam
type: topic
---

# Inland-LOAM: LiDAR SLAM for Inland Waterways

Searching arXiv for Inland-LOAM and related LOAM-family papers to ground citations.
I’ll verify the cited arXiv entries and ids for Inland-LOAM and closely related LOAM variants.
Inland-LOAM is a LiDAR-based SLAM and mapping framework tailored to inland waterways and uncrewed surface vehicles. It addresses two coupled deficiencies of conventional LiDAR SLAM in waterway environments: vertical drift caused by weak constraints along the water surface, and the production of dense but non-semantic maps that are poorly aligned with navigation-oriented products such as Inland Electronic Navigational Charts. The framework combines LiDAR-only odometry and mapping with a water surface planar constraint, a voxel-based semantic mapping pipeline, and automated extraction of shoreline and bridge structures into lightweight chart-compatible outputs [2508.03672].

## 1. Operational setting and design objectives

Inland-LOAM is situated in the context of Inland Waterway Transport, described as a 41,000 km network of rivers and canals linking major cities and ports in Europe. Within this setting, accurate and up-to-date geospatial information is required for navigation in narrow canals, ports, and under bridges, particularly because parameters such as bridge clearance depend directly on current water level rather than static chart annotations [2508.03672].

The framework is motivated by two limitations identified for existing systems. First, Inland Electronic Navigational Charts provide essential route, regulatory, and infrastructure data but are characterized as static, low-resolution, and outdated with respect to fine shoreline geometry, vegetation, small constructions, and bridge clearances. Second, conventional LiDAR SLAM is described as ill-suited to waterways because these environments often contain irregular shorelines, dense unstructured vegetation, few strong planar landmarks, and a water surface that yields poor constraints along the $z$ axis owing to specular reflections, partial absorption, and grazing-incidence effects. A stated consequence is long-term vertical drift and non-semantic point-cloud maps that cannot directly represent shoreline, bridge, or under-bridge navigational structure [2508.03672].

The system therefore targets four specific problems: robust LiDAR odometry on water without GNSS, feature extraction adapted to waterway geometry, structural semantic mapping from 3D point clouds into compact 2D navigation-oriented representations, and automated export of shorelines and bridge structures into a lightweight format intended to be compatible with IENC workflows [2508.03672]. This design places Inland-LOAM within the broader LOAM lineage, but with a domain-specific emphasis on water-surface stabilization and semantic abstraction rather than only geometric odometry. A plausible implication is that Inland-LOAM extends the usual LOAM concern with geometric consistency into chart-level situational awareness.

## 2. SLAM architecture and feature extraction

The framework takes as input point clouds from a 32-beam Robosense Helios-32 LiDAR operating at 10 Hz with 150 m range and 70° vertical field of view. IMU and GNSS are present on the platform, but the mapping and localization pipeline itself is LiDAR-only; GNSS is used only as external ground truth in evaluation. The outputs include pose estimates $T_k \in SE(3)$, a globally consistent 3D feature map, a 3D semantic voxel map, a 2D structural semantic map, real-time bridge-clearance estimates, and shoreline polylines and bridge polygons exported as JSON [2508.03672].

Preprocessing removes self-vessel points by a fixed bounding-box filter and organizes the remaining returns into a range image of size $32 \times 1800$. Inland-LOAM maintains an information structure with spatial coordinates, a water-surface indicator, and cluster labels. Water-surface segmentation is performed first by selecting candidate beams among lower scan lines and fitting a local plane with RANSAC,
$$
\mathbf{n}_s^T \mathbf{p} + d_s = 0,
$$
after which a point $\mathbf{p}_j$ is labeled as water when
$$
\left|\mathbf{n}_s^T \mathbf{p}_j + d_s\right| < \tau_s.
$$
Non-water points are then clustered in the range image through a BFS-based method adapted from Bogoslavskyi and Stachniss, with connectivity based on depth and angular differences and with clusters smaller than 30 points discarded as noise [2508.03672].

Feature extraction retains the LOAM convention of distinguishing edge and planar points but modifies the descriptor logic to emphasize roughness in richly vegetated banks. The paper states that traditional LOAM-like curvature can suppress small-scale roughness because positive and negative differences cancel. Inland-LOAM therefore augments curvature with a variance-based roughness measure. For a point $p_i$ with neighborhood
$$
\mathcal{M} = \{p_{i-n},\ldots,p_i,\ldots,p_{i+n}\},
$$
the curvature is defined as
$$
c_i = \left[\frac{1}{2n}\sum_{\tilde p\in\mathcal M}(p_i-\tilde p)\right]^2,
$$
the neighborhood mean as
$$
\bar{p}=\;\frac{1}{2n+1}\sum_{\tilde p\in\mathcal M}\tilde p,
$$
and the roughness as
$$
r_i=\;\frac{1}{2n+1}\sum_{\tilde p\in\mathcal M}(\tilde p - \bar{p})^2.
$$
The selection rule is then: if $c_i > \tau_1$ or $r_i > \tau_2$, the point is classified as edge; if $r_i < \tau_3$, it is classified as flat; otherwise it is not selected. The method additionally removes unstable points near depth discontinuities and applies non-maximum suppression to avoid redundant feature clusters [2508.03672].

Relative motion is estimated by a two-stage Levenberg-Marquardt procedure inspired by LeGO-LOAM. In the first stage, planar features are used to solve only for vertical translation and roll-pitch variables, exploiting horizontal planes, especially water, to constrain vertical orientation and position. In the second stage, with those variables fixed, edge features estimate horizontal translations and yaw. The mapping subsystem stores per-keyframe edge and planar feature sets together with the associated poses; scan-to-map registration uses feature sets lying within a radius of approximately 100 m of the current pose. Optimization is formulated in a factor graph using GTSAM and iSAM2, which accommodates odometry factors, loop-closure factors, and water-surface plane factors [2508.03672].

This structural arrangement differs from several recent LOAM-family variants. KDD-LOAM replaces handcrafted edge-plane logic with a learned tightly coupled detector-descriptor front end and a saliency-aware map [2309.15394], Generalized LOAM embeds learned local geometric features into GICP-style association and covariance shaping [2210.16510], and InTEn-LOAM incorporates geometric, intensity, and temporal characteristics through cylindrical-image features and temporal filtering [2209.05708]. Inland-LOAM, by contrast, remains explicitly feature-based and LiDAR-only, but reallocates modeling effort toward water-surface geometry and structural semantic outputs [2508.03672]. This suggests a domain-specific reinterpretation of LOAM in which the critical prior is not generic scene geometry but the persistent global geometry of the water surface.

## 3. Water-surface planar constraint and vertical stabilization

The central geometric innovation is the treatment of the water surface as a single global plane in the world frame. Inland-LOAM introduces a global water plane
$$
P_w = (n_w, d_w), \quad n_w \in S^2, \; d_w \in \mathbb{R},
$$
with plane equation
$$
n_w^T x + d_w = 0.
$$
For each keyframe $m$, a local water plane measured in the sensor frame is denoted
$$
P_{s,m} = (n_{s,m}, d_{s,m}), \quad n_{s,m}^T x_s + d_{s,m} = 0.
$$
If the keyframe pose is $T_m = (R_m, t_m) \in SE(3)$, then the measured local plane induces a predicted global plane
$$
\hat n_{w,m} = R_m n_{s,m},
$$
$$
\hat d_{w,m} = d_{s,m} - (R_m n_{s,m})^T t_m.
$$
The resulting predicted global plane is $\widehat P_{w,m} = (\hat n_{w,m}, \hat d_{w,m})$ [2508.03672].

The optimization state comprises both robot poses and the global water plane. Inland-LOAM minimizes a joint objective over $\mathcal{T} = \{T_k\}_{k=0}^N$ and $P_w$,
$$
\begin{split}
\mathcal{X}^* = \arg\min_{\mathcal{T},P_w}\;& \|r_0\|^2_{\Sigma_0} \\
&+ \sum_k \bigl\|r_{\mathrm{odom},k}(T_k, T_{k+1})\bigr\|^2_{\Sigma_{\mathrm{odom},k}} \\
&+ \sum_{(i,j)\in\mathcal{L}} \bigl\|r_{\mathrm{loop},ij}(T_i, T_j)\bigr\|^2_{\Sigma_{\mathrm{loop},ij}} \\
&+ \sum_{m\in\mathcal{M}} \bigl\|r_{\mathrm{plane},m}(T_m,P_w)\bigr\|^2_{\Sigma_{\mathrm{plane},m}} .
\end{split}
$$
Odometry and loop factors are expressed with the $SE(3)$ logarithm map. The water-surface residual is
$$
r_{\mathrm{plane},m}(T_m,P_w) = \begin{pmatrix}
e_N\!\bigl(n_w, R_m n_{s,m}\bigr) \\
d_w - \bigl(d_{s,m} - (R_m n_{s,m})^{\top} t_m\bigr)
\end{pmatrix} \in\mathbb{R}^3,
$$
where the orientation component is represented in the tangent space of the unit sphere. The paper defines a 3D vector
$$
\hat\xi = -\frac{\arccos(n_w^T\hat n_{w,m})}{\sqrt{1-(n_w^T\hat n_{w,m})^2}} \, (\hat n_{w,m} - (n_w^T\hat n_{w,m})\,n_w),
$$
and projects it through a tangent-space basis $B_{n_w} \in \mathbb{R}^{3\times 2}$ as
$$
e_N(n_w, \hat{n}_{w,m}) = B_{n_w}^T \hat{\xi}.
$$
The stated effect of these plane factors is to anchor all keyframes to a globally consistent water surface, thereby reducing vertical drift and ensuring that the reconstructed water surface remains flat over long distances [2508.03672].

Qualitative comparisons support this interpretation. In vegetation-area map comparisons, LOAM and KISS-ICP are reported to curve the water surface downward, HDL-SLAM upward, and LeGO-LOAM to retain minor $z$-drift, whereas Inland-LOAM keeps the water surface visually flat [2508.03672]. This mechanism is conceptually distinct from other constraint strategies in the LOAM family. SE2LIO imposes an $SE(2)$ prior for ground vehicles and models out-of-plane motion as integrated measurement noise [2404.01584]; AG-LOAM rejects motion-distorted and inconsistent points in agricultural settings through motion-stability and consistency filters [2412.02899]. Inland-LOAM instead uses a persistent environmental prior—a global water plane—embedded directly into factor-graph optimization [2508.03672].

## 4. Voxel-based semantic and structural mapping

After SLAM, Inland-LOAM transforms the point cloud and per-point labels into a semantic voxel representation. The workspace is divided into cubic voxels at resolution
$$
r = 0.15\,\text{m},
$$
implemented as a hash map indexed by integer grid coordinates. Each voxel stores a semantic state and associated log-odds for the terrain classes flat, rough, and unknown. Water is treated separately and assigned deterministically from water-surface points [2508.03672].

For each non-water voxel $v_i$ and class $c \in \{\text{flat}, \text{rough}\}$, the log-odds are updated as
$$
l_{t,i}^c = \text{logit}(p(m^c | y_t)) + l_{t-1,i}^c - l_{0,i}^c,
$$
with
$$
\text{logit}(p) = \ln\left(\frac{p}{1-p}\right).
$$
The paper uses a fixed-confidence observation model, exemplified by $p(\text{flat}) = p_f = 0.7$ and $p(\text{rough}) = 1-p_f$. The posterior probability is then recovered by
$$
P_i^c = \sigma(l_i^c) = \frac{1}{1 + e^{-l_i^c}},
$$
and voxel labeling is assigned according to
$$
S(v_i) = \begin{cases}
\text{flat} & \text{if } P_i^{\text{flat}} - 0.5 > \tau_{\text{flat}} \\
\text{rough} & \text{if } P_i^{\text{flat}} - 0.5 < -\tau_{\text{rough}} \\
\text{unknown} & \text{otherwise.}
\end{cases}
$$
This yields a 3D semantic voxel map with the states water, flat terrain, rough terrain, and unknown [2508.03672].

The 3D voxel map is then projected into a 2D structural semantic map. For each 2D cell $(x,y)$, Inland-LOAM collects the vertical voxel column
$$
V_{xy} = \bigl\{(z_j, s_j, p^{\mathrm{orig}}_j)\bigr\}_{j = 1}^{N_{xy}}.
$$
From these columns it derives local maximum height, occupancy structure, and neighborhood geometry. Non-water regions are classified into Horizontal Plane, Vertical Plane, Complex Horizontal, Complex Vertical, Open Water, and Under-Bridge. The local geometry is estimated by fitting a plane in a window
$$
W_{xy}: (2S_a + 1) \times (2S_a + 1),
$$
with least squares
$$
A\theta = B,
$$
where
$$
A = \begin{bmatrix}
x^{\mathrm{rel}}_{1} & y^{\mathrm{rel}}_{1} & 1 \\
x^{\mathrm{rel}}_{2} & y^{\mathrm{rel}}_{2} & 1 \\
\vdots & \vdots & \vdots \\
x^{\mathrm{rel}}_{N} & y^{\mathrm{rel}}_{N} & 1
\end{bmatrix},
\quad
\theta = \begin{bmatrix}
a \\
b \\
c
\end{bmatrix},
\quad
B = \begin{bmatrix}
z_{1} \\
z_{2} \\
\vdots \\
z_{N}
\end{bmatrix},
$$
and
$$
\theta_{\mathrm{ls}} = A^+ B.
$$
The local slope magnitude is
$$
m_{xy}= \sqrt{a_{\mathrm{ls}}^{2}+b_{\mathrm{ls}}^{2}}.
$$
This slope, together with planar support ratio and voxel support count, drives rule-based classification into the structural categories [2508.03672].

The decision logic is explicitly thresholded. HP is assigned when support is high, planar ratio is high, and slope is low. VP is assigned when support is sufficient, planar ratio is sufficient, and slope is high. CH and CV capture terrain or structure that lacks enough planar support for HP or VP but remains geometrically non-water. OW is assigned to columns containing only water-labeled voxels. UB is assigned when a water layer is overlain by a non-water layer with clearance above a threshold $\tau_{\text{bridge}}$, exemplified as 3.0 m [2508.03672].

This voxel-to-structure transformation is a defining distinction of Inland-LOAM. Most LOAM-family systems focus on geometric registration efficiency or drift reduction: LiLO uses spherical range-image filtering to obtain a lightweight low-bias odometry front end [2311.07291], KDD-LOAM uses learned keypoints and descriptors with saliency-aware scan-to-map registration [2309.15394], and NeRF-LOAM replaces explicit maps with a neural signed distance field [2303.10709]. Inland-LOAM instead converts SLAM output into a navigation-oriented structural semantic representation, with bridge clearance and shoreline extraction as first-order products [2508.03672]. This suggests that the mapping objective is not merely reconstruction fidelity but semantic compression into decision-relevant abstractions.

## 5. Navigational parameters, shoreline extraction, and chart-oriented export

Bridge clearance is derived directly from the voxel-column representation. For a cell flagged as under-bridge, the local clearance is
$$
G_{\mathrm{bridge}} = Z_{\text{overhead\_lowest}} - Z_{\text{water\_level}},
$$
equivalently written at cell level as
$$
h_{\text{clearance}} = z_{\text{bridge,min}} - z_{\text{water}}.
$$
Here $Z_{\text{water\_level}}$ is the height of the highest water voxel in the column and $Z_{\text{overhead\_lowest}}$ is the height of the lowest voxel belonging to the overhead structure. To obtain robust regional estimates, the 2D grid is divided into blocks of size $l \times l$; mean and range of $G_{\mathrm{bridge}}$ are computed per block; neighboring UB blocks are grouped by BFS into contiguous under-bridge regions; and each region is assigned a representative mean clearance [2508.03672]. Because water voxels are detected from current scans, the paper states that the method responds to current water level rather than static chart values.

Shoreline extraction proceeds from the 2D semantic map through an image-based abstraction. The map is encoded as an RGB image $\mathcal{I}$, with distinct colors for water and obstacle classes. Water boundary pixels $\mathcal{B}_w$ are identified as water cells adjacent to non-water cells. For each boundary pixel $\mathbf{p}_0 \in \mathcal{B}_w$, Inland-LOAM casts rays over $0^\circ$ to $360^\circ$ in angular increments $\Delta\theta$ and step size $s$. Ray marching stops at image bounds or at the first non-water cell; if that cell belongs to the obstacle set $\mathcal{O}$, the hit point is added to a shoreline candidate set $\mathcal{Q}$. After all rays are processed, $\mathcal{Q}$ is down-sampled to produce the final shoreline point set $\mathcal{S}$ [2508.03672].

Bridge regions are extracted by taking bridge pixels $\mathcal{P}_{\text{bridge}}$, clustering them with DBSCAN using parameters $(\varepsilon, n_{\min})$, computing a convex hull per cluster, and merging polygons whose distance is below $\delta$. The outputs are shoreline point sets and bridge polygons exported in JSON. The paper states that the intent is not full chart replacement but chart update and enhancement through geometries that can be overlaid onto existing IENC data [2508.03672].

A plausible implication is that Inland-LOAM operationalizes a two-stage cartographic reduction absent from most SLAM pipelines: first from point cloud to semantic voxels, then from semantic voxels to chart primitives. In that sense it is closer to a hydrographic preprocessing system than to a conventional robotics-only mapping backend.

## 6. Evaluation, relation to the LOAM family, and limitations

Experiments were conducted on three real-world canal sequences between Leuven and the Dijle in Belgium: Mixed Area A, Vegetation Area B, and Urban Port Area C. These vary in loop structure, shoreline composition, bridge presence, and weather conditions. RTK-GNSS from a Septentrio AsteRx-i3 D Pro+ is used as reference, with the caveat that it can degrade beneath bridges and in urban-canyon segments [2508.03672].

The reported trajectory errors are summarized below.

| Sequence | Inland-LOAM RMSE / STD (m) | Best competing baseline RMSE / STD (m) |
|---|---:|---:|
| A | 0.45 / 0.37 | LeGO-LOAM: 0.48 / 0.37 |
| B | 0.60 / 0.30 | LeGO-LOAM: 2.26 / 1.14 |
| C | 0.99 / 0.72 | LOAM: 1.97 / 0.97 |
| Average | 0.68 / 0.46 | LeGO-LOAM: 1.58 / 0.78 |

Across all three sequences, Inland-LOAM attains the lowest RMSE and STD among Inland-LOAM, HDL-SLAM, KISS-ICP, LeGO-LOAM, and LOAM, with the most pronounced advantage in the vegetation-dominated Area B [2508.03672]. Qualitative map comparisons further show that competing methods exhibit visible water-surface curvature, whereas Inland-LOAM maintains a flat water plane and sharper façade detail such as building windows [2508.03672].

The structural semantic maps are reported to identify under-bridge zones, ramps, platforms, revetments, facades, vegetation, and piling with substantial agreement to the physical scenes. Shoreline outputs are compared against IENC, Google Earth, and OpenStreetMap references. The reported interpretation is that Inland-LOAM aligns well with revetments, ramps, canal boundaries, and current arrangements of moored vessels, and can in some cases reflect more recent shoreline or vessel configurations than static references [2508.03672].

In computational terms, the system is described as real-time on CPU. Preprocessing and plane fitting require 7.8 ms per scan, feature extraction and odometry 10.5 ms, and the back-end mapping update 37.2 ms, with map optimization at 2 Hz. The voxel-to-2D conversion module has median update time about 1 s and maximum about 2.8 s during open exploration; this is presented as adequate for situational awareness and planning at vessel speed up to 3 m/s. The IENC export module is intended for offline use [2508.03672].

Several limitations are stated explicitly. The water surface is approximated as a plane, which may become inaccurate under strong waves, heavy currents, or large-scale variations. Water-surface detection depends on LiDAR returns and grazing-angle conditions and can degrade near other vessels or dynamic wakes. The semantics are purely geometric, so dense vegetation can be misclassified, for example when flat ground behind sparse foliage is inferred as HP or flat-topped vegetation as HP or VP. The mapping is not explicitly dynamic-aware, which leads to aliasing and semantic mixing for moving bridges or vessels. Future work is directed toward camera integration, better dynamic-environment handling, stronger semantic SLAM, and semantic costmaps for planning [2508.03672].

Within the broader arXiv LOAM literature, Inland-LOAM occupies a distinctive position. InTEn-LOAM emphasizes intensity and temporal cues for robustness in dynamic or unstructured environments [2209.05708], Generalized LOAM uses trainable local geometric features inside GICP [2210.16510], LiLO prioritizes low-bias lightweight odometry via spherical range-image filtering [2311.07291], AG-LOAM adapts dense G-ICP and map-update policies to agricultural terrain [2412.02899], and indoor multi-modal LOAM variants fuse multiple LiDARs and IMU to overcome corridor degeneracies [2303.02684]. Inland-LOAM’s defining contribution is neither learned correspondence nor inertial tight coupling; it is the combination of a water-plane-constrained LiDAR SLAM core with a voxel-based structural semantic mapping pipeline that produces bridge clearances, shorelines, and under-bridge regions as direct outputs [2508.03672].

Source: https://www.emergentmind.com/topics/inland-loam