cramph#
cramph is a generic statechart engine. A statechart is a graph of nodes, each running its own small life cycle, whose transitions are conditions over the states of other nodes. cramph provides
nodes with life cycles (not started, running, paused, succeeded, failed, interrupted) and trinary observations,
transition conditions that start, pause, end and reset nodes,
compilation of a statechart into a tick that advances all nodes together,
composite nodes such as
Sequence,Parallel,TryInOrder,TryAllandRepeatUntil, and nodes that choose their child only once they run,generic monitors such as
CountTicks,CountSecondsandPrint,statecharts that take new nodes while they run,
an executor that ticks a statechart, paced in real time, in simulation time, in lockstep with a physics simulation or as fast as possible,
JSON serialization and plotting of statecharts and their execution history.
cramph knows nothing about motion control. giskardpy builds its motion tasks, monitors and goals on top of it.
Getting Started#
Statecharts explains how nodes, conditions and ticks work, and Running a Statechart builds, runs and plots a first statechart.