Wandelscript
Introduction
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.
Features
- 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.
Grammar
The Wandelscript grammar is defined under wandelscript/grammar/. To generate the parser, use the
following command:
cd wandelscript/grammar && uv run antlr4 -Dlanguage=Python3 -visitor *.g4
Structure
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/.
Dependencies
The project uses the uv package manager. Install the dependencies using:
uv sync
Key dependencies:
- Python 3.10+
- ANTLR4 for grammar processing
- wandelbots-nova for data types and interaction with robots
- Pydantic for data validation
Usage
- CLI Tool: Use the
wandelscriptCLI tool - Extend Functionality: Add new plugins or built-ins to customize the scripting environment.
- Examples: Refer to the
/examplesfolder for sample Wandelscript files.
CLI Tool
There is a CLI tool wandelscript, as well as its shortcut pendant ws that gets installed into
the Python environment when calling uv sync.
Example uses of the wandelscript CLI tool:
uv run wandelscript --help
uv run wandelscript my_script.cli
uv run ws my_script.cli # shortcut alternative to `uv run wandelscript`
See uv run wandelscript --help for information about available CLI arguments.
Contributing
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.
Contact
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!
Metadata
Release files for wandelscript 0.9.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wandelscript-0.9.0.tar.gz | 114.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wandelscript-0.9.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 276.3 kB
Release files / wandelscript-0.9.0.tar.gz
| Download URL | wandelscript-0.9.0.tar.gz |
|---|---|
| Size | 114.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
073ec2c5a9af160ab533bad75bc1f559da3a997d52256d7f2707ddeee1902d78
|
|
BLAKE2b-256 checksum How to use checksums |
8ff240ffc0571fcb304206a5406b88838309a613b0b78e8ff656741c14168f11
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / wandelscript-0.9.0-py3-none-any.whl
| Download URL | wandelscript-0.9.0-py3-none-any.whl |
|---|---|
| Size | 161.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6d584ded4d9ab61d68b0f2a5e3501a14321dccb4f63cf5c41b4e9484c3943530
|
|
BLAKE2b-256 checksum How to use checksums |
d5c17696cff6cb944b8348709701c3c03a6782523b8c11215d5ea526695d6f7d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|