Liking cljdoc? Tell your friends :D

wikla.core

Behavior Tree basic building blocks.

wikla.core aims to follow terminology outlined in Towards a Unified Behavior Trees Framework for Robot Control by Marzinotto et al. (2014), especially sections I-IV.

Whenever a tick is done it yields with a Result. That Result is tied to Status flag carried by the node and contains the modified state. When root returns a Result -- the tick is done.

Leaf nodes get ticked:

(tick leaf-node stash)
=> Result w/ leaf-node' and stash'

(tick! leaf-node)
=> Result w/ leaf-node'

Composite nodes provide children for execution via part call:

(part composite-node)
=> child-node

And compute Result when their child comes back carried by Result:

(join composite-node Result w/ child-node' and optional stash')
=> Result w/ composite-node' and optional stash'

All this is pure by default, using only immutable data.

For completeness a fourth status is introduced: Ready. It's the default status for all freshly created nodes that were not yet ticked and can be used to ask the Ticker for immediate re-execution during the tick. Unlike Success, Failure or Running it will not be reported outside of the Ticker. The source paper calls it NotTicked and only uses it for initial state.

Behavior Tree basic building blocks.

wikla.core aims to follow terminology outlined in _Towards a Unified Behavior
Trees Framework for Robot Control_ by Marzinotto et al. (2014), especially
sections I-IV.

Whenever a tick is done it yields with a Result. That Result is tied to Status
flag carried by the node and contains the modified state. When root returns
a Result -- the tick is done.

Leaf nodes get ticked:

    (tick leaf-node stash)
    => Result w/ leaf-node' and stash'

    (tick! leaf-node)
    => Result w/ leaf-node'

Composite nodes provide children for execution via part call:

    (part composite-node)
    => child-node

And compute Result when their child comes back carried by Result:

    (join composite-node Result w/ child-node' and optional stash')
    => Result w/ composite-node' and optional stash'

All this is pure by default, using only immutable data.

For completeness a fourth status is introduced: Ready. It's the default status
for all freshly created nodes that were not yet ticked and can be used to ask
the Ticker for immediate re-execution during the tick. Unlike Success, Failure
or Running it will not be reported outside of the Ticker. The source paper
calls it NotTicked and only uses it for initial state.
raw docstring

wikla.kit

Tools that make your life easier while working with wikla.

Tools that make your life easier while working with wikla.
raw docstring

wikla.zip

Zippers over nodes!

One and only thing you need to turn built-in Nodes into zippers is the zipper function provided by this namespace. To allow custom nodes implement Zip protocol accordingly.

Protip: zip-make-node expects children to be in shape of zip-children result.

Zippers over nodes!

One and only thing you need to turn built-in Nodes into zippers is the
`zipper` function provided by this namespace. To allow custom nodes implement
Zip protocol accordingly.

Protip: zip-make-node expects children to be in shape of zip-children result.
raw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close