Figure 1.
Prediction, measurement update, resampling decision, and state estimation steps of the particle filter localization process [
30].
Figure 1.
Prediction, measurement update, resampling decision, and state estimation steps of the particle filter localization process [
30].
Figure 2.
Relative positions of the two AMRs and their LiDAR measurements. (a) Relative positions of AMRs A and B; (b) mutual occlusion between the AMRs.
Figure 2.
Relative positions of the two AMRs and their LiDAR measurements. (a) Relative positions of AMRs A and B; (b) mutual occlusion between the AMRs.
Figure 3.
Localization algorithm pipeline.
Figure 3.
Localization algorithm pipeline.
Figure 4.
AMR contour-processing sequence: (a) raw ROI-selected contour points; (b) median-filtered points; and (c) smoothed line segments used for feature extraction.
Figure 4.
AMR contour-processing sequence: (a) raw ROI-selected contour points; (b) median-filtered points; and (c) smoothed line segments used for feature extraction.
Figure 5.
AMR platform geometry and LiDAR cross-section. (a) Three-dimensional chassis view; (b) top view defining L, H1, H2, α, β, the detected corner, and the center coordinate.
Figure 5.
AMR platform geometry and LiDAR cross-section. (a) Three-dimensional chassis view; (b) top view defining L, H1, H2, α, β, the detected corner, and the center coordinate.
Figure 6.
KD-tree method for relative angle estimation.
Figure 6.
KD-tree method for relative angle estimation.
Figure 7.
Coordinate matching of AMR B with respect to AMR A. (a) AMR B rotated by 20°; (b) AMR B rotated by 10°; and (c) AMR B rotated by 0°.
Figure 7.
Coordinate matching of AMR B with respect to AMR A. (a) AMR B rotated by 20°; (b) AMR B rotated by 10°; and (c) AMR B rotated by 0°.
Figure 8.
Generation of a Virtual-AMR LiDAR scan from the surrounding physical AMR LiDAR data. (a) LiDAR scan from AMR A; (b) LiDAR scan from AMR B; and (c) Virtual-AMR LiDAR scan.
Figure 8.
Generation of a Virtual-AMR LiDAR scan from the surrounding physical AMR LiDAR data. (a) LiDAR scan from AMR A; (b) LiDAR scan from AMR B; and (c) Virtual-AMR LiDAR scan.
Figure 9.
TF relationships of the dual-AMR configuration.
Figure 9.
TF relationships of the dual-AMR configuration.
Figure 10.
Experimental system architecture.
Figure 10.
Experimental system architecture.
Figure 11.
Experimental area and motion trajectory. (a) Experimental area; (b) motion trajectory.
Figure 11.
Experimental area and motion trajectory. (a) Experimental area; (b) motion trajectory.
Figure 12.
Experimental path planning. (a) Motion pattern; (b) position, velocity, and acceleration profiles.
Figure 12.
Experimental path planning. (a) Motion pattern; (b) position, velocity, and acceleration profiles.
Figure 13.
Environmental data observed by the two AMRs and the synthesized Virtual-AMR in the initial state. (a) LiDAR data from AMR A; (b) LiDAR data from AMR B; (c) Virtual-AMR LiDAR data; and (d) simultaneous LiDAR data from AMRs A and B.
Figure 13.
Environmental data observed by the two AMRs and the synthesized Virtual-AMR in the initial state. (a) LiDAR data from AMR A; (b) LiDAR data from AMR B; (c) Virtual-AMR LiDAR data; and (d) simultaneous LiDAR data from AMRs A and B.
Figure 14.
Geometry of the experimental area. (a) Front view; (b) right-side view; and (c) left-side view.
Figure 14.
Geometry of the experimental area. (a) Front view; (b) right-side view; and (c) left-side view.
Figure 15.
Environmental data observed by the two AMRs and the synthesized Virtual-AMR after motion. (a) LiDAR data from AMR A; (b) LiDAR data from AMR B; (c) combined LiDAR data from AMRs A and B; and (d) Virtual-AMR LiDAR data.
Figure 15.
Environmental data observed by the two AMRs and the synthesized Virtual-AMR after motion. (a) LiDAR data from AMR A; (b) LiDAR data from AMR B; (c) combined LiDAR data from AMRs A and B; and (d) Virtual-AMR LiDAR data.
Figure 16.
Distribution of AMR LiDAR scans.
Figure 16.
Distribution of AMR LiDAR scans.
Figure 17.
KD-tree angular search results. (a) Full-range angular search; (b) local refined angular search.
Figure 17.
KD-tree angular search results. (a) Full-range angular search; (b) local refined angular search.
Figure 18.
Relative coordinates of AMRs A and B.
Figure 18.
Relative coordinates of AMRs A and B.
Figure 19.
AMCL position estimates. (a) AMR A; (b) AMR B; and (c) Virtual-AMR.
Figure 19.
AMCL position estimates. (a) AMR A; (b) AMR B; and (c) Virtual-AMR.
Figure 20.
AMCL tracking errors. (a) AMR A; (b) AMR B; and (c) Virtual-AMR.
Figure 20.
AMCL tracking errors. (a) AMR A; (b) AMR B; and (c) Virtual-AMR.
Figure 21.
Particle cloud distributions. (a) AMR A; (b) AMR B; and (c) Virtual-AMR.
Figure 21.
Particle cloud distributions. (a) AMR A; (b) AMR B; and (c) Virtual-AMR.
Figure 22.
Central-position estimates. (a) A/B spatial midpoint baseline; (b) Virtual-AMR.
Figure 22.
Central-position estimates. (a) A/B spatial midpoint baseline; (b) Virtual-AMR.
Figure 23.
Central-position estimation errors. (a) A/B spatial midpoint baseline; (b) Virtual-AMR.
Figure 23.
Central-position estimation errors. (a) A/B spatial midpoint baseline; (b) Virtual-AMR.
Figure 24.
Odometry-related data. (a) AMR A; (b) AMR B; and (c) Virtual-AMR.
Figure 24.
Odometry-related data. (a) AMR A; (b) AMR B; and (c) Virtual-AMR.
Figure 25.
Dual-AMR turning path: (a) path location in the map; (b) trajectories of AMRs A and B; and (c) mutual occlusion region of AMRs A and B.
Figure 25.
Dual-AMR turning path: (a) path location in the map; (b) trajectories of AMRs A and B; and (c) mutual occlusion region of AMRs A and B.
Figure 26.
Positions and velocities of the dual-AMRs: (a) AMR A; (b) AMR B.
Figure 26.
Positions and velocities of the dual-AMRs: (a) AMR A; (b) AMR B.
Figure 27.
Dual-AMR trajectories in the experiments: (a) trajectories of AMRs A and B; (b) estimated central path.
Figure 27.
Dual-AMR trajectories in the experiments: (a) trajectories of AMRs A and B; (b) estimated central path.
Figure 28.
Dual-AMR results under T1: (a) AMR trajectories; (b) position errors.
Figure 28.
Dual-AMR results under T1: (a) AMR trajectories; (b) position errors.
Figure 29.
Dual-AMR results under T2: (a) AMR trajectories; (b) position errors.
Figure 29.
Dual-AMR results under T2: (a) AMR trajectories; (b) position errors.
Figure 30.
Dual-AMR results under T3: (a) AMR trajectories; (b) position errors.
Figure 30.
Dual-AMR results under T3: (a) AMR trajectories; (b) position errors.
Figure 31.
Dual-AMR results under T4: (a) AMR trajectories; (b) position errors.
Figure 31.
Dual-AMR results under T4: (a) AMR trajectories; (b) position errors.
Figure 32.
A/B spatial midpoint baseline under T1: (a) estimated trajectory; (b) position error.
Figure 32.
A/B spatial midpoint baseline under T1: (a) estimated trajectory; (b) position error.
Figure 33.
Central-position estimate under T2: (a) estimated trajectory; (b) position error.
Figure 33.
Central-position estimate under T2: (a) estimated trajectory; (b) position error.
Figure 34.
Central-position estimate under T3: (a) estimated trajectory; (b) position error.
Figure 34.
Central-position estimate under T3: (a) estimated trajectory; (b) position error.
Figure 35.
Complete Virtual-AMR localization under T4: (a) estimated trajectory; (b) position error.
Figure 35.
Complete Virtual-AMR localization under T4: (a) estimated trajectory; (b) position error.
Table 1.
Comparison of the proposed method with representative cooperative localization and multi-robot SLAM approaches.
Table 1.
Comparison of the proposed method with representative cooperative localization and multi-robot SLAM approaches.
| Approach | Shared Information | Primary Estimator Target | Difference from This Study |
|---|
| Distributed relative localization [4] | Inter-robot range/bearing or relative pose | Relative team configuration | Does not specifically reconstruct a virtual environmental scan for AMCL occlusion recovery |
| Resource-aware collaborative MCL [5] | Compressed particle belief distributions | Global localization belief | Fuses beliefs after robot detection rather than fusing masked LiDAR measurements before AMCL |
| Distributed multi-robot SLAM [6] | Descriptors, submaps, and pose graph constraints | Joint map and trajectory | Addresses collaborative mapping and loop closure, not the local mutual occlusion mechanism studied here |
| Proposed Virtual-AMR method | Timestamped 2D scans and inter-robot SE(2) transforms | Virtual measurement supplied to unchanged AMCL | Centralized measurement reconstruction for a known map; current validation is limited to two AMRs |
Table 2.
Algorithm and reproducibility parameters.
Table 2.
Algorithm and reproducibility parameters.
| Parameter | Value |
|---|
| LiDAR point count, IDtotal | 655 |
| Median filter window | 11 points |
| Smoothing index range, range | 10 (11 inclusive samples) |
| Line fit neighborhood, N | 10 points |
| KD-tree neighbor width | ±10 indices |
| Post-filter distance gate, εd | 3 mm |
| Angular optimization increment | 0.1° |
| Kalman sampling interval, Δt | 0.1 s |
| Kalman process covariance, Q | |
| Kalman measurement covariance, R | |
| Kalman initial covariance, P0 | |
| ROI constants (hx,0, hy,0, γ) | 0.25 m, 0.25 m, 2.0 |
| Maximum inter-scan timestamp difference, Δtsync,max | 50 ms |
| Maximum observation age, τage,max | 100 ms |
| Normal E2E latency threshold, TE2E,max | 350 ms |
| Consecutive invalid/missing synchronized pairs, Nmiss,max | 3 frames |
Table 3.
AMR platform and communication specifications.
Table 3.
AMR platform and communication specifications.
| AMR Configuration | Specification |
|---|
| Operation system | Ubuntu 20.04.6 LTS 5.15.0-88-generic |
| ROS Middleware | ROS 2 Foxy Fitzroy |
| Navigation Stack | Navigation2 v0.4.7 |
| Localization | nav2_amcl v0.4.7 |
| CPU | Intel(R) Pentium(R) CPU G4400 @ 3.30GHz (Intel Corporation, Santa Clara, CA, USA) |
| Memory | 3.73 GB |
| LiDAR | SICK TiM551 (SICK AG, Waldkirch, Germany) |
| Inertial sensors | LPMS B2 (LP-RESEARCH Inc., Tokyo, Japan) |
| Wi-Fi 6E network card | Intel WiFi 6E AX210 (Intel Corporation, Santa Clara, CA, USA) |
| Motor | JSMA000T01_V01 (TECO Electric & Machinery Co., Ltd., Taipei, Taiwan) |
| Router | ASUS GT-AXE11000 Tri-Band Router (ASUSTeK Computer Inc., Taipei, Taiwan) |
| Chassis dimensions (length × width × height) | 40 cm × 40 cm × 40 cm |
| Geometry constants (L, H1, H2) | 20 cm, 7.5 cm, 10 cm |
| LiDAR extrinsic TᴮL (x, y, yaw) | (17.5 cm, 0, 0°) |
Table 4.
End-to-end latency analysis.
Table 4.
End-to-end latency analysis.
| No. | Major Processing Block | Main Operations | Straight-Line Test (ms) | 90° Turning Test (ms) |
|---|
| 1 | Data acquisition and synchronization | LiDAR/odometry reception, ROS 2 communication, and timestamp synchronization | 17 | 21 |
| 2 | LiDAR preprocessing | Coordinate transformation, median filtering, outlier removal, and smoothing | 18 | 24 |
| 3 | Feature recognition and tracking | AMR feature extraction, ROI update, and linear Kalman filter | 18 | 24 |
| 4 | Relative angle estimation | KD-tree matching, overlap ratio calculation, and refined dynamic angle search | 150 | 172 |
| 5 | Virtual-AMR construction | Relative pose fusion and virtual LiDAR generation | 12 | 15 |
| 6 | AMCL localization update | Virtual scan/TF publication and AMCL update | 30 | 33 |
| Total end-to-end latency | 245 | 289 |
| Equivalent update rate (Hz) | 4.08 | 3.46 |
Table 5.
CPU utilization.
Table 5.
CPU utilization.
| Operating Condition | Measured CPU Utilization | Description |
|---|
| Straight-line, refined search | 49–66% | Stable ROI and relatively small heading variation |
| 90° turning, refined search | 57–71% | More frequent ROI updates and angular search calculations |
| Initialization/recovery, full-angle search | 74–93% | Full angular search dominates computational load |
Table 6.
Sensitivity to the KD-tree correspondence distance gate.
Table 6.
Sensitivity to the KD-tree correspondence distance gate.
| Distance Gate, εd | Failure Rate (%) | 2D Position RMSE (cm) | Heading RMSE (°) | KD-Tree + Refined-Search Time (ms) | Measured E2E Latency (ms) |
|---|
| 1 mm | 11.7 | 5.2 | 0.38 | 141 | 238 |
| 2 mm | 5.0 | 4.1 | 0.24 | 144 | 241 |
| 3 mm | 2.0 | 3.5 | 0.16 | 150 | 245 |
| 4 mm | 2.8 | 3.7 | 0.18 | 171 | 266 |
| 5 mm | 4.7 | 4.2 | 0.24 | 184 | 279 |
| 7 mm | 8.3 | 5.0 | 0.34 | 205 | 300 |
Table 7.
Sensitivity to the angular optimization increment.
Table 7.
Sensitivity to the angular optimization increment.
| Angular Increment, Δθ | Failure Rate (%) | 2D Position RMSE (cm) | Heading RMSE (°) | KD-Tree + Refined-Search Time (ms) | Measured E2E Latency (ms) |
|---|
| 0.05° | 1.5 | 3.4 | 0.12 | 310 | 405 |
| 0.10° | 2.0 | 3.5 | 0.16 | 150 | 245 |
| 0.20° | 3.3 | 3.8 | 0.23 | 90 | 185 |
| 0.50° | 7.5 | 4.6 | 0.43 | 48 | 143 |
| 1.00° | 15.0 | 5.8 | 0.79 | 32 | 127 |
Table 8.
AMCL tracking error (unit: m).
Table 8.
AMCL tracking error (unit: m).
| AMR | Direction | MAE | RMSE | E_med | E_P95 | E_max |
|---|
| A AMR | Y-axis | 0.0272 | 0.0335 | 0.0225 | 0.0733 | 0.1238 |
| X-axis | 0.0323 | 0.0343 | 0.0308 | 0.0781 | 0.0851 |
| 2D | 0.0422 | 0.0479 | 0.0437 | 0.1006 | 0.1284 |
| B AMR | Y-axis | 0.2768 | 0.3213 | 0.2406 | 0.7125 | 1.6254 |
| X-axis | 0.3294 | 0.3825 | 0.2716 | 0.8473 | 2.2165 |
| 2D | 0.4085 | 0.4995 | 0.3919 | 1.0326 | 2.7349 |
| Virtual-AMR | Y-axis | 0.0249 | 0.0341 | 0.0292 | 0.0846 | 0.1281 |
| X-axis | 0.0177 | 0.0256 | 0.0176 | 0.0496 | 0.0796 |
| 2D | 0.0336 | 0.0426 | 0.0379 | 0.0949 | 0.1281 |
Table 9.
Particle cloud dispersion statistics (unit: m).
Table 9.
Particle cloud dispersion statistics (unit: m).
| AMR | Direction | MAE | RMSE | E_med | E_P95 | E_max |
|---|
| A AMR | Y-axis | 0.2049 | 0.2164 | 0.1805 | 0.232 | 0.2382 |
| X-axis | 0.1907 | 0.2206 | 0.1591 | 0.2284 | 0.2521 |
| 2D | 0.2425 | 0.3080 | 0.2449 | 0.3156 | 0.3379 |
| B AMR | Y-axis | 0.3552 | 0.3864 | 0.2641 | 0.6455 | 0.6721 |
| X-axis | 0.4093 | 0.4939 | 0.3593 | 0.9781 | 1.0625 |
| 2D | 0.5713 | 0.6267 | 0.4517 | 1.167 | 1.2556 |
| Virtual-AMR | Y-axis | 0.1649 | 0.1778 | 0.1577 | 0.1852 | 0.1915 |
| X-axis | 0.1846 | 0.1937 | 0.1524 | 0.2175 | 0.2833 |
| 2D | 0.2173 | 0.2623 | 0.2138 | 0.2863 | 0.3365 |
Table 10.
Central-position tracking error (unit: m).
Table 10.
Central-position tracking error (unit: m).
| AMR | Direction | MAE | RMSE | E_med | E_P95 | E_max |
|---|
| A/B spatial midpoint baseline | Y-axis | 0.0336 | 0.1676 | 0.0264 | 0.3487 | 0.7088 |
| X-axis | 0.1561 | 0.1754 | 0.1013 | 0.4515 | 1.0209 |
| 2D | 0.1585 | 0.2426 | 0.2241 | 0.4765 | 1.2428 |
| Virtual-AMR | Y-axis | 0.0295 | 0.0479 | 0.0331 | 0.0957 | 0.1307 |
| X-axis | 0.0281 | 0.0364 | 0.0347 | 0.0767 | 0.1469 |
| 2D | 0.0479 | 0.0597 | 0.0533 | 0.1147 | 0.1486 |
Table 11.
Odometry tracking error (unit: m).
Table 11.
Odometry tracking error (unit: m).
| AMR | Direction | MAE | RMSE | E_med | E_P95 | E_max |
|---|
| A AMR | Y-axis | 0.0355 | 0.0564 | 0.0479 | 0.1112 | 0.1701 |
| X-axis | 0.0496 | 0.0653 | 0.0623 | 0.1656 | 0.1769 |
| 2D | 0.0648 | 0.0863 | 0.0902 | 0.1855 | 0.2235 |
| B AMR | Y-axis | 0.0838 | 0.1863 | 0.105 | 0.386 | 0.5535 |
| X-axis | 0.0059 | 0.1621 | 0.0157 | 0.3454 | 0.5492 |
| 2D | 0.0891 | 0.2469 | 0.1565 | 0.4023 | 0.7797 |
| Virtual-AMR | Y-axis | 0.0242 | 0.0305 | 0.0321 | 0.0771 | 0.0863 |
| X-axis | 0.0225 | 0.0376 | 0.0294 | 0.0699 | 0.1226 |
| 2D | 0.0379 | 0.0475 | 0.0533 | 0.0907 | 0.1275 |
Table 12.
Branch-wise ablation configurations.
Table 12.
Branch-wise ablation configurations.
| ID | Configuration | Relative-Position Source | Relative-Heading (θ) Source |
|---|
| T1 | Standard individual-scan AMCL/direct midpoint baseline | Individual AMCL/TF | Individual AMCL/TF |
| T2 | Relative angle branch only | Individual AMCL/TF | KD-tree angular matching |
| T3 | Feature recognition/tracking branch only | ROI + filtering + Kalman tracking | Individual AMCL/TF |
| T4 | Complete proposed Virtual-AMR method | ROI + filtering + Kalman tracking | KD-tree angular matching |
Table 13.
Straight-line branch-wise ablation error statistics (unit: m).
Table 13.
Straight-line branch-wise ablation error statistics (unit: m).
| Test ID | Direction | MAE | RMSE | E_med | E_P95 | E_max |
|---|
| T1 | Y-axis | 0.0336 | 0.1676 | 0.0264 | 0.3487 | 0.7088 |
| X-axis | 0.1561 | 0.1754 | 0.1013 | 0.4515 | 1.0209 |
| 2D | 0.1585 | 0.2426 | 0.2241 | 0.4765 | 1.2428 |
| T2 | Y-axis | 0.0657 | 0.1371 | 0.1102 | 0.2966 | 0.6217 |
| X-axis | 0.0576 | 0.0839 | 0.0475 | 0.2094 | 0.5754 |
| 2D | 0.0685 | 0.1607 | 0.1134 | 0.3112 | 0.7364 |
| T3 | Y-axis | 0.0294 | 0.0572 | 0.0425 | 0.1231 | 0.2384 |
| X-axis | 0.0713 | 0.1086 | 0.0895 | 0.2006 | 0.4721 |
| 2D | 0.0989 | 0.1227 | 0.1101 | 0.2503 | 0.5289 |
| T4 | Y-axis | 0.0249 | 0.0341 | 0.0292 | 0.0846 | 0.1281 |
| X-axis | 0.0177 | 0.0256 | 0.0176 | 0.0496 | 0.0796 |
| 2D | 0.0336 | 0.0426 | 0.0379 | 0.0949 | 0.1281 |
Table 14.
Turning branch-wise ablation error statistics (unit: m).
Table 14.
Turning branch-wise ablation error statistics (unit: m).
| Test ID | Direction | MAE | RMSE | E_med | E_P95 | E_max |
|---|
| T1 | X-axis | 0.1949 | 0.2882 | 0.0809 | 0.5092 | 0.9944 |
| Y-axis | 0.0791 | 0.1109 | 0.0711 | 0.2170 | 0.4370 |
| 2D | 0.2232 | 0.3088 | 0.1072 | 0.5866 | 1.0594 |
| T2 | X-axis | 0.1199 | 0.1730 | 0.1098 | 0.3443 | 0.5643 |
| Y-axis | 0.1030 | 0.1372 | 0.0801 | 0.2740 | 0.3127 |
| 2D | 0.1759 | 0.2208 | 0.1503 | 0.4075 | 0.6425 |
| T3 | X-axis | 0.1276 | 0.1725 | 0.1320 | 0.3150 | 0.4073 |
| Y-axis | 0.1254 | 0.1684 | 0.0969 | 0.3400 | 0.4399 |
| 2D | 0.2023 | 0.2411 | 0.1892 | 0.4027 | 0.5967 |
| T4 | X-axis | 0.0292 | 0.0452 | 0.0136 | 0.0821 | 0.1998 |
| Y-axis | 0.0196 | 0.0259 | 0.0154 | 0.0544 | 0.1133 |
| 2D | 0.0411 | 0.0521 | 0.0335 | 0.0829 | 0.2297 |
Table 15.
Trial-level 2D RMSE across five independent straight-line trials (unit: m).
Table 15.
Trial-level 2D RMSE across five independent straight-line trials (unit: m).
| Test ID | Trial 1 | Trial 2 | Trial 3 | Trial 4 | Trial 5 | Mean ± SD |
|---|
| T1 | 0.2201 | 0.1989 | 0.2903 | 0.2638 | 0.2274 | 0.2401 ± 0.0365 |
| T2 | 0.1737 | 0.1684 | 0.1771 | 0.1244 | 0.1539 | 0.1595 ± 0.0215 |
| T3 | 0.1358 | 0.1256 | 0.1406 | 0.1044 | 0.0986 | 0.1210 ± 0.0187 |
| T4 | 0.0299 | 0.0450 | 0.0352 | 0.0503 | 0.0451 | 0.0412 ± 0.0083 |
Table 16.
Trial-level 2D RMSE across five independent turning trials (unit: m).
Table 16.
Trial-level 2D RMSE across five independent turning trials (unit: m).
| Test ID | Trial 1 | Trial 2 | Trial 3 | Trial 4 | Trial 5 | Mean ± SD |
|---|
| T1 | 0.2878 | 0.3143 | 0.2850 | 0.3942 | 0.2422 | 0.3047 ± 0.0563 |
| T2 | 0.2024 | 0.1910 | 0.2010 | 0.2127 | 0.2884 | 0.2191 ± 0.0395 |
| T3 | 0.2886 | 0.2255 | 0.1843 | 0.2738 | 0.2283 | 0.2401 ± 0.0417 |
| T4 | 0.0656 | 0.0538 | 0.0402 | 0.0540 | 0.0419 | 0.0511 ± 0.0104 |