Wandelbots Nova (Pro)

Controlling real robots from Unity and realvirtual.io

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 Interface
NOVA controlling the Demo scene

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

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

Robot Target
  • 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.

Teach Mode

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.

Example Wandelscript template with Placeholders
  • 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.

Wandelscript Runner

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