  This paper presents a methodology for constructing Control Barrier Functions
(CBFs) that proactively consider the future safety of a system along a nominal
trajectory, and effect corrective action before the trajectory leaves a
designated safe set. Specifically, this paper presents a systematic approach
for propagating a nominal trajectory on a receding horizon, and then encoding
the future safety of this trajectory into a CBF. If the propagated trajectory
is unsafe, then a controller satisfying the CBF condition will modify the
nominal trajectory before the trajectory becomes unsafe. Compared to existing
CBF techniques, this strategy is proactive rather than reactive and thus
potentially results in smaller modifications to the nominal trajectory. The
proposed strategy is shown to be provably safe, and then is demonstrated in
simulated scenarios where it would otherwise be difficult to construct a
traditional CBF. In simulation, the predictive CBF results in less modification
to the nominal trajectory and smaller control inputs than a traditional CBF,
and faster computations than a nonlinear model predictive control approach.
