Every motion controller makes a motor shaft turn. But there’s a big difference between moving shafts and accomplishing advanced machine behavior. Bridging the gap involves risk.
You don’t know if a particular motion control approach will work and development investment must occur before you can find out.
The control solution may appear to work but the machine’s performance requirements might not be met and you don’t have instrumentation or another way to know they aren’t.
You will discover new requirements during development that were not known when the control solution was chosen. Will the controller be able to handle such unforeseen requirements?
The learning curve for a controller’s language can be steep and take more time to learn than anticipated.
Advanced machines have servos and steppers, power IO, communication links up to host systems and down to other control elements as well as Human-Machine interfaces to direct the system. Integrating together these various elements in a real-time manner can be time consuming and challenging.