Prerequisites
Yay, you're about to start developing with TypeScript! 🚀
Using the Typescript SDK you can develop beautiful custom UIs leveraging modern web development technologies like React.
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 Typescript quickstart guide: The quickstart page guides you through the process of creating a new application using the Wandelbots CLI tool.
System requirements
Ensure that your system meets the following requirements:
- Node.js 20.13.0 or later installed. Download here (opens in a new tab).
- Operating systems: macOS, Windows (excluding WSL), or Linux.
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.
Prerequisite knowledge
This guide assumes you have a basic understanding of React and JavaScript. If you're new to React, we recommend completing the React Foundations (opens in a new tab) course first to learn React fundamentals.
Furthermore, we recommend using the following frameworks with Typescript as a development language.
It's important to read the linked documentation of those frameworks to get an understanding on how to adapt the application code. Follow the Next.js tutorial (opens in a new tab) to get a good understanding on how our app is built. The application code generally follows the recommendations and best practices of those chosen frameworks.
The following concepts are especially important to get used to: Next.js Routing, Next.js Server Action, Material UI Theming.
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.
Component | Description | Location | Language |
---|---|---|---|
wandelbots-js | A Javascript library providing convenient access to the Wandelbots NOVA API. | Github (opens in a new tab), npmjs (opens in a new tab) | TypeScript |
wandelbots-js-react-components | A collection of ready-made React UI components based on MaterialUI and React Three Fiber to use with Wandelbots NOVA. | Github (opens in a new tab), npmjs (opens in a new tab) | TypeScript |
wandelbots-api-client (JS) | A Javascript client providing access to the NOVA API. | npmjs (opens in a new tab) | TypeScript |
storybook | Overview over the components from react-components | Github (opens in a new tab) | TypeScript |
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).
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.
Standard | Example |
---|---|
DIN EN ISO 10218-1 | In 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.
Standard | Example |
---|---|
DIN EN ISO 10218-1 | Status field in the UI |
Standard | Example |
---|---|
ISO 7000 | Automatic 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.
Standard | Example |
---|---|
DIN EN ISO 10218-1 | Popups |
Switching between devices
Switching between control devices must be an active decision made by the user.
Standard | Example |
---|---|
DIN EN ISO 60204 | via a button in the UI |
Activation
Activating a robot can never be done automatically. It must be an active decision made by the user.
Standard | Example |
---|---|
DIN EN ISO 10218-1 | via a button in the UI |
Velocity
The robot's TCP velocity must be adjustable.
Standard | Example |
---|---|
DIN EN ISO 10218-1 | via a slider in the UI |
Authentication
Technical components must have limited access for unauthorized users.
Standard | Example |
---|---|
DIN EN ISO 60204 | Login credentials |
Emergency stop
Resetting an emergency stop must be an active decision made by the user. Never reset an emergency stop automatically.
Standard | Example |
---|---|
ISO 13850:2015 | manual action |
Resets of emergency stops can't result in machine reboots, actions or movements.
Standard | Example |
---|---|
ISO 13850:2015 | Interrupted movements have to be restarted after an e-stop has been triggered. |
Communication losses
Communication losses between components must result in a safety stop.
Standard | Example |
---|---|
DIN EN ISO 10218-1 | The ethernet connection gets lost and the robot immediately stops moving. |
Restored communication can't result in machine reboots, actions or movements.
Standard | Example |
---|---|
DIN EN ISO 10218-1 | Interrupted 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.