Skip to main content
Beam measurement model 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(ztxt,m)p(\mathbf z_t \mid \mathbf x_t, m) describing the likelihood of receiving range scan zt\mathbf z_t from pose xt\mathbf x_t in map mm, and an inverse model for occupancy mapping. Notation:
  • Robot pose (planar): xt=(xt,yt,θt)\mathbf x_t = (x_t, y_t, \theta_t).
  • Map mm: occupancy grid (binary / probabilistic) or geometric (polygonal, mesh).
  • Scan: zt=ztkk=1K\mathbf z_t = { z_t^k }_{k=1}^K with beam angles ϕk\phi_k relative to sensor frame.
  • Maximum sensor range: zmaxz_{\max}.
  • Expected (ideal) range along beam kk: z^tk=r(xt,ϕk,m)\hat z_t^k = r(\mathbf x_t, \phi_k, m) found via ray casting.
Assumed conditional independence (approximation): p(ztxt,m)=k=1Kp(ztkxt,m).p(\mathbf z_t \mid \mathbf x_t, m) = \prod_{k=1}^K p(z_t^k \mid \mathbf x_t, m). Measurement model components

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(zz^)=αhitphit(zz^)+αshortpshort(zz^)+αmaxpmax(z)+αrandprand(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), with iαi=1\sum_i \alpha_i = 1. Hit and Unexpected components

Precise Hit Component

phit(zz^)={ηexp ⁣((zz^)22σhit2),0zzmax0,otherwisep_{\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} η\eta normalizes over [0,zmax][0,z_{\max}].

Unexpected Short Return

Captures unmodelled obstacles between sensor and predicted surface: pshort(zz^)={ηλeλz,0zz^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} Max range and Random components

Max Range

pmax(z)={1,z=zmax0,otherwisep_{\text{max}}(z) = \begin{cases} 1, & z = z_{\max}\\ 0, & \text{otherwise} \end{cases}

Random Noise

prand(z)={1zmax,0z<zmax0,otherwisep_{\text{rand}}(z) = \begin{cases} \dfrac{1}{z_{\max}}, & 0 \le z < z_{\max}\\ 0, & \text{otherwise} \end{cases}

Final Per-Beam Likelihood

p(ztkxt,m)=p(zz^tk).p(z_t^k \mid \mathbf x_t, m) = p(z \mid \hat z_t^k). Log form for numerical stability: logp(ztxt,m)=klog(jαjpj(ztk)).\log p(\mathbf z_t \mid \mathbf x_t, m) = \sum_k \log\left( \sum_j \alpha_j p_j(z_t^k) \right).

Parameter Estimation

Given training set (zn,z^n){ (z_n, \hat z_n)}:
  • Closed-form for σhit2\sigma_{\text{hit}}^2 using weighted residual variance if component assignments known.
  • Use EM:
    • E-step: responsibilities rni=αipi(zn)jαjpj(zn)r_{ni} = \dfrac{\alpha_i p_i(z_n)}{\sum_j \alpha_j p_j(z_n)}.
    • M-step: αi=1Nnrni\alpha_i = \frac{1}{N}\sum_n r_{ni}; update σhit,λ\sigma_{\text{hit}}, \lambda via weighted MLE.
Constrain αi0\alpha_i \ge 0, αi=1\sum\alpha_i=1.

Dynamic Obstacles

Augment forward model with dynamic layer mDm_D: p(zz^,m,mD)=(1β)p(zz^,m)+βpdyn(z),p(z \mid \hat z, m, m_D) = (1-\beta) p(z \mid \hat z, m) + \beta p_{\text{dyn}}(z), where pdynp_{\text{dyn}} could emphasize short / random returns; β\beta from motion segmentation.
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.