UnderAutomation
⌘Q
UnderAutomation.Robotics
In development

One API for every robot brand

UnderAutomation.Robotics is the next library of UnderAutomation, for C# and Python. Write your robot code once: it runs on Fanuc, Yaskawa, Universal Robots, ABB and Stäubli.

One email at the release. Nothing else.

C# / .NET
Python
5 robot brands
1using UnderAutomation.Robotics.Controllers;
2
3var robot = new RobotController();
4robot.Connect(new UnderAutomation.Fanuc.ConnectionParameters("192.168.0.10"));
5
6robot.Program.Start("MAIN");
7
8foreach (var alarm in robot.Alarm.GetActive())
9 Console.WriteLine(alarm.Code + " " + alarm.Message);
10
11robot.Disconnect();
Preview of the API: names can still change before the release.
The idea

Change the robot, keep your code

Today: one SDK per brand

Each brand has its own protocols and its own API. A cell with two brands means two code bases.

Universal Robots
RTDERESTDashboardPrimary InterfaceSSH / SFTPXML-RPC
Fanuc
TelnetSNPXFTP / SFTPRMIStream MotionCGTPHTTPS
Yaskawa
HSESEthernet ServerFTPHTTPHost Control
ABB
Robot Web Services 1.0Robot Web Services 2.0EGM
Stäubli
SOAPFTP

With Robotics: one API by task

You say what you want to do. The library chooses the right protocol of each brand.

robot.Program.Start("MAIN");
Universal Robots robot
Universal Robots
Fanuc robot
Fanuc
Yaskawa robot
Yaskawa
ABB robot
ABB
Stäubli robot
Stäubli
Organized by task

Everything you do with a robot, in 10 services

You look for "start a program", not for the name of a protocol. The API follows the same idea.

robot
.Info
Model, serial number, software version, options
.State
Mode, servo power, running or held, speed
.Program
List, select, start, pause, stop, current line
.Debug
Breakpoints, step by step, continue
.Variable
Variables and registers, by their native name
.Io
Input and output signals, by their native name
.Alarm
Active alarms, history, reset
.Motion
Position, joint and linear moves, kinematics, frames
.File
List, download, upload, rename, delete
.Backup
Create and download a backup of the controller

C# and Python, same API

The Python package follows the C# API with Python names, like the brand SDKs.

1using UnderAutomation.Robotics.Controllers;
2
3var robot = new RobotController();
4robot.Connect(new UnderAutomation.Fanuc.ConnectionParameters("192.168.0.10"));
5
6robot.Program.Start("MAIN");
7foreach (var alarm in robot.Alarm.GetActive())
8 Console.WriteLine(alarm.Code + " " + alarm.Message);

Preview of the API: names can still change before the release.

Design principles

Simple for a first program, complete for experts

The address is enough

Give the IP address. The library finds which protocols answer and chooses a route for each method.

Knows what the robot can do

Ask if a method is available on the connected controller before you call it, and why it is not.

Nothing is hidden

The objects of the brand SDK stay reachable on the same connection. Each result keeps its native data.

Your code still compiles

Already a user of a brand SDK? Replace its reference with UnderAutomation.Robotics: same namespaces, same types.

From .NET Framework 3.5 to .NET 8+

The same targets as the brand SDKs, on Windows, Linux and macOS.

Works with simulators

ROBOGUIDE, MotoSim, URSim, RobotStudio and SRS, like the brand SDKs.

Built on solid ground

On top of SDKs already used in production

Robotics contains the five brand SDKs and adds the common API above them. TouchUp, our robot IDE, is its first user.

TouchUp
Robot IDE for the factory floor
Soon
Your software
C# · Python · LabVIEW · Matlab
UnderAutomation.Robotics
One common API for every brand
Soon
Universal Robots SDKFanuc SDKYaskawa SDKABB SDKStaubli SDK
Brand SDKs, available today
Universal Robots robotFanuc robotYaskawa robotABB robotStäubli robot

Where we are

  1. Five brand SDKs in production

    Universal Robots, Fanuc, Yaskawa, ABB and Stäubli, used in 24 countries.

  2. Common API designed

    Services, protocol routing, data model and errors are specified.

  3. Adapters for the five brands

    In development, together with TouchUp.

  4. Preview for early users

    Contact us if you want to test it on your robots.

  5. Public release

    NuGet package for .NET, then the Python package.

Be the first to use UnderAutomation.Robotics

Leave your email: we write to you once, when the library is released.

One email at the release. Nothing else.

Early access or a question? Contact us

Easily integrate Universal Robots, Fanuc, Yaskawa, ABB or Staubli robots into your .NET, Python, LabVIEW or Matlab applications

UnderAutomation
Contact usLegal

© All rights reserved.