# Wandelbots Nova (Pro)

{% hint style="warning" %}
This interface is currently in Beta and included in realvirtual.io Professional since Version 6.1.0
{% endhint %}

## Overview

This documentation provides a guide for utilizing the Wandelbots NOVA Interface within the realvirtual.io framework for automation concept design, virtual commissioning, and 3D-HMI. This interface facilitates seamless communication and control of robotic systems through the Wandelbots NOVA API.

<figure><img src="/files/ZUte78vau5l8tox1EAhX" alt=""><figcaption><p>Wandelbots NOVA Interface</p></figcaption></figure>

<figure><img src="/files/sYNyx4On7NazYGy6hITH" alt=""><figcaption><p>NOVA controlling the Demo scene</p></figcaption></figure>

Wandelbots NOVA provides additional value in allowing users to leverage the robot program they have created and let it run on the phyiscal robot using Wandelbots NOVA.

**Features:**

* **Signal Handling:** Import and manage input/output signals dynamically.
* **Robot Motion Control:** Supports jogging, target creation, and program execution.
* **Teach Mode:** Real-time robot teaching with a dedicated mode for setting targets within the Unity Editor.
* **Program Execution:** Execute robotic programs with built-in templating and monitoring of current robot position.

## Installation and Requirements

Wandelbots NOVA requires an installation, whether used locally or hosted.

"Check out the Wandelbots NOVA documentation for further information."

(The docs are currently not public. )

Contact Wandelbots to get more information and access to Wandelbots NOVA. (<https://www.wandelbots.com/contact>)

## Robot Preparation

The demo scene includes a **Fanuc CRX-10iA\_L Robot** prefab, which serves as a basis for configuring other robots. To prepare a new robot, certain requirements must be met to ensure compatibility with the Wandelbots NOVA Interface and the realvirtual.io framework.

### Requirements for Configuring a New Robot

* **Robot Prefab**
  * Use the **Fanuc CRX-10iA\_L Robot prefab** as a starting template.
  * Adjust dimensions, structure, or components based on the specific robot you are configuring.
* **Drives for Robot Axis**
  * Every axis pivot point of the robot must include a **Drive** component.
  * The Drive positive direction needs to point in the positive axis jog direction.
* **Target Parent Setup**
  * The **0 point** of the **Target parent** GameObject must align with the robot's **0 point** (base of the robot).
  * This ensures accurate positioning and motion planning.
* **Hierarchy and Pivot Points**
  * Maintain a clean and structured hierarchy for the robot parts.
  * Ensure pivot points for each axis are correctly positioned relative to the physical robot's design.
* **TCP (Tool Center Point)**
  * Define the robot's TCP as a separate GameObject attached to the robot.
  * The TCP represents the point of interaction for tools or end effectors.
* **Robot Targets**

  * Ensure all targets are created under the specified **Robot Target Root**.
  * Targets should be defined relative to the TCP for precise motion control.
  * Targets needs to be in a parent correctly defining the logical 0 point of the robot as shown in this picture:

  <figure><img src="/files/atV38OyR5OfqsL1ypWFt" alt=""><figcaption><p>Robot Targets 0 Point</p></figcaption></figure>

{% hint style="warning" %}
After preparing the robot in the Unity Editor, it is crucial to save its **0 Position** by pressing "**Save 0 Pos**" before starting any operations. This step ensures that you can revert the robot to its default position if issues arise during the teaching process in Unity Editor mode.
{% endhint %}

## Importing and Managing Signals

To import signals, click the **Import Signals** button in the Wandelbots NOVA Interface. This will load all available signals, including standard ones. For better performance, delete any unneeded signals to reduce overhead and keep the setup efficient.

## Teaching the Robot in Unity Editor

The Wandelbots interface allows teaching robot targets directly in the Unity Editor without switching between Edit and Play modes. You can use the **NOVATarget Prefab**, placing it under the **Target Root**, to define positions for the robot.

### Target modes

Selecting or moving a target makes the robot automatically jump to the specified position, which works in **Pose Mode** or **Joint Mode**.

* **Pose Mode:** Defines a target pose (position and orientation). The robot moves to the nearest solution during runtime, though multiple solutions can be previewed in the Editor.
* **Joint Mode:** Defines a specific joint configuration (axis angles). This fixed solution is transferred to the robot program, ensuring precise movements.
* **Fixed Solution:** Generated when saving a position in **Teach Mode**, locking the robot to an exact configuration without allowing pose changes.

### NOVATarget Properties

<figure><img src="/files/rZyIgU0dRkTfpM6YDeHg" alt=""><figcaption><p>Robot Target</p></figcaption></figure>

* **Follow In Edit Mode:** Allows the robot to follow target movements in the Editor.
* **Display Axis:** Toggles visibility of target coordinate axes.
* **Display Gripper Ghost:** Shows a transparent gripper representation at the target.
* **Hide Axis Gripper On:** Hides axis and gripper visuals during specific operations.
* **Axis:** Assigns the axis visual (GameObject).
* **Gripper Ghost:** Assigns the gripper ghost visual (GameObject).
* **Target Mode:** Defines the interaction mode:
  * **Pose Mode:** Moves to a pose using the nearest solution.
  * **Joint Mode:** Fixes specific joint angles.
  * **Fixed Solutions:** Locks the robot to an exact pose.
* **Solution:** Displays and changes the current solution.
* **Pose:** The current Pose in Wandelscript format.
* **Joints:** The current Joint solution in Wandelscript format.
* **Update Solutions:** Recalculates available solutions.
* **Move to Target:** Moves the robot to the defined target.

### Teach Mode

In **Teach Mode**, the robot automatically aligns with the current **Wandelbots NOVA Status**. This mode allows precise control over the robot's positioning and target creation.

* **Speed Control:** Define maximum linear and rotational speeds for movements (in mm/s or Degrees / s).
* **Jogging:** Adjust all linear and rotational axes manually.
* **Create Target:** Use the **Create Target** button to generate a **NOVATarget** in the **Fixed Solution** configuration, ensuring the robot is locked to the exact saved position.

<figure><img src="/files/eSd5aLZvHSmTDrfYvW9a" alt=""><figcaption><p>Teach Mode</p></figcaption></figure>

## Robot Programms

Wandelscript offers a high-level programming language to control robots. It is easy to learn and use, especially if you're familiar with Python. Wandelscript is a domain-specific language that is designed to be used with Wandelbots NOVA. You can find some Wandelscript examples here: <https://github.com/wandelbotsgmbh/wandelscript-examples>

### Wandelscript Templates

You can create a standard robot program with placeholders (e.g., `{Targetname}`) to streamline the integration of robot targets. This approach allows dynamic target updates without manually modifying the robot program.

<figure><img src="/files/yrnCE0Ap3XomUFWj4m2e" alt=""><figcaption><p>Example Wandelscript template with Placeholders</p></figcaption></figure>

* **Placeholder Use:** Define placeholders like `{Targetname}` in the program template.
* **Automatic Target Insertion:** When starting the robot program via realvirtual, all targets (joint or pose definitions) will be inserted automatically into the program.
* **Dynamic Updates:** Adjust targets in the Unity Editor without manually adapting the program.
* **Program Definition:** One program can be assigned in the interface properties.
* **Start Program:** Press the **Start Program** button to execute the robot program automatically.

### Starting Programms with Signals

The **WandelscriptRunner** component enables execution of different robot program templates via the **WandelscriptInterface**. Assign a robot program to **Wandelscript**, a **PLCOutput** to **Start Wandelscript** to trigger the program, and optionally configure **Wandelscript Is Running** and **Wandelscript Finished** with **PLCInput** signals to monitor the program's execution status. This allows dynamic triggering and management of robot programs through PLC signals.

<figure><img src="/files/axO20eBP1IoVXBTbAVSj" alt=""><figcaption><p>Wandelscript Runner</p></figcaption></figure>

## Interface Properties

#### **Active**

Defines in which modes the interface should be acive. Check[ Connection Status](/basics/runtime-ui.md#connection-status) for more information.

#### **Wandelbots Server**

URL of the Wandelbots NOVA server. Can be a local or a cloud instance (e.g. `http://172.20.125.85`) for local instance.

#### **Motion Group**

Identifier for the robot's motion group (e.g. `1@fanuc`)

#### **Username**

The username used for authentication with the Wandelbots server.

#### **Password**

The password used for authentication with the Wandelbots server.

#### **Access Token**

Token for authentication, overriding `Username` and `Password`. Must be used for cloud instances.

#### **Cell**

Identifier for the robotic cell (standard is `cell`).

#### **Debug Mode**

Enables detailed debug logging in the Unity console. Turn it on on connection problems.

#### **Cycle Time (ms)**

Time interval for state updates from the server (standard 20ms).

#### **Start Program On Simulation**

Automatically starts the program when the simulation begins.

#### **Loop Program**

Enables looping of the executed program.

#### **Program Timeout (s)**

Timeout period for program execution.

#### **Program Template**

Text asset containing the template code for the robot program.

#### **Program Executed**

Text asset where the executed program code is saved.

#### **Robot Target Prefab**

Prefab used for creating new robot targets in Teach Mode.

#### **TCP**

GameObject representing the robot's Tool Center Point.

#### **Robot Target Root**

Parent GameObject for all created robot targets.

#### **Coordinate System Prefab**

Prefab for visualizing the robot's coordinate system in Teach Mode.

#### **Controller**

Name of the robot controller (read-only).

#### **Inputs**

Number of inputs available in the robot controller.

#### **Outputs**

Number of outputs available in the robot controller.

#### **Program Is Running**

Indicates if a program is currently running.

#### **Teach Mode**

Indicates if Teach Mode is currently active.

1.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.realvirtual.io/components-and-scripts/interfaces/wandelbots-nova-pro.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
