All Projects → DLR-RM → Rafcon

DLR-RM / Rafcon

Licence: epl-1.0
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.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Rafcon

P
The P programming language.
Stars: ✭ 2,309 (+1961.61%)
Mutual labels:  robotics, state-machine
aerial autonomy
Easily extendable package for interacting with and defining state machines for autonomous aerial systems
Stars: ✭ 22 (-80.36%)
Mutual labels:  state-machine, robotics
Behaviortree.cpp
Behavior Trees Library in C++. Batteries included.
Stars: ✭ 793 (+608.04%)
Mutual labels:  robotics, state-machine
Caesar.jl
Robot toolkit: Towards non-parametric and parametric navigation solutions
Stars: ✭ 98 (-12.5%)
Mutual labels:  robotics
Rtabmap
RTAB-Map library and standalone application
Stars: ✭ 1,376 (+1128.57%)
Mutual labels:  robotics
Wechaty
Conversational RPA SDK for Chatbot Makers
Stars: ✭ 11,647 (+10299.11%)
Mutual labels:  robotics
When Ts
When: recombinant design pattern for state machines based on gene expression with a temporal model
Stars: ✭ 112 (+0%)
Mutual labels:  state-machine
Curved Lane Lines
detect curved lane lines using HSV filtering and sliding window search.
Stars: ✭ 100 (-10.71%)
Mutual labels:  robotics
Jungle
An embedded key-value store library specialized for building state machine and log store
Stars: ✭ 110 (-1.79%)
Mutual labels:  state-machine
Door Slam
Distributed, Online, and Outlier Resilient SLAM for Robotic Teams
Stars: ✭ 107 (-4.46%)
Mutual labels:  robotics
List of robot electronics
A curated list of awesome open source electronic resources for robotics
Stars: ✭ 106 (-5.36%)
Mutual labels:  robotics
Flexbe behavior engine
Contains the behavior engine FlexBE.
Stars: ✭ 101 (-9.82%)
Mutual labels:  robotics
Rvo2 3d
Optimal Reciprocal Collision Avoidance in Three Dimensions (C++)
Stars: ✭ 108 (-3.57%)
Mutual labels:  robotics
Evo
Python package for the evaluation of odometry and SLAM
Stars: ✭ 1,373 (+1125.89%)
Mutual labels:  robotics
Robotics setup
Setup Ubuntu 18.04, 16.04 and 14.04 with machine learning and robotics software plus user configuration. Includes ceres tensorflow ros caffe vrep eigen cudnn and cuda plus many more.
Stars: ✭ 110 (-1.79%)
Mutual labels:  robotics
Library
Collection of papers in the field of distributed systems, game theory, cryptography, cryptoeconomics, zero knowledge
Stars: ✭ 100 (-10.71%)
Mutual labels:  state-machine
Robotics Coursework
🤖 Places where you can learn robotics (and stuff like that) online 🤖
Stars: ✭ 1,810 (+1516.07%)
Mutual labels:  robotics
Hsm
Finite state machine library based on the boost hana meta programming library. It follows the principles of the boost msm and boost sml libraries, but tries to reduce own complex meta programming code to a minimum.
Stars: ✭ 106 (-5.36%)
Mutual labels:  state-machine
Grl
Robotics tools in C++11. Implements soft real time arm drivers for Kuka LBR iiwa plus V-REP, ROS, Constrained Optimization based planning, Hand Eye Calibration and Inverse Kinematics integration.
Stars: ✭ 105 (-6.25%)
Mutual labels:  robotics
Qpn
QP-nano real-time embedded framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
Stars: ✭ 107 (-4.46%)
Mutual labels:  state-machine

RAFCON

.. figure:: https://raw.githubusercontent.com/DLR-RM/RAFCON/master/documents/assets/Screenshot_Drill_Skill.png :figwidth: 100% :width: 800px :align: left :alt: Screenshot showing RAFCON with a big state machine :target: documents/assets/Screenshot_Drill_Skill.png?raw=true

  • Documentation: Hosted on Read the Docs <http://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>_

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 programmatically be 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 form of libraries, stored as JSON strings in text files.

.. figure:: https://raw.githubusercontent.com/DLR-RM/RAFCON/master/documents/assets/RAFCON-sm-creation-preview.gif :figwidth: 100% :width: 570px :align: left :alt: Example on how to create a simple state machine

Installation preparations

Before installing RAFCON, Python >=2.7, 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 be be installed manually, too:

Installation requirements for Ubuntu 16.04 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: bash

# rafcon needs gtk > 3.20; the easiest way to install it is installing gnome3
sudo add-apt-repository ppa:gnome3-team/gnome3-staging
sudo add-apt-repository ppa:gnome3-team/gnome3
sudo apt update
sudo apt dist-upgrade

# restart system

sudo apt-get install python-dev python-pip libcairo2-dev gir1.2-gtksource-3.0 python-gi-cairo
sudo -H pip install --upgrade pip
sudo -H pip install --upgrade setuptools

Installation requirements for Ubuntu 18.04 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: bash

sudo apt-get install python-dev python-pip build-essential glade python-gi-cairo sudo -H pip install --upgrade pip sudo -H pip install --upgrade setuptools

General requirements ^^^^^^^^^^^^^^^^^^^^

If you are not using Ubuntu 16.04 or 18.04, please make sure that the following packages are installed:

  • Python >=2.7
  • pip (recent version required: v18 known to be working)
  • python-setuptools (recent version required: v40 known to be working)

Installing RAFCON

.. code-block:: bash

pip install rafcon --user

The --user flag is optional. If not set, RAFCON is installed globally (in this case you normaly need to have root privileges).

If during the installation the error ImportError: No module named cairo occurs, please install pycairo directly via:

.. code-block:: bash

pip install --user "pycairo<2.0.0,>=1.10.0"

If you are using Python 3.4, you will need a pip version <= 8. Run the following command, to downgrade pip:

.. code-block:: bash

pip install --user --upgrade pip==8

Of course you can also directly use the RAFCON sources from GitHub.

.. code-block:: bash

cd /install/directory git clone https://github.com/DLR-RM/RAFCON rafcon

Start RAFCON

No matter which installation option you choose, RAFCON can be started from any location using (make sure /usr/local/bin or ~/.local/bin is in your PATH environment variable):

.. code-block:: bash

rafcon

Uninstallation

If you want to uninstall RAFCON, all you need to do is call

.. code-block:: bash

pip uninstall rafcon

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].