I have been lurking here since the start and was wondering if anyone has done any more on the multi-axis sync issue. To date we have been using the excellent KFLOP product with closed loop analog servos but the ODrive project is always in view and continues to be of great interest for smaller projects. So far there apears to be a dearth of low end CNC controllers which can do full closed loop on multi-axis systems, I suspect due to the complexity of the problem. At best the step/dir interface generates the expectation that the closed loop servo following will be capable of keeping up.
In absence of any solid understanding of the area … The simple path would appear to be to use a common clock to drive the time steps used to drive the individual axis polynomials generating the motion profiles. If axes report the instaneous position errors at each time step then the emerging trend can be used to assess the axis loading capability in real time. A possibe resultant solution is to slow the master clock as then all axes are slowed by a proportionate amount. If this is still insufficient a feed hold can be triggered. This method would close the loop from the trajectory planner onward. It is not without it’s issues but at present the problem is largely ignored in most embedded open source systems. It should be noted that the goal is to keep real time constraints well away from the PC in a reliable embedded device.
This paper makes for some interesting reading if only to build on my own thin level of knowledge in the area.