Robotics basics
Wandelbots NOVA assumes some basic knowledge of robotics to comfortably embark on your projects.
This section clarifies key concepts and terminology that come from robotics in general, not from NOVA itself, and aims to bridge any knowledge gaps.
Coordinate systems
Robotic systems use multiple coordinate systems:
- World coordinate system: Represents the robot’s environment
- Base coordinate system: Originates at the robot’s base (first axis)
- Tool coordinate system: Defined relative to the TCP, representing the tool’s frame of reference
These coordinate systems interact to define robot motion and positioning.
Degrees of freedom (DOF)
Degrees of freedom (DoF) is a term used in robotics to describe the number of independent movements a robot can make. For example, a 6DoF robot can move in six different ways: three translational movements for position (X, Y, Z) and three rotational movements for orientation (roll, pitch, yaw).
In the context of Wandelbots NOVA, the term is used to describe the number of joints in a robot arm or the number of axes in a motion group. Each joint represents one degree of freedom (DOF), 6 joints = 6 DOF.
A standard industrial robot typically consists of the following joints:
- Joint 1 → Base rotation
- Joint 2 → Shoulder
- Joint 3 → Elbow
- Joints 4–6 → Wrist orientation
Joints
A joint defines to which degree a robot arm can move. Typically, this is represented via an angle or displacement value. Think of it as the exact angles of body parts a human dancer needs to be in to perform a specific dance move. A complete set of joint values (one per joint of the robot arm) is called a joint configuration which determines the precise internal geometry of the robot.
Joints are often used in low-level motion commands where precise control over robot motion is necessary. Joint configurations are specific to each robot model and cannot be transferred across different robot types.
| Aspect | Description |
|---|---|
| Representation | Angles, displacement |
| Syntax | List of numerical values |
| Meaning | Robot-specific articulation |
| Portability | Robot-specific |
| Teaching Model | Low-level, geometry-bound |
Poses
A pose defines a position and orientation in 3D space, typically relative to a coordinate system, e.g. world, robot base, or a tool frame. Think of it as the exact position and orientation in the room where a human dancer needs to be in to perform a specific dance move.
Poses are often used in high-level, task-oriented motion commands, such as placing a tool tip at a precise location or following a path relative to an object.
| Aspect | Description |
|---|---|
| Representation | External position + orientation |
| Syntax | Tuples |
| Meaning | Spatial configuration in 3D space |
| Portability | Coordinate system-dependent |
| Teaching Model | High-level, task- and space-oriented |
Rotation
The Wandelbots NOVA API uses two different ways to describe a 3D rotation: rotation vector in radians and quaternions.
| Rotation vector order | Quaternion order |
|---|---|
| X = Vector[0], Y = Vector[1], Z = Vector[2] | X = Vector[0], Y = Vector[1], Z = Vector[2], W = Scalar[3] |
Emergency stop function
An emergency stop (E-stop) is a critical safety mechanism, typically represented by a large red button. It is used when immediate interruption of all robot operations is required.
When activated, the emergency stop halts all robot functions instantly. To restore operation, the button must be manually released, usually by turning it in an anti-clockwise direction.
Flange
A flange is the end part of a robot arm where tools, such as grippers, or end effectors are attached. Typically, the robot flange is located at the last joint and includes threaded holes for secure attachment.
Global variables
Global variables are used to share data across multiple programs.
- Global variables: Accessible across multiple programs
- Private variables: Restricted to the program in which they are defined
For example, a global variable defined in one program can be used in other programs, whereas a private variable cannot.
Input/Output (I/O)
I/O (Input/Output) refers to the signals exchanged between the robot and external devices. When using TCP/IP communication with tools such as grippers, tool outputs are typically utilized. These outputs are accessed via the connector on the robot’s axis.
Robotic systems support both digital and analog I/O:
- Digital I/O: Discrete signals (on/off)
- Analog I/O: Continuous signals
These are generally connected directly to the robot controller.
IP/TCP communication
TCP/IP refers to both the Transmission Control Protocol (TCP) and the Internet Protocol (IP). It is used for communication between the robot and connected devices, such as a gripper.
A physical connection is established via a connector located on the robot’s axis. Once connected, communication and control can be managed through the robot’s teach pendant.
IP addresses
To establish IP communication between a robot, an industrial PC (IPC), and a laptop, all devices must be configured within the same network.
A common configuration follows the structure:
- 192.168.1.x
Each device must have a unique IP address within this range.
Joint-space vs. cartesian-space movements
There are two types of movement in a robot:
- Joint-space movement: The robot moves by actuating its joints. Motion is defined in terms of joint angles.
- Cartesian-space movement: The robot moves in straight lines within the XYZ coordinate system (more specifically Rx, Ry, and Rz for angle rotation in the respective direction).
Loops
Loop structures in robot programming follow the same principles as in general programming languages. Common constructs include:
- For loops
- If-else conditions
- While loops
These are used to control repeated actions, conditional execution, and process flow.
Motion types
There are two types of motion:
- PTP or P2P (Point-to-Point): The robot moves from one point to another using joint-space motion.
- LIN (Linear): The robot moves in a straight line between two points using Cartesian-space motion.
Singularity
A singularity is a robot configuration where motion control becomes unstable or requires extremely high joint speeds. A singularity can be understood as a situation where robot joints are fighting each other to achieve the same motion.
In such positions:
- The robot may lose control in certain directions
- Small movements may require large joint motions
- Precision is reduced
- The robot may stop with an error
A common example is a fully extended arm or aligned wrist in a 6-axis robot. Here, multiple joints try to do the same motion so the system becomes unstable.
Detection methods
Singularities can be identified using the following methods:
- Controller warnings
Most industrial robots automatically detect singularities and issue warnings, e.g., Singularity detected, Wrist singularity. - Monitoring joint speeds
If a joint suddenly requires very high speed, the robot is likely near a singularity.
Learn how to avoid singularities.
Resolve a singularity
The following strategies can be used to resolve singularities:
- Change robot posture by bending the robot arm.
Avoid fully stretched or aligned configurations - Adjust the path so the trajectory does not pass through a singular configuration.
- Use a different motion type, e.g., switch from LIN to PTP motion.
- Reduce speed to minimize instability.
- Add intermediate points to guide the robot around the singularity.
- Reorient the TCP to change the robot’s configuration and avoid singular positions.
Trajectory planning
Trajectory planning begins with clearly defining the task to be executed. For a basic pick-and-place operation, a minimum sequence of positions is typically required:
- Home position
- Pick approach position
- Pick position
- Pick departure position
- Place approach position
- Place position
- Place departure position
To complete the full trajectory cycle, the robot returns to the home position, which is usually predefined.
Trajectory optimization focuses on reducing the total time required to execute the motion while maintaining accuracy and safety. In systems such as NOVA, an automatic trajectory planner assists in generating trajectories once the required points are defined. Additionally, NOVA Flow allows for the inclusion of wait cycles or I/O operations between trajectory points.
Tool center point (TCP)
The Tool Center Point (TCP) is the exact point where the robot tool interacts with the environment. It is typically defined at the center of the robot flange or at the functional tip of the tool. Examples include the tip of a welding torch or the gripping point of a gripper. The TCP is essential for accurate robot programming and execution.
When attaching a tool, you need to define a corresponding tool center point in relation to the flange by specifying a position offset and a relative direction.
To execute motion commands, the Wandelbots NOVA API uses the TCP as reference for movements, e.g., the tip of a dispenser or the center of a sanding disc.
Calibration: 4 point method
A commonly used method for TCP calibration is the 4-point method, which is considered the standard approach.
- Select a fixed reference point in the workspace (such as a sharp tip or corner)
- Move the robot so that the tool tip touches this reference point
- Repeat this process from different orientations (this step is important)
- Record four or more positions with same physical point and different angles.
- The robot controller calculates the TCP and determines the exact offset from the robot flange
Why multiple points are required
Multiple recorded positions are necessary because the robot must triangulate the position of the tool tip.
A single position is not sufficient to determine the offset accurately.
Calibration result
After calibration, the following parameters are obtained:
- X, Y, Z offset of the tool
- Orientation (in some cases)
Waypoints
Waypoints are intermediate positions defined in addition to primary positions such as pick or place points. They are defined in the same manner as the home position.
Multiple waypoints can be created and are commonly used in trajectory planning to guide robot motion more precisely.