Motion Coordinator Gateways: Make interfacing to motor controllers easier

by on November 16, 2020

Servotronix Motion Coordinator

Often we need to communicate with motor controllers from different vendors. Writing software drivers for each one can be a pain and time consuming. Other times we need to use motor controllers utilizing EtherCAT or CANopen, but talking to those drives from our computers is difficult to implement. One solution is using a motion coordinator as a gateway.

Trio motion coordinator
Sample layout showing a computer talking to the coordinator which then talks to the drives. With other devices also present [source].

Note: This post will be using motor controllers and motor drivers interchangeably.

Motion coordinators are often used in industry for coordinating motion between multiple motors. Having a real time motion coordinator lets a system quickly respond to changes and tightly coordinate motion between various drives (also refereed to as axis in the motor control world). These are very useful for factory robotics where you write a program and have the motion coordinator execute the predefined complex (or simple) motions again and again. Another use for the programming on the coordinator is to have the motion coordinator compute the kinematics to drive individual motors appropriately.

In many robots (such as UGV’s) we dont need tight coordination, however we do need to talk to motors and dont want to deal with the individual drivers or protocols (CAN, EtherCAT, etc..). That’s where these motion coordinators often enter into our world. In many cases there are simple protocols to talk to the motor controller via Ethernet or serial, and then the motion coordinator takes care of the actual communications with the controllers.

There are two important things to look out for to make sure this approach will work.

  1. Do all of the drives, controllers, coordinators use the same protocol (such as CANopen or EtherCAT)?
  2. Are all of the drives DS-402 compatible on the protocol you are using? Just DS-301 is probably not sufficient.
Pro Tip: Some drives might have both CANopen and EtherCAT onboard. But they only support DS-402 with one of those protocols. Make sure you have DS-402 on the protocol you plan on using! 
(Ask me how I know this...)

Many digital motor drive companies make these motion coordinators. Elmo makes the Maestro, Trio makes many of them (probably to many individual versions), Servotronix makes them, and many others.

Elmo Maestro Motion Coordinator
Elmo Maestro Motion Coordinator
Servotronix Motion Coordinator
Servotronix Motion Coordinator

I have the most experience with the Elmo and Servotronix motion coordinators. In both cases if you use motor drivers from that vendor it is easier to setup. If you use motor drivers from another vendor you will probably need some customer support to get it set up correctly. But after that it should be easy.

For all the Windows users out there you are lucky (just in this regard) since most vendors make libraries for Windows. If you are using Linux it is a little trickier. Most of the coordinators have simple Ethernet socket (telnet style) interfaces that you can use to send commands to, however they do not provide nice libraries. One reason I like Servotronix is that they can provide a python class that works in Linux for basic communications. This python class has the basics for communicating and driving motors, you can then use it as a building block for writing a full driver.

I just finished a project where I worked with Servotronix drives and their technical/customer support was phenomenal.

I hope you found this interesting and useful. Leave a comment below with any questions, thoughts, or if you found this useful.


Credits: Motion coordinator images come from the respective manufacturer websites.

Liked it? Take a second to support David Kohanbash on Patreon!
Become a patron at Patreon!

Leave a Reply