Skip to main content
Beam-based distance sensors (sonar, lidar, depth IR) measure distances to the nearest surface along discrete directions (beams). We develop a probabilistic forward (generative) model p ( z t ∣ x t , m ) p(\mathbf z_t \mid \mathbf x_t, m) p ( z t ∣ x t , m ) describing the likelihood of receiving range scan z t \mathbf z_t z t from pose x t \mathbf x_t x t in map m m m , and an inverse model for occupancy mapping.
Notation:
Robot pose (planar): x t = ( x t , y t , θ t ) \mathbf x_t = (x_t, y_t, \theta_t) x t = ( x t , y t , θ t ) .
Map m m m : occupancy grid (binary / probabilistic) or geometric (polygonal, mesh).
Scan: z t = z t k k = 1 K \mathbf z_t = { z_t^k }_{k=1}^K z t = z t k k = 1 K with beam angles ϕ k \phi_k ϕ k relative to sensor frame.
Maximum sensor range: z max z_{\max} z m a x .
Expected (ideal) range along beam k k k : z ^ t k = r ( x t , ϕ k , m ) \hat z_t^k = r(\mathbf x_t, \phi_k, m) z ^ t k = r ( x t , ϕ k , m ) found via ray casting.
Assumed conditional independence (approximation):
p ( z t ∣ x t , m ) = ∏ k = 1 K p ( z t k ∣ x t , m ) . p(\mathbf z_t \mid \mathbf x_t, m) = \prod_{k=1}^K p(z_t^k \mid \mathbf x_t, m). p ( z t ∣ x t , m ) = k = 1 ∏ K p ( z t k ∣ x t , m ) .
Beam-Based Forward Model (Mixture)
Real measurements exhibit multiple phenomena: precise hits, unexpected short returns, max-range (no return), and random noise. Model each beam as a weighted mixture:
p ( z ∣ z ^ ) = α hit p hit ( z ∣ z ^ ) + α short p short ( z ∣ z ^ ) + α max p max ( z ) + α rand p rand ( z ) , p(z \mid \hat z) = \alpha_{\text{hit}} p_{\text{hit}}(z \mid \hat z) +
\alpha_{\text{short}} p_{\text{short}}(z \mid \hat z) +
\alpha_{\text{max}} p_{\text{max}}(z) +
\alpha_{\text{rand}} p_{\text{rand}}(z), p ( z ∣ z ^ ) = α hit p hit ( z ∣ z ^ ) + α short p short ( z ∣ z ^ ) + α max p max ( z ) + α rand p rand ( z ) ,
with ∑ i α i = 1 \sum_i \alpha_i = 1 ∑ i α i = 1 .
Precise Hit Component
p hit ( z ∣ z ^ ) = { η exp ( − ( z − z ^ ) 2 2 σ hit 2 ) , 0 ≤ z ≤ z max 0 , otherwise p_{\text{hit}}(z \mid \hat z) =
\begin{cases}
\eta \exp\!\left(-\dfrac{(z - \hat z)^2}{2\sigma_{\text{hit}}^2}\right), & 0 \le z \le z_{\max}\\
0, & \text{otherwise}
\end{cases} p hit ( z ∣ z ^ ) = ⎩ ⎨ ⎧ η exp ( − 2 σ hit 2 ( z − z ^ ) 2 ) , 0 , 0 ≤ z ≤ z m a x otherwise
η \eta η normalizes over [ 0 , z max ] [0,z_{\max}] [ 0 , z m a x ] .
Unexpected Short Return
Captures unmodelled obstacles between sensor and predicted surface:
p short ( z ∣ z ^ ) = { η λ e − λ z , 0 ≤ z ≤ z ^ 0 , z > z ^ p_{\text{short}}(z \mid \hat z) =
\begin{cases}
\eta \lambda e^{-\lambda z}, & 0 \le z \le \hat z\\
0, & z > \hat z
\end{cases} p short ( z ∣ z ^ ) = { η λ e − λ z , 0 , 0 ≤ z ≤ z ^ z > z ^
Max Range
p max ( z ) = { 1 , z = z max 0 , otherwise p_{\text{max}}(z) =
\begin{cases}
1, & z = z_{\max}\\
0, & \text{otherwise}
\end{cases} p max ( z ) = { 1 , 0 , z = z m a x otherwise
Random Noise
p rand ( z ) = { 1 z max , 0 ≤ z < z max 0 , otherwise p_{\text{rand}}(z) =
\begin{cases}
\dfrac{1}{z_{\max}}, & 0 \le z < z_{\max}\\
0, & \text{otherwise}
\end{cases} p rand ( z ) = ⎩ ⎨ ⎧ z m a x 1 , 0 , 0 ≤ z < z m a x otherwise
Final Per-Beam Likelihood
p ( z t k ∣ x t , m ) = p ( z ∣ z ^ t k ) . p(z_t^k \mid \mathbf x_t, m) = p(z \mid \hat z_t^k). p ( z t k ∣ x t , m ) = p ( z ∣ z ^ t k ) .
Log form for numerical stability:
log p ( z t ∣ x t , m ) = ∑ k log ( ∑ j α j p j ( z t k ) ) . \log p(\mathbf z_t \mid \mathbf x_t, m) = \sum_k \log\left( \sum_j \alpha_j p_j(z_t^k) \right). log p ( z t ∣ x t , m ) = k ∑ log ( j ∑ α j p j ( z t k ) ) .
Parameter Estimation
Given training set ( z n , z ^ n ) { (z_n, \hat z_n)} ( z n , z ^ n ) :
Closed-form for σ hit 2 \sigma_{\text{hit}}^2 σ hit 2 using weighted residual variance if component assignments known.
Use EM:
E-step: responsibilities r n i = α i p i ( z n ) ∑ j α j p j ( z n ) r_{ni} = \dfrac{\alpha_i p_i(z_n)}{\sum_j \alpha_j p_j(z_n)} r ni = ∑ j α j p j ( z n ) α i p i ( z n ) .
M-step: α i = 1 N ∑ n r n i \alpha_i = \frac{1}{N}\sum_n r_{ni} α i = N 1 ∑ n r ni ; update σ hit , λ \sigma_{\text{hit}}, \lambda σ hit , λ via weighted MLE.
Constrain α i ≥ 0 \alpha_i \ge 0 α i ≥ 0 , ∑ α i = 1 \sum\alpha_i=1 ∑ α i = 1 .
Dynamic Obstacles
Augment forward model with dynamic layer m D m_D m D :
p ( z ∣ z ^ , m , m D ) = ( 1 − β ) p ( z ∣ z ^ , m ) + β p dyn ( z ) , p(z \mid \hat z, m, m_D) = (1-\beta) p(z \mid \hat z, m) + \beta p_{\text{dyn}}(z), p ( z ∣ z ^ , m , m D ) = ( 1 − β ) p ( z ∣ z ^ , m ) + β p dyn ( z ) ,
where p dyn p_{\text{dyn}} p dyn could emphasize short / random returns; β \beta β from motion segmentation.