Introduction
Yaskawa Motoman offers several programming tools and SDKs, each targeting a different use case, skill set, and level of system access. Choosing the right one depends on where your code needs to run (on the controller vs. an external PC), whether you need real-time determinism, and which programming language your team is most comfortable with.
This article provides an overview of each tool, the programming language(s) it uses, which controllers it supports, and when you would choose one over another.
Quick Reference: Tools at a Glance
The table below summarizes the complete Yaskawa developer tool ecosystem. Detailed descriptions of each tool follow in the subsequent sections.
| Tool / SDK | Language(s) | Runs On | Real-Time? | Controllers | Primary Use |
| INFORM | INFORM (proprietary) | Robot Controller | Yes | All Yaskawa controllers | Native robot programming |
| MotoPlus SDK | ANSI C | Robot Controller (VxWorks) | Yes | YRC1000, YRC1000micro, DX200, DX100, FS100 | Custom real-time apps on controller |
| YMConnect | C++ 17, C# | External PC (Windows / Linux) | No | YRC1000, YRC1000micro, DX200, FS100, DX100 | PC-based monitoring & control |
| Smart Pendant Extension SDK | Java, C# | Smart Pendant (Linux container) | No | YRC1000, YRC1000micro (with Smart Pendant) | Custom pendant UI / HMI apps |
| MotoROS2 | C (on controller), Python / C++ (client side) | Controller + external PC | Partial (controller node is real-time) | YRC1000, YRC1000micro, DX200 | ROS 2 integration, MoveIt path planning |
Which Tool Should I Use?
Use the following table to match your requirements to the right tool.
| If you need to... | Use this |
| Teach points, write motion jobs, handle basic I/O logic on the pendant | INFORM |
| Run custom algorithms directly on the controller in hard real-time (e.g., sensor processing, custom communication protocols) | MotoPlus SDK |
| Build a PC application that monitors robot status, reads/writes variables, manages jobs, or generates dynamic motion from a Windows or Linux machine | YMConnect |
| Create a custom touchscreen app or HMI that runs directly on the Smart Pendant | Smart Pendant Extension SDK |
| Integrate with ROS 2 ecosystem, use MoveIt for path planning, or connect to a broader multi-robot / perception pipeline | MotoROS2 |
INFORM
Overview
INFORM is Yaskawa’s native, proprietary robot programming language. It is the default way to program any Yaskawa Motoman robot and runs directly on the controller in real-time. Every Yaskawa controller ships with INFORM support—no additional purchase or software option is required.
INFORM jobs are created and edited on the teach pendant (either the Standard Pendant or Smart Pendant) or via offline programming tools like MotoSim EG-VRC. Jobs are stored as .JBI files on the controller.
Language Characteristics
Type: Line-based, interpreted instruction language
Syntax style: One instruction per line; each line is a keyword followed by parameters
Flow control: JUMP, CALL, RET, TIMER, WAIT, CWAIT, TWAIT
Variables: Byte (B), Integer (I), Double (D), Real (R), String (S), Position (P, BP, EX)
I/O access: DOUT, DIN, AOUT, AIN, and group I/O instructions
Common Instructions
MOVJ – Joint interpolated move (fastest point-to-point)
MOVL – Linear interpolated move (straight-line path)
MOVC – Circular interpolated move
DOUT OT#(n) ON/OFF – Set a digital output
WAIT IN#(n)=ON – Wait for a digital input condition
SET B000 n – Assign a value to a byte variable
CALL JOB:name – Call a subroutine job
When to Use
INFORM is the starting point for nearly all robot programming tasks. Use it for teaching positions, writing motion sequences, handling I/O handshakes with PLCs or peripheral equipment, and building production jobs. For most standard applications (welding, palletizing, material handling), INFORM alone is sufficient.
MotoPlus SDK
Overview
The MotoPlus SDK allows you to write custom applications in ANSI C that compile to executables and run directly on the robot controller’s CPU (VxWorks real-time operating system). MotoPlus apps execute as concurrent tasks alongside the standard robot control software, giving you hard real-time access to motion, I/O, variables, and internal controller functions.
MotoPlus SDK is a purchased software option (sold per controller generation). It functions as a plug-in for Microsoft Visual Studio (Professional or the free Community edition).
Language & Development Environment
Language: ANSI C
IDE: Microsoft Visual Studio (plug-in)
Target OS: VxWorks (on the controller)
Compilation: Cross-compile on PC, then load the resulting binary (.out file) onto the controller via pendant or file transfer
Key Capabilities
The MotoPlus API provides access to multi-tasking communication, file transfer, position and motion data, variables and registers, I/O, robot jobs, and alarm/error handling. Because the code runs on-controller, it achieves deterministic timing that external PC-based solutions cannot match.
When to Use
Choose MotoPlus when you need hard real-time execution, such as implementing custom sensor processing loops, force/torque control algorithms, proprietary communication protocols, or embedded data acquisition. It is also the foundation for MotoROS2 (the ROS 2 node runs as a MotoPlus application).
YMConnect
Overview
YMConnect is Yaskawa’s modern communication library for building custom PC applications that control and monitor Motoman robots over Ethernet.
Language & Platform
Languages: C++ 17 and C# (additional languages on the development roadmap)
Platforms: Windows 10+ and Ubuntu 22.04+
IDE: Visual Studio (C++ or C#), or any C++17 / .NET compatible toolchain
Controller Compatibility
YMConnect supports the YRC1000, YRC1000micro, DX200, FS100, and DX100 (DS2.07.00-00 and above). The dynamic motion interface (generating motion on the fly with kinematic conversions) is only available on YRC1000 and newer.
Key Capabilities
YMConnect provides intuitive function calls for reading axis configuration, monitoring feedback position and torque, monitoring state and errors, clearing faults, controlling INFORM jobs, reading/writing all variable types (byte, integer, double, real, string, position), I/O access, and file management (save, load, delete job files).
When to Use
Use YMConnect when you need a PC application to interface with a robot but do not require hard real-time control. Common use cases include custom HMIs, data dashboards, supervisory control, data logging, and integration with PC-based vision or analytics systems. If you are currently using MotoCom, YMConnect is the recommended migration path.
Smart Pendant Extension SDK
Overview
The Smart Pendant Extension SDK allows software developers to create custom extension “apps” that run directly on the Yaskawa Smart Pendant. Extensions can display custom UI windows, integrate into pendant menus and interact with the robot controller through a provided API.
Language & Platform
Language: C#, Java (the SDK provides a wrapper around Apache Thrift-generated client code)
Development Workflow
During development, extension executables can run on any desktop with network connectivity to the pendant (or simulated pendant app). For distribution, the SDK’s packaging tool combines the extension, supporting files, INFORM jobs, MotoPlus apps, and other artifacts into a single Yaskawa Install Package (.yip) file for easy deployment.
When to Use
Choose this SDK when you want to build a custom operator interface that lives on the pendant itself—for example, a simplified operator screen, a custom setup wizard, or application-specific controls.
MotoROS2
Overview
MotoROS2 is a ROS 2 node that runs natively on the Yaskawa robot controller. Built on the micro-ROS stack, it is (as of its release) the first native ROS 2 node to run directly on an industrial robot controller. On the PC side, a lightweight micro-ROS Agent bridges communication between the controller and the broader ROS 2 network.
Languages Involved
On-controller (MotoROS2 node): C (compiled via MotoPlus SDK as a .out MotoPlus application)
Client-side ROS 2 nodes: Python or C++ (standard ROS 2 development)
Path planning: Typically C++ via MoveIt 2 or Tesseract, though Python wrappers exist
How It Works
The MotoROS2 MotoPlus application runs on the controller and publishes joint states, provides services for I/O, and exposes multiple motion options. On your PC, you run the micro-ROS Agent (available as a Docker image or built from source) which transparently bridges UDP communication to the ROS 2 DDS layer. From there, standard ROS 2 tools and MoveIt can plan and command robot motion.
When to Use
Choose MotoROS2 when your project operates within the ROS 2 ecosystem—for example, research labs, multi-robot coordination, integration with perception pipelines (cameras, LiDAR), or when using MoveIt for path planning. It is currently compatible with DX200, YRC1000 and YRC1000micro controllers only.
Important Notes
RMW requirement: FastDDS only (the default for Foxy, Humble, Jazzy, and Rolling). CycloneDDS is not compatible.
Trajectory limit: Standard FollowJointTrajectory actions are capped at 200 points. Other motion services are available to work around this limitation.
License: Open source, but requires the purchased MotoPlus SDK to build.
Third-Party & Community Tools
In addition to Yaskawa’s official SDKs, several third-party tools and community projects are worth noting:
High Speed Ethernet Server (HSE) Protocol
HSE is a UDP-based protocol built into modern Yaskawa controllers (no additional option required). Third-party tools like RoboDK use it for online programming and real-time monitoring at roughly 70 Hz. Third-party SDKs (e.g., UnderAutomation’s Yaskawa SDK) wrap HSE for .NET, Python, and LabVIEW without requiring MotoCom or YMConnect.
RoboDK
RoboDK is a third-party offline programming and simulation tool that supports Yaskawa Motoman robots. It can generate .JBI (INFORM) files and connect directly to controllers via the HSE protocol or MotoCom for online programming.
MotoSim EG-VRC
Yaskawa’s own offline programming and simulation environment. While not a programming language per se, it is the official tool for creating and testing INFORM jobs offline before deploying to a real controller. Useful for reach studies, cycle time estimation, and collision checking.
Summary
The Yaskawa programming ecosystem can be grouped into three tiers:
On-controller, real-time: INFORM (native job programming) and MotoPlus SDK (custom C applications on the controller OS). These give you deterministic execution and direct hardware access.
PC-based communication: YMConnect (modern, cross-platform, C++/C#) and MotoCom (legacy, Windows-only, any Win32 language). These let external applications monitor, command, and integrate with robots over Ethernet.
Specialized environments: Smart Pendant Extension SDK (Java, for pendant UI apps), MotoROS2 (C on controller + Python/C++ on PC, for ROS 2 integration), and third-party tools like RoboDK.
For most users, INFORM is where you start. As your requirements grow—whether toward real-time embedded logic (MotoPlus), PC-based integration (YMConnect), or research-grade robotics frameworks (MotoROS2)—the ecosystem provides a clear path forward in a language and platform that matches your team’s skills.
Key Links
Yaskawa Developer Portal: developer.motoman.com
Yaskawa GitHub: github.com/Yaskawa-Global
YMConnect Releases: github.com/Yaskawa-Global/YMConnect/releases
MotoROS2: github.com/Yaskawa-Global/motoros2
Smart Pendant SDK: github.com/Yaskawa-Global/SmartPendantSDK
Comments
0 comments
Please sign in to leave a comment.