Wandelbots Nova
Controlling real robots from Unity and realvirtual.io
Last updated
Controlling real robots from Unity and realvirtual.io
Last updated
This interface is currently in Beta and included in realvirtual.io Professional since Version 6.1.0
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.
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)
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.
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:
After preparing the robot in the Unity Editor, it is crucial to save its 0 Position 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.
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.
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.
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.
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.
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.
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
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.
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.
Defines in which modes the interface should be acive. Check Connection Status for more information.
URL of the Wandelbots NOVA server. Can be a local or a cloud instance (e.g. http://172.20.125.85
) for local instance.
Identifier for the robot's motion group (e.g. 1@fanuc
)
The username used for authentication with the Wandelbots server.
The password used for authentication with the Wandelbots server.
Token for authentication, overriding Username
and Password
. Must be used for cloud instances.
Identifier for the robotic cell (standard is cell
).
Enables detailed debug logging in the Unity console. Turn it on on connection problems.
Time interval for state updates from the server (standard 20ms).
Automatically starts the program when the simulation begins.
Enables looping of the executed program.
Timeout period for program execution.
Text asset containing the template code for the robot program.
Text asset where the executed program code is saved.
Prefab used for creating new robot targets in Teach Mode.
GameObject representing the robot's Tool Center Point.
Parent GameObject for all created robot targets.
Prefab for visualizing the robot's coordinate system in Teach Mode.
Name of the robot controller (read-only).
Number of inputs available in the robot controller.
Number of outputs available in the robot controller.
Indicates if a program is currently running.
Indicates if Teach Mode is currently active.