Wandelbots Nova (Pro)
Controlling real robots from Unity and realvirtual.io
This interface is currently in Beta and included in realvirtual.io Professional since Version 6.1.0
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.


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:
Robot Targets 0 Point
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.
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

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.

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.

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.

Interface Properties
Active
Defines in which modes the interface should be acive. Check 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.
Last updated