In the YASKAWA ACU ecosystem, gRPC (Google Remote Procedure Call) is the primary communication framework used for interaction between user applications and the ACU’s internal services. It allows an local and remote applications to execute methods from a separate application instance, making it easier to create distributed applications and services.
For more information on gRPC, visit the official documentation here.
gRPC relies on Protocol Buffers (Protobuf) as its interface definition language (IDL) and underlying message interchange format.
gRPC:
The framework that handles the infrastructure of the connection, including authentication, load balancing, and retries.
Protobuf:
A language-neutral, platform-neutral mechanism for serializing structured data. Developers define the structure of the data they want to send in a .proto file. This file is then compiled into source code for the chosen programming language, providing a strongly typed schema for both the client and the server.
One of the primary advantages of gRPC is its extensive cross-language support. While the ACU SDK is primarily focused on C++, gRPC officially supports several major languages, including:
The ACU SDK provides the necessary
protoccompiler and plugins to generate C++ code from the system's.protofiles.
gRPC supports four types of service methods, but ACU development typically focuses on these two:
This is the simplest type of communication, similar to a traditional function call. The client sends a single request to the server and gets a single response back. For example, requesting a specific variable value from the robot controller is usually a unary operation.
Streaming allows for a continuous flow of data. These type of calls are often used when monitoring live data such as I/O or sensor feedback.
The following streaming methods are not currently utilized by any of the standard YASKAWA ACU services:
The ACU provides several pre-installed "Standard Services" that expose gRPC APIs. These allow user applications to perform complex tasks without interacting with low-level hardware directly:
| Service Name | Intended Function |
|---|---|
| Robot Control Service | Manages motion commands, I/O signals, and monitors robot status and alarms. |
| Path Planning Service | Calculates collision-free trajectories and performs environmental modeling for obstacle avoidance. |
| AI Service | Executes inference for AI tasks, such as object detection or picking logic. |
| Machine Vision Service | Controls connected industrial cameras and processes image data for recognition tasks. |
| Force Control Service | Allows for monitoring of external force sensor feedback and complex operations like fitting. |
To use these services, developers include the relevant .proto files in their project, which define the available remote procedures and data structures required to interact with the ACU's core functionality.
| ⬅️ Previous | Next ➡️ | |
|---|---|---|
| What is Docker? | Understanding Services and Skills |