# rafcon **Repository Path**: mirrors_DLR-RM/rafcon ## Basic Information - **Project Name**: rafcon - **Description**: RAFCON (RMC advanced flow control) uses hierarchical state machines, featuring concurrent state execution, to represent robot programs. It ships with a graphical user interface supporting the creation of state machines and contains IDE like debugging mechanisms. Alternatively, state machines can programmatically be generated using RAFCON's API. - **Primary Language**: Unknown - **License**: EPL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-02-25 - **Last Updated**: 2026-07-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RAFCON

Screenshot showing RAFCON with a big state machine

- **Documentation:** Hosted on [Read the Docs](https://rafcon.readthedocs.io/en/latest/) - **Homepage:** [DLR-RM.github.io/RAFCON/](https://dlr-rm.github.io/RAFCON/) - **License:** [EPL](https://github.com/DLR-RM/RAFCON/blob/master/LICENSE.md) - **Cheatsheet:** [Download Cheatsheet](doc/_static/rafcon_cheatsheet.pdf) - **Usage with ROS2:** [RAFCON with ROS2 Tutorial](https://rafcon.readthedocs.io/en/latest/tutorials.html#using-ros2-with-rafcon) ## Develop your robotic tasks using an intuitive graphical user interface RAFCON uses hierarchical state machines, featuring concurrent state execution, to represent robot programs. It ships with a graphical user interface supporting the creation of state machines and contains IDE-like debugging mechanisms. Alternatively, state machines can be programmatically generated using RAFCON's API. **Universal application** > RAFCON is written in Python, can be extended with plugins and is hard- and middleware-independent. **Visual programming** > The sophisticated graphical editor can be used for the creation, execution, and debugging of state machines. **Collaborative working** > Share and reuse your state machines in the form of libraries, stored as JSON strings in text files.

Example on how to create a simple state machine

## Installation preparations Before installing RAFCON, Python >=3.9, pip, and setuptools are required on your system. Most of the other dependencies are automatically resolved by pip/setuptools, but not all of them. Those need to be installed manually, too. ### General requirements - Python >=3.9 - pip (recent version required) - pdm (recent version required) ### Installation requirements *Tested under Ubuntu 24.04* ```bash sudo apt update sudo apt install python3-dev python3-pip python3-setuptools sudo apt install libcairo2-dev pkg-config libgirepository1.0-dev sudo apt install gir1.2-gtk-3.0 gir1.2-gtksource-3.0 ``` ## Installing RAFCON *Tested under Ubuntu 24.04* It is recommended to install RAFCON inside a virtual environment. Once created, make sure setuptools is installed: ```bash pip install "setuptools<81" ``` Then, simply install RAFCON with: ```bash pip install rafcon --user ``` The `--user` flag is optional. If not set, RAFCON is installed globally (in this case you normally need root privileges). If you run into any problems installing and starting RAFCON, **please let us know in the issues!** Of course, you can also directly use the RAFCON sources from GitHub. ```bash cd /install/directory git clone https://github.com/DLR-RM/RAFCON.git rafcon ``` ## Start RAFCON No matter which installation option you choose, RAFCON can be started from any location (make sure `/usr/local/bin` or `~/.local/bin` is in your `PATH` environment variable): ```bash rafcon ``` On a multi-Python setup, start RAFCON using: ```bash python -m rafcon ``` ## Uninstallation If you want to uninstall RAFCON, all you need to do is call ```bash pip uninstall rafcon ``` ## Funding This project has received public funding from the **European Union** NextGenerationEU within the Important Project of Common European Interest – Cloud Infrastructures and Services (IPCEI-CIS) under grant agreement 13IPC034 (*[ROX](https://www.project-rox.ai/en/)* project).

Bundesministerium für Wirtschaft und Energie (BMWE)-EU and secunet funding logo