We are in the process of implementing a motion control API for a research project. The goal is to implement a somewhat comprehensive API for motion control that provides the most commonly used primitives, while providing a workable programming model.

There doesn't seem to be any standardization in the industry (or is there?), and the space seems fragmented. But a good place to start would be to look at common use cases and existing implementations. Do you have suggestions on how to go about exploring this space? Or suggestions for well implemented APIs?

We intend for this to be good enough to be adopted for commercial use eventually.

  • $\begingroup$ What are you writing for calls? Can you give some examples...I’m unsure what exactly you expect people to be using an api for instead of writing something themselves. Generally each project is very individual, not all motion schemes are equal...even in two similar projects. $\endgroup$ – morbo Jun 28 '20 at 8:01
  • $\begingroup$ Welcome to Robotics Ziffusion, but I'm afraid that opinion polls are discouraged on stack exchange. We prefer practical, answerable questions based on actual problems that you face. Please take a look at How to Ask & tour for more information on how stack exchange works. Questions like this are welcome in Robotics Chat when you have the privilege. $\endgroup$ – Ben Jul 8 '20 at 13:44

You can take a look at PLCOpen Motion. This can be thought of a motion control SDK for programming languages used in the automation world. This is general purpose and well established.

Furthermore, you can take a close look at all Robot Controller programming languages (like Kuka KRL, ABB Rapid, Fanuc Karel, Staubli Val3, etc.) These are programming languages build explicitly for motion control applications involving robots, so less general purpose then PLCOpen. The motion control related things are built in the language and do not have an explicit SDK or API character.

For CNCs there is G-Code. It is a language for motion control, but its syntax is a direct successor of the punch-card system used before textual programming languages, so it is really bad in the syntax sense, but very good in the features which it offers for motion control of machine tools.

If you want to have an example of motion control and a modern programming language, you can look at Kuka's Sunrise platform, which uses Java to program robots. I have never used it, so I do not know if it is any good.

In general purpose motion control PLCOpen is the closest you get to a standard, basically anything else is manufacturer specific (event the standardized G-Code has manufacturer specific syntax and features).


Not the answer you're looking for? Browse other questions tagged or ask your own question.