Wandelscript is a robust framework designed for defining, parsing, type checking, and executing advanced scripting capabilities for robot automation. It integrates grammar-based parsing, runtime execution, and plugin extensibility, making it suitable for complex robot programming scenarios.
- Grammar Parsing: The Wandelscript grammar is defined and easily extensible. It is powered by ANTLR4 to generate efficient parsers.
- Runtime Execution: Includes a runtime environment capable of executing Wandelscript programs with support for custom plugins and built-in functions.
- Extensible Plugins: Supports adding custom functionality via Python-based plugins for robot control, kinematics, vision, and more.
- Built-in Libraries: Provides libraries for mathematical operations, string manipulations, pose interpolations, and interaction with industrial systems like OPC UA.
- Examples: Comprehensive example scripts are available to demonstrate use cases such as collision handling, multi-robot coordination, and TCP manipulation.
- Testing: Includes a set of unit tests to validate the functionality of the built-in components and plugins.
The Wandelscript grammar is defined under wandelscript/grammar/
. To generate the parser, use the
following command:
cd wandelscript/grammar && poetry run antlr4 -Dlanguage=Python3 -visitor *.g4
The repository is organized as follows:
- Core Modules:
runtime.py
: Implements the execution context for Wandelscript.exception.py
: Defines custom exceptions for Wandelscript.models.py
: Contains data models for serialization and execution.metamodel.py
: Facilitates runtime extensions and plugin registration.
- Built-ins: Found under
wandelscript/builtins
, these are pre-defined plugins for:- Math operations (
math.py
) - String manipulation (
string.py
) - Robotics control (
controller.py
)
- Math operations (
- Examples: Demonstrates Wandelscript's capabilities with real-world use cases in
wandelscript/examples/
.
The project uses the Poetry dependency manager. Install the dependencies using:
poetry install
Key dependencies:
- Python 3.10+
- ANTLR4 for grammar processing
- wandelbots-nova for data types and interaction with robots
- Pydantic for data validation
- CLI Tool: Use the
wandelscript
CLI tool - Extend Functionality: Add new plugins or built-ins to customize the scripting environment.
- Examples: Refer to the
/examples
folder for sample Wandelscript files.
There is a CLI tool wandelscript
, as well as its shortcut pendant ws
that gets installed into
the Python environment when calling poetry install
.
Example uses of the wandelscript
CLI tool:
poetry run wandelscript --help
poetry run wandelscript my_script.cli
poetry run ws my_script.cli # shortcut alternative to `poetry run wandelscript`
See poetry run wandelscript --help
for information about available CLI arguments.
Contributions are welcome! Here’s how you can help:
- Report bugs or suggest features via the issue tracker.
- Submit pull requests to improve code or documentation.
- Share example use cases or applications of Wandelscript.
Authors and contributors:
- Christoph Biering: Email
- Daniel Vorberg
- Dirk Sonnemann: Email
- Andreas Langenhagen: Email
- Mahsum Demir: Email
Feel free to reach out with questions, suggestions, or feedback!