A computer-implemented method of planning a path for a mobile robot in the presence of K obstacles (01,02) where K is at least one, comprising: - determining, for each of the K obstacles (01, 02), a shape Bk and a density function p k (x) representing the probabilistic position of said obstacle; - computing at least one of the following path-independent functions: ∘ G σ = 1 2 ∑ k ∂ B k, σ ∗ p k where ∂B k,σ is a delta-function ridge along a bounding contour of the shape B K of the obstacle k and p K is the density function representing the probabilistic position of the obstacle k, or ∘ G = ∑ k λ k I Bk * p k where λ k = 1 area B k, I Bk is the indicator function of the shape Bk of the obstacle k and p k is the density function representing the probabilistic position of the obstacle k, - repeating the following steps for at least two different paths (C1, C2, C3): ∘ determining a swept area A of the mobile robot along the path within a given time interval, and ∘ calculating an upper bound on the total probability of obstacle collision between the mobile robot and the K obstacles (01,02), by integrating said at least one path-independent function over the swept area A as: ▪ ∫ ∂A σ ( r) G σ ( r) where ∂A σ (r) approximates a delta-function ridge along a bounding contour of the swept area A, or ▪ ∫ I A ( r) G ( r) where I A is the indicator function for the swept area A, wherein the path independent function is independent of each path and the upper bound is computed for each path without recomputing the path independent-function; and - selecting, from the at least two different paths based on the calculated upper bounds, a path for navigating the mobile robot through the obstacles (01, 02). - determining, for each of the K obstacles (01, 02), a shape Bk and a density function p k (x) representing the probabilistic position of said obstacle; - computing at least one of the following path-independent functions: ∘ G σ = 1 2 ∑ k ∂ B k, σ ∗ p k where ∂B k,σ is a delta-function ridge along a bounding contour of the shape B K of the obstacle k and p K is the density function representing the probabilistic position of the obstacle k, or ∘ G = ∑ k λ k I Bk * p k where λ k = 1 area B k, I Bk is the indicator function of the shape Bk of the obstacle k and p k is the density function representing the probabilistic position of the obstacle k, ∘ G σ = 1 2 ∑ k ∂ B k, σ ∗ p k where ∂B k,σ is a delta-function ridge along a bounding contour of the shape B K of the obstacle k and p K is the density function representing the probabilistic position of the obstacle k, or ∘ G = ∑ k λ k I Bk * p k where λ k = 1 area B k, I Bk is the indicator function of the shape Bk of the obstacle k and p k is the density function representing the probabilistic position of the obstacle k, - repeating the following steps for at least two different paths (C1, C2, C3): ∘ determining a swept area A of the mobile robot along the path within a given time interval, and ∘ calculating an upper bound on the total probability of obstacle collision between the mobile robot and the K obstacles (01,02), by integrating said at least one path-independent function over the swept area A as: ▪ ∫ ∂A σ ( r) G σ ( r) where ∂A σ (r) approximates a delta-function ridge along a bounding contour of the swept area A, or ▪ ∫ I A ( r) G ( r) where I A is the indicator function for the swept area A, ∘ determining a swept area A of the mobile robot along the path within a given time interval, and ∘ calculating an upper bound on the total probability of obstacle collision between the mobile robot and the K obstacles (01,02), by integrating said at least one path-independent function over the swept area A as: ▪ ∫ ∂A σ ( r) G σ ( r) where ∂A σ (r) approximates a delta-function ridge along a bounding contour of the swept area A, or ▪ ∫ I A ( r) G ( r) where I A is the indicator function for the swept area A, ▪ ∫ ∂A σ ( r) G σ ( r) where ∂A σ (r) approximates a delta-function ridge along a bounding contour of the swept area A, or ▪ ∫ I A ( r) G ( r) where I A is the indicator function for the swept area A, - selecting, from the at least two different paths based on the calculated upper bounds, a path for navigating the mobile robot through the obstacles (01, 02).