What is the Robotics API?

The Robotics API is a Java based programming interface for robotics applications. It consist of the following parts:

With the Robotics API, complex applications for single robots or teams of robots can be developed. Besides robot arms, robot platforms and robot tools, further devices like sensors or other machinery are also supported or can be integrated.

The Robotics API provides a large set of classes that are useful for developing robotics applications. Some classes model different kinds of robots, others model executable robot tasks and their combinations. Further objects that are important for robotic applications (like workpieces) can also be modeled. The programming language Java and its execution environment (Java Virtual Machine, JVM) provide powerful base class libraries and programming concepts. Built-in automatic memory management is very convenient for programmers, as they do not have to care about explicitely manipulating memory.

To provide a safe, performant and precise operation of robot hardware, the Robotics API relies on a realtime-capable Robot Control Core (RCC) that runs outside the Java environment. This RCC may run on the same physical hardware as the JVM hosting Robotics API programs, or on an external system. The communication between Robotics API and RCC is done via network protocols. The RCC controls robot hardware and guarantees precise execution of tasks (e.g. motions). For interfacing different types of RCCs, the Robotics API supports the definition of adapters (called RoboticsRuntimes). The Robotics API provides a built-in adapter for the SoftRobot RCC. Figure 1.1 illustrates the relationship between Robotics API layer, RoboticRuntime layer and hardware layer:


PIC
Figure 1.1: Overview: Controlling robots with the Robotics API and the SoftRobot RCC

Real-time critical robot tasks can be modeled very flexible in Robotics API applications. For example, the developer can define conditions (e.g. collisions detected by sensors) that lead to cancelling of motions, or that trigger tool actions during motions.

The Robotics API library can be included in arbitrary Java programs. The framework has to be initialized by loading a configuration file which describes the RoboticsRuntime and devices used. Installation and startup are described in the next two sections. The rest of this chapter assumes that the Robotics API is used as a library inside a Java program.