# Applying norms

> Learn about the legal requirements and best practices for publishing apps on Wandelbots NOVA.

When developing a robotic application, there are certain app elements that are common or even legally required.
To support you in your development process, here's a collection of common standards and legal requirements for robotic applications.
Some of these elements are available in the [Wandelbots storybook components](https://wandelbotsgmbh.github.io/wandelbots-js-react-components/).

> **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.

| 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.
