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.


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


Report a Bug

You can report a bug on the ROS integration of teer on the stack's bug tracker.

If you think the bug is in teer itself, please use its own bug tracker.

Wiki: executive_teer (last edited 2012-03-07 18:04:20 by StephaneMagnenat)