  There are many application fields for robotic systems including service
robotics, search and rescue missions, industry and space robotics. As the
scenarios in these areas grow more and more complex, there is a high demand for
powerful tools to efficiently program heterogeneous robotic systems. Therefore,
we created RAFCON, a graphical tool to develop robotic tasks and to be used for
mission control by remotely monitoring the execution of the tasks. To define
the tasks, we use state machines which support hierarchies and concurrency.
Together with a library concept, even complex scenarios can be handled
gracefully. RAFCON supports sophisticated debugging functionality and tightly
integrates error handling and recovery mechanisms. A GUI with a powerful state
machine editor makes intuitive, visual programming and fast prototyping
possible. We demonstrated the capabilities of our tool in the SpaceBotCamp
national robotic competition, in which our mobile robot solved all exploration
and assembly challenges fully autonomously. It is therefore also a promising
tool for various RoboCup leagues.
