3. List of Features¶
In the following, all features of RAFCON are listed and categorized into either Core, GUI, Consistency Check or Misc. All listed features have their own, dedicated unit tests.
3.1. Core Features¶
Features |
Notes |
---|---|
State Machines |
Formal definition |
Hierarchies |
For easy behavior modularization |
Concurrencies |
Barrier and preemptive paradigm |
Library States (Libraries) |
For code reusability |
Data Flows + Data Ports |
For explicit data modeling |
Default Values for Data Ports |
|
Scoped Variable Concept |
Private, scoped and global data |
Every State Machine can be used as Library |
Without any overhead |
Execution Capabilities: |
IDE like debugging mechanism |
|
|
|
|
|
Optionally definable in each state |
|
|
|
|
|
|
|
|
|
|
Remote Monitoring |
Via Monitoring-Plugin |
Dynamic Modifications Possible |
|
API for Programmatic State Machine Generation |
|
Customizable Logging Features |
3.2. GUI Features¶
Features |
Notes |
---|---|
State Machine Visualizer |
Using Gaphas |
State Machine Editor |
|
|
|
|
|
MVC Concept |
|
State Templates |
For fast prototyping |
Separate Visualization of Data Flows |
|
Rearrangeable Ports |
|
Waypoints for Connections |
|
Focusable States |
|
Executing States are Highlighted |
|
Embedded Source Code Editor |
|
Code Syntax Check |
|
Library Tree |
|
State Machine Tree |
Enables easy state selection |
Modification History |
|
Online Execution History |
|
State Description |
Name, ID, type, link to library |
Logging Console View |
|
Design by Professional Interface Designers |
In GTK3, css will be used |
Resizeable, Detachable and Foldable Widgets |
|
Restoring of User Specific GUI Layout |
|
Library Relocation Support Mechanism |
|
Dialog Boxes for User Communication |
|
Menu for Recently Opened State Machines |
|
Properties Window |
|
Session Restore |
|
Shortcut Manager |
|
Library Content Introspection |
i.e. show-content-flag per library state |
Editor Utility Functions: |
|
|
|
|
|
|
|
|
|
|
e.g. connect income/outcome with closest sibling |
3.3. Consistency Checks¶
Features |
Notes |
---|---|
Data Type Check |
|
Data Flow Validity |
|
Hierarchical Consistency |
E.g. no connection to grandparents |
Data Integrity Check During Runtime |
|
Errors in Python Scripts are Caught |
And forwarded to the next states as datum |
Library Interface Consistency |
3.4. Misc Feat¶
Features |
Notes |
---|---|
State Machine Versioning |
Via git |
Human Readable File Format |
json and yaml |
Programmable in Python |
Python 2 (Python 3 in progress) |
Middleware Independent |
Tested with: ros, links and nodes, sensornet, and DDS |
Core and GUI Separated |
Core can run on micro-controller with slim Python setup |
Extensive Documentation |
Via Restructured Text (rst) and Sphinx |
Plugin Concept |
Several plugins available |
Backward Compatibility |
Breaking changes are clearly outlined |
No Memory Leaks |
See test_destruct.py in tests folder |
Continuous Integration |
Buildbot / Jenkins |
Usable in Different Robotic Domains |
Used in: Space, Industry, Service |
Scalability: Tested with >4000 states |
|
Video Tutorials |
Youtube (only one available, more to come) |