Functional autonomous systems often realize complex tasks by utilizing state
machines comprised of discrete primitive behaviors and transitions between
these behaviors. This architecture has been widely studied in the context of
quasi-static and dynamics-independent systems. However, applications of this
concept to dynamical systems are relatively sparse, despite extensive research
on individual dynamic primitive behaviors, which we refer to as "motion
primitives." This paper formalizes a process to determine dynamic-state aware
conditions for transitions between motion primitives in the context of safety.
The result is framed as a "motion primitive graph" that can be traversed by
standard graph search and planning algorithms to realize functional autonomy.
To demonstrate this framework, dynamic motion primitives -- including standing
up, walking, and jumping -- and the transitions between these behaviors are
experimentally realized on a quadrupedal robot