25.2
Python

Prerequisites

Yay, you're about to start developing with Python! 🐍
Using our Python SDK you can leverage existing python libraries, e.g. for machine learning.

Before you start developing you need to know which requirements your system should fulfill, understand the architecture of the Wandelbots NOVA SDK, learn more about specific frameworks, understand which components are used in our template app, and which legal requirements a robotic app should comply to. Then you can dive into the Python quickstart guide: The quickstart page guides you through the process of creating a new application using the Wandelbots CLI tool.

For advanced users, we provide a guide on how to use Jupyter notebooks for prototyping. This guide explains how to use Jupyter notebooks and how to interact with the API.

System requirements

Ensure that your system meets the following requirements:

Architecture

Wandelbots NOVA is a software product that makes it easy to interact with robots.

The main way to communicate with Wandelbots NOVA is a user-facing REST API. The native way to communicate with that API is directly sending REST requests to the server hosting the Wandelbots NOVA installation.
To make the interaction with the server easier for the client, we offer a Python (opens in a new tab) and Typescript (opens in a new tab) package that abstracts the client-server-communication and lets you focus on writing what you actually want to write: cool robot applications.

Keep in mind, however, that a client-server-communication is happening in the background nonetheless.

All API endpoints that are available via REST are also available via the API client. The client can be found and downloaded from the Pypi Package registry (opens in a new tab) or the NPM registry (opens in a new tab). If you want to get an overview over all endpoints the Wandelbots NOVA API offers, open the API Reference on a Wandelbots NOVA cloud instance.

Wandelbots NOVA uses some robot-domain-specific terminology. We recommend to check out the glossary before starting development.

Architecture

Prerequisite knowledge

For this guide, we assume you have a basic understanding of Python (opens in a new tab) and asyncio (opens in a new tab).

pyenv

As a general best practice we recommend the usage of pyenv (opens in a new tab) to keep your system clean when using multiple versions of python.
pyenv helps to provide and maintain several versions of python that do not interfere with each other.
This enables you to easily test your application with several python versions without crossdependencies or bloating your system.

poetry

Poetry (opens in a new tab) is an easy-to-use package and dependency management tool.
With poetry, all dependencies can be denoted in a single file and with a single command be installed.
We recommend using poetry for dependency management and all our sample and template applications rely on it to manage the dependencies.

fastapi

FastAPI (opens in a new tab) is a framwork that enables fast creation and deployment of a python-based server.
This way you can create a server that can be deployed to your IPC and connected to from to the outside.
Our template applications rely on FastAPI to speed up the development of a python server to interact with.
Of course you can also use other means to create a python server within your application.

Discover available components

If you prefer to jump into cold waters by your own, here's an overview on our available components. These are included in our example apps.

ComponentDescriptionLocationLanguage
wandelbots (Python)An opinionated Python client providing convenient interfaces and helpers to quickly get started with Wandelbots NOVA. We recommend to start with this api client first.Github (opens in a new tab), PyPI (opens in a new tab)Python
wandelbots-api-client (Python)An autogenerated Python client which has all stubs and types to communicate with the Wandelbots NOVA API. Use this, when building your own wrappers or abstractions around NOVA.PyPI (opens in a new tab)Python
wandelbots-python-jupyterDeploy an Jupyter notebook on Wandelbots NOVA.Github (opens in a new tab)Python
geometricalgebraA Python library providing mathematical utilities useful in robotics and elsewhere.Github (opens in a new tab), PyPI (opens in a new tab)Python
gamepad-exampleA sample program written in Python, demonstrating how to control a robot with a game pad and the Wandelbots NOVA API.Github (opens in a new tab)Python

Legally required elements

When developing a robotic application, there are certain app elements that are common or even legally required. To support you in your development process, we've collected a set of common standards and legal requirements for robotic applications. Some of these elements are available in our storybook components (opens in a new tab).

notice

The following list is not exhaustive and may vary depending on the country or region you are developing for. Please consult with a legal expert to ensure compliance with all applying laws and regulations.

Wandelbots GmbH is not liable for any legal consequences resulting from the use of this list.

Robot safety state and operating mode

A robotic app must visibly provide information on the robot's status, operating mode and errors at all times.

StandardExample
DIN EN ISO 10218-1In the Wandelbots NOVA core app Robot Pad these standards are fulfilled by the status bar on the top of the screen.

Operating modes must follow a standardized icon list.

Robot control

It must always be made clear by the UI which device is currently controlling the robot.

StandardExample
DIN EN ISO 10218-1Status field in the UI
StandardExample
ISO 7000Automatic and manual modes have standardized symbols.

Singularity

If a robot has reached or will reach a singularity on a planned path, the user must be informed.

StandardExample
DIN EN ISO 10218-1Popups

Switching between devices

Switching between control devices must be an active decision made by the user.

StandardExample
DIN EN ISO 60204via a button in the UI

Activation

Activating a robot can never be done automatically. It must be an active decision made by the user.

StandardExample
DIN EN ISO 10218-1via a button in the UI

Velocity

The robot's TCP velocity must be adjustable.

StandardExample
DIN EN ISO 10218-1via a slider in the UI

Authentication

Technical components must have limited access for unauthorized users.

StandardExample
DIN EN ISO 60204Login credentials

Emergency stop

Resetting an emergency stop must be an active decision made by the user. Never reset an emergency stop automatically.

StandardExample
ISO 13850:2015manual action

Resets of emergency stops can't result in machine reboots, actions or movements.

StandardExample
ISO 13850:2015Interrupted movements have to be restarted after an e-stop has been triggered.

Communication losses

Communication losses between components must result in a safety stop.

StandardExample
DIN EN ISO 10218-1The ethernet connection gets lost and the robot immediately stops moving.

Restored communication can't result in machine reboots, actions or movements.

StandardExample
DIN EN ISO 10218-1Interrupted movements have to be restarted after a connection loss.

Documentation

Robotic applications may fall under the EU Machinery Directive and EU Machinery Regulation. This Directive/Regulation also regulates the technical documentation including risk assessments, user instructions and UI texts. They also determine whether recertification of a machine is required after adding software to it. We strongly recommend consulting with a legal expert to ensure compliance with these regulations.