Skip to content

Document Index

IndyFramework API

Indy Framework 2.0 is the core software framework used for Neuromeka's robot control, and is implemented in STEP which is a Linux-based embedded robot controller developed by Neuromeka. This chapter describes API of Indy Framework, which allows users to easily create, run, and deploy Xenomai-based real-time software without expertise in real-time OS (RTOS).


IndySDK is Neuromeka's research platform that provides a development environment to input command torque computed by user-developed controllers to all robot joints. Users can replace the low-level controller which is basically built in Indy (nonlinear \mathcal{H}_\infty optimal control) to other controllers. Also, users can design and easily implement their own controller such as impedance/admittance controller using exteroceptive sensors. IndySDK is very useful for controller prototyping because it can only replace the robot controller as custom controllers while maintaining the powerful functions of Indy Framework (Conty, IndyDCP, etc). This chapter describes how to use IndySDK based on various control examples

Indy Communication

Neuromeka Indy controller and software framework provide various input/output communication interface. This allows the users to send and receive external sensor signal as well as robot signal, and perform various system integration programming. This chapter describes communication with I/O board (Digital I/O and Analog I/O) in Indy control box, communication with GPIO in STEP, IndyDCP (Indy Dedicated Communication Protocol) which is a TCP dedicated communication protocol, and ModbusTCP communication protocol.

Indy Interfaces

Indy Interfaces represent high-level robot programming interfaces made by IndyDCP which is Ethernet TCP/IP network-based dedicated communication. This chapter explains example codes developed by various programming languages using IndyDCP protocol. Interface examples writted by C++, Python, MATLAB, Labview and robot programming methods using these examples are given. Users can also make their own interface using other languages such as C# and Java by referring these examples.

ROS for Indy

ROS (Robot Operating System) is an open source software platform that provides various robotics libraries and development environment. This chapter introduces how to connect ROS with Indy (both simulation and real robot), and explains installation method of MoveIt!, RViz, and Gazebo which are the mostly used for manipulator studies among ROS packages.


STEP is an embedded robot controller, and provides PlatformSDK that is software framework for development of realtime control applications on Linux/Xenomai environment which is the hard realtime OS. Development environment running on MS Windows® is also provided in order for engineers unfamiliar with Linux environment to develop embedded control applications.​

STEP is integrated with EtherLab, which has been proven open-source EtherCAT master stack for many systems, for multi-axes synchronized high-speed realtime distributed control. Development of standard EtherCAT based realtime cotrol applications is supported by CoE (CANopen-over-EtherCAT) protocol based programming interface. Legacy devices with RS485 or CAN interfaces can be connected for standard ports. STEP also provides automatic generation of basic CoE based application codes with various software tools. In order to facilitate CAN based applications NRMKPlatform SDK has RT CAN and CanFestival (open-source CANOpen framework software) installed.

To facilitate the use of STEP, Neuromeka provides a GUI tool that automatically configures the PDO, SDO mapping and system interface of multiple Ethernet slaves. This powerful function make it easy to apply research requiring hard realtime control for multi-axis actuators. This chapter describes basic tutorial of PlatformSDK which is software framework for STEP. Constructing EtherCAT system interface and automatic code generation are covered in EtherCAT chapter, which provides step-by-step example.

EtherCAT Communication

This chapter describes how to use Neuromeka's ECatService which is GUI tool that automatically constructs EtherCAT system interface. Using the ECatService, users can easily connect several EtherCAT slaves (actuators and/or sensors) to STEP, and perform PDO and SDO mapping. Users can develop application softwares that use EtherCAT communication and Xenomai realtime process through automatic code generation of ECatService. This chapter provides step-by-step explanation to construct EtherCAT system interface for Smart Actuator (CORE) developed by Neuromeka, as well as examples for third-part EtherCAT slave devices (Maxon motor, Beckhoff)


CORE is smart actuator module for robot and automation system. There are 3 types of CORE modules: CORE100, CORE200 and CORE500, which are 100W, 200W and 500W modules respectively. Each CORE module is combination of harmonic drive , BLDC motor, brake, multi-turn absolute encoder 16-bit and motor driver. CORE use EtherCAT communication interface with CiA402 motion profile compliance.


IndyEye is a cost-effective vision solution for Indy. It provides object detection and classifiction(inspection) based on deep-learning algorithms. IndyEye provides automated data collecting and remote-training to easily apply deep-learning algorithms to workpieces in the field. This section explains how to install IndyEye, collect image data of workpiece and train deep learning algorithm for object detection and inspection. In addition, the TCP/IP communication protocol and pick-and-place program example is provided.