<> ##aboutstart == About teer == Teer, which stands for task-execution environment for robotics, is a Python library proposing the use of co-routines (called tasks) to implement executives. Teer is an alternative to executives based on state machines such as [[smach]]. Teer provides the following features: * Tasks are written as sequential code in standard Python. * Tasks can wait for a certain duration, for conditions to become true or for the termination of other tasks. * Tasks can create new tasks and kill other tasks. * Tasks can pause or resume other tasks. * Tasks are implemented as continuations (co-routines) using the Python `yield` keyword. * Conditions are evaluated as rarely as possible, avoiding regular polling of their expressions. * Waits use `rospy.Time` and `rospy.Timer`. Compared to state-machines, teer allows to maintain sequential code for sequential actions, using multiple lightweight tasks to implement parallel flows of execution. Compared to multi-threading, the cooperative aspect of co-routines removes synchronisation hazards. ##aboutend == Installation == Installing teer is easy, just clone the git source somewhere in your `ROS_PACKAGE_PATH`: {{{ git clone --recursive git://github.com/ethz-asl/executive_teer.git }}} ##docstart == Documentation == * The [[teer_example_turtle|example package]] provides easy-to-understand examples. * The [[executive_teer/Tutorials|tutorials page]] contains tutorials to get you up to speed building and running your own teer-powered applications. * The [[executive_teer/Documentation|documentation page]] provides an overview of the concepts used in teer. * The [[executive_teer/ChangeList|ChangeList]] shows the changes. ##docend == Report a Bug == You can report a bug on the ROS integration of teer on the [[https://github.com/ethz-asl/executive_teer/issues|stack's bug tracker]]. If you think the bug is in teer itself, please use [[https://github.com/ethz-asl/teer/issues|its own bug tracker]]. ## AUTOGENERATED DON'T DELETE ## CategoryStack