Autonomous UAV flight through cluttered and partially unknown environments requires reasoning not only about observed obstacles but also about occluded regions that the sensor cannot observe. We present OA-MPPI, an obstacle- and occlusion-aware extension of Model Predictive Path Integral (MPPI) control for quadrotor flight that accounts for potential moving agents emerging from these regions into the vehicle's path. At every planning step, we extract a 3D occlusion boundary from the online occupancy map and use it to model the regions that hidden agents could reach over the prediction horizon. We penalize trajectories that enter these expanding regions within MPPI rollouts generated using nonlinear quadrotor dynamics and accounting for individual rotor thrust limits. We validate the proposed approach in simulation and hardware flight experiments, with the complete pipeline running onboard the vehicle in real time. Results show increased clearance from occlusion boundaries compared to baseline MPPI in both settings, as well as avoidance of an agent emerging from occlusion in simulation.
Figures & tables
Fig. 1: Example of OA-MPPI in operation. Top: experimental setup. Bottom: occupancy map and sampled rollouts. Red voxels denote occupied space, and orange voxels mark the extracted occlusion boundary. Green lines indicate collision-free rollouts, yellow lines indicate rollouts entering an expanding keep-out region, and red lines indicate rollouts colliding with mapped obstacles. The green sphere marks the goal. Ground voxels are omitted in the plot for clarity.
Fig. 2: Overview of the OA-MPPI framework. “Ref.” denotes the reference trajectory sent to the controller.
MPPI param.
Cost definition constants
H
30
wgoal
0.1
K
500
wgoalterm
5.0
λ
0.1
wcol
50.0
Δt
0.1s
wvel
15.0
Σ
diag(0.60,0.15,0.15,0.05)
R
diag(0.01,0.05,0.05,0.10)
TABLE I: MPPI horizon/sampling parameters and cost weights used.
Fig. 3: Occlusion boundary extraction for three obstacles surrounding the drone. Top: top-down view; blue line point to the nearest occlusion voxel (red), with sphere color indicating the keep-out radius at increasing horizon times, from t=0 s (blue) to t=3 s (full horizon H , red). Bottom: 3D view; yellow lines mark the occlusion lines of sight, with the expanding keep-out region (green concentric spheres) around the closest boundary point.
Fig. 4: Simulation of an agent emerging from occlusion. The drone collides with the agent under baseline MPPI (gray), while OA-MPPI (blue) avoids the collision. The agent is shown as a purple sphere and speed 0.4 m/s. Top: t=2.8 s; bottom: t=3.9 s.
Fig. 5: Top: simulation setup for flight over an occluding box. Bottom: side view in the xz -plane at t=2.1 s. OA-MPPI (blue) takes a higher path over the box than baseline MPPI (gray), increasing clearance from the occlusion boundary.
Fig. 6: Experiments across the three test scenarios: single wall (left), pillar (middle), and two-wall corridor (right). Top: physical setup, with the drone flying from its start position toward the goal near or behind the occluding structure(s). Bottom: top-down occupancy map for the same run, showing the occlusion-agnostic (gray) and occlusion-aware (blue) trajectories from start (green dot) to goal (yellow star), with concentric contours marking the time-growing keep-out radius rkeep(t) around the occlusion boundary and dashed orange lines indicating the occlusion lines of sight. The drone shape is only indicated on the occlusion-agnostic line for clarity. The goal is reached if within 0.5 m from it.
Scenario
Method
Time [ s ]
Dist. [ m ]
Vel. [ ms−1 ]
Single wall
MPPI
2.49
2.93
1.18
OA-MPPI
4.19
3.76
0.91
Pillar
MPPI
3.58
3.77
1.11
OA-MPPI
3.74
4.21
1.14
Two walls
MPPI
3.06
3.52
1.15
OA-MPPI
3.75
3.85
1.03
TABLE II: Comparison of baseline MPPI and OA-MPPI across three flight scenarios.